spec/mod/usr_role.cfm
2025-06-02 16:16:51 +03:00

104 lines
3.0 KiB
Plaintext

<cfimport prefix="c" taglib="../lib/controls"/>
<cfimport prefix="d" taglib="../lib/data"/>
<!---<cfif StructKeyExists(form, "add_role")>
<cfdump var=#form#/>
</cfif>--->
<cfparam name="ATTRIBUTES.usr_id"/>
<cfparam name="ATTRIBUTES.fwx"/>
<cfparam name="ATTRIBUTES.self"/>
<cfparam name="ATTRIBUTES.editable" type="boolean" default="No"/>
<d:bean readonly=#!ATTRIBUTES.editable# savemarker="add_role" table="usr_role" datasource="#request.DS#" output="de" status="estatus" info="einfo" meta="emeta">
<d:param field="usr_id" type="integer" key/>
<d:param field="role_id" type="integer" key/>
<d:param field="creator_id" type="integer" value="#request.usr_id#" skipUpdate/>
<d:param field="dt_created" type="timestamp" value="#Now()#" skipUpdate/>
</d:bean>
<cfif structKeyExists(FORM, "detach_role") AND #ATTRIBUTES.editable#>
<cfparam name="FORM.role_id" type="integer"/>
<cfquery name="qDetachrole" datasource="#request.DS#">
delete from usr_role
where usr_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#ATTRIBUTES.usr_id#/>
AND role_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#FORM.role_id#/>
</cfquery>
</cfif>
<cfquery name="qRead" datasource="#request.DS#">
select
x.usr_id
,x.role_id
,p.role
from usr_role x
join role p on (x.role_id=p.role_id)
where x.usr_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#ATTRIBUTES.usr_id#"/>
order by 2
</cfquery>
<cfoutput>
<b>Роли пользователя (#qRead.recordCount#):</b>
</cfoutput>
<table class="worktable">
<cfoutput>
<thead>
<tr class="worktable_head">
<th>Роль</th>
<th></th>
</tr>
</thead>
</cfoutput>
<cfoutput query="qRead">
<tr>
<td>#role#</td>
<td class="c">
<cfif #ATTRIBUTES.editable#>
<form action="#request.thisPage#" method="post">
<input type="hidden" name="usr_id" value="#ATTRIBUTES.usr_id#"/>
<input type="hidden" name="role_id" value="#role_id#"/>
<input type="hidden" name="track" value="#ATTRIBUTES.self#"/>
<button type="submit" name="detach_role" class="submitminus" title="убрать роль пользователя"></button>
</form>
</cfif>
</td>
</tr>
</cfoutput>
<cfif ATTRIBUTES.editable>
<cfoutput>
<tr>
<td colspan="3" style="vertical-align:middle;">
<form action="#request.thisPage#" method="post">
<input type="hidden" name="track" value="#ATTRIBUTES.self#"/>
<input type="hidden" name="usr_id" value="#ATTRIBUTES.usr_id#"/>
<button type="submit" name="add_role" class="submitnew" value="" title="добавить прямо тут" style="vertical-align:middle"></button>
<cfquery name="qRole" datasource="#request.DS#">
select c.role_id, c.role
from role c
order by c.role
</cfquery>
<c:combo
query=#qRole#
combo="role_id"
key="role_id"
id="role_id"
displayf="##role##"
empty=""
style="vertical-align:middle"
<!--- flag_disabled="cnt"--->
/>
</form>
<i></i>
</td>
</tr>
</cfoutput>
</cfif>
</table>
<cfexit method="exittag"/>