spec/usr.cfm
2025-06-20 22:15:21 +03:00

185 lines
6.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<cfsilent>
<cfimport prefix="m" taglib="lib"/>
<cfimport prefix="c" taglib="lib/controls"/>
<cfimport prefix="d" taglib="lib/data"/>
<cfimport prefix="layout" taglib="layout"/>
</cfsilent><m:silent silent="No">
<cffunction name="plain2HtmClean">
<cfargument name="s" type="string"/>
<cfreturn request.plain2htm(request.cleanHtm(s))/>
</cffunction>
<cffunction name="cleanInput">
<cfargument name="s" type="string"/>
<cfreturn htmlEditFormat(s)/>
</cffunction>
<m:prepare_detail entity="usr" key="usr_id" pageInfoOut="pageInfo"/>
<d:bean readonly=#!pageInfo.writePermitted()# table="usr" datasource="#request.DS#" output="d" status="status">
<d:param field="usr_id" type="integer" key autoincrement/>
<d:param field="login" type="varchar" size="255" preprocessor=#cleanInput#/>
<d:param field="email" type="varchar" size="255" preprocessor=#cleanInput#/>
<d:param field="firstname" type="varchar" size="255" preprocessor=#cleanInput#/>
<d:param field="middlename" type="varchar" size="255" preprocessor=#cleanInput#/>
<d:param field="lastname" type="varchar" size="255" preprocessor=#cleanInput#/>
<d:param field="descr" type="varchar" preprocessor=#plain2HtmClean#/>
<d:param field="creator_id" type="integer" value="#request.usr_id#" skipUpdate/>
<d:param field="updater_id" type="integer" value="#request.usr_id#" />
<d:param field="dt_created" type="timestamp" value="#Now()#" skipUpdate/>
<d:param field="dt_updated" type="timestamp" value="#Now()#"/>
</d:bean>
<cfif NOT status.errorState>
<cfif structKeyExists(form,"save") OR structKeyExists(form,"saveAndClose")>
<cfparam name="password"/>
<cfset password=trim(password)/>
<cfif #password# NEQ "password_unchanged">
<cfquery datasource="#request.DS#">
update usr set password=<cfqueryparam cfsqltype="cf_sql_varchar" value="#request.passwordHashCreate(password)#"/>
where usr_id=<cfqueryparam cfsqltype="cf_sql_integer" value="#d.usr_id#"/>
</cfquery>
</cfif>
</cfif>
</cfif>
<m:dispatch_detail
usePRG="No"<!---*** --->
pageInfo=#pageInfo#
id="#d.usr_id#"
status=#pageInfo.status#
trackOut="tr"
idAttributesOut="id"
/>
<!--- decoration --->
<cfquery name="qDecoration" datasource="#request.DS#">
select
a.login as creator, a.shortname as creator_shortname, m.login as updater, m.shortname as updater_shortname
from #pageInfo.entity# e
left outer join usr a on (e.creator_id=a.usr_id)
left outer join usr m on (e.updater_id=m.usr_id)
where e.#pageInfo.key#=<cfqueryparam attributeCollection=#id#/>
</cfquery>
</m:silent><!---
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------
---><layout:page section="header" pageInfo=#pageInfo#>
<layout:attribute name="title">
<cfoutput>
Пользователь
<cfif d.usr_id GT 0>
<b>#d.login#</b>
[#d.usr_id#]
</cfif>
</cfoutput>
</layout:attribute>
</layout:page>
<cfif status.errorState GT 0>
<cfoutput><div class="err">#status.errorMessage#</div></cfoutput>
</cfif>
<m:ac obj=""><!--- Если нет доступа на чтение, не показывается ничего. Доступ на запись включает доступ на чтение --->
<cfoutput>
<input type="hidden" name="usr_id" value="#d.usr_id#"/>
<input type="hidden" name="track" value="#tr.self#"/>
<input type="hidden" name="pass" value=""/><!--- pass marker to prevent save on submit --->
<div class="detail">
<div class="tr">
<div class="th">ID</div>
<div class="td">
#d.usr_id#
</div>
</div>
<div class="tr">
<div class="th">Логин</div>
<div class="td">
<input type="text" name="login" value="#d.login#" size="70"/>
</div>
</div>
<div class="tr">
<div class="th">E-mail</div>
<div class="td">
<input type="text" name="email" value="#d.email#" size="70"/>
</div>
</div>
<div class="tr">
<div class="th">Имя</div>
<div class="td">
<input type="text" name="firstname" value="#d.firstname#" size="70"/>
</div>
</div>
<div class="tr">
<div class="th">Отчество</div>
<div class="td">
<input type="text" name="middlename" value="#d.middlename#" size="70"/>
</div>
</div>
<div class="tr">
<div class="th">Фамилия</div>
<div class="td">
<input type="text" name="lastname" value="#d.lastname#" size="70"/>
</div>
</div>
<div class="tr">
<div class="th">Пароль</div>
<div class="td">
<input type="password" name="password" value="password_unchanged" size="70"/>
</div>
</div>
<div class="tr">
<div class="th">Описание</div>
<div class="td">
<textarea name="descr" rows="10" cols="100">#request.htm2plain(d.descr)#</textarea>
</div>
</div>
<div class="tr">
<div class="th">Создано</div>
<div class="td">
#dateFormat(d.dt_created,'DD.MM.YYYY')# #timeFormat(d.dt_created,'HH:MM')#
#qDecoration.creator# <cfif len(qDecoration.creator_shortname)>(#qDecoration.creator_shortname#)</cfif>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Изменено
#dateFormat(d.dt_updated,'DD.MM.YYYY')# #timeFormat(d.dt_updated,'HH:MM')#
#qDecoration.updater# <cfif len(qDecoration.updater_shortname)>(#qDecoration.updater_shortname#)</cfif>
</div>
</div>
</div>
</cfoutput>
<layout:page section="extension" closeForm="Yes"/>
<cfif d.usr_id GT 0>
<cfmodule template="mod/usr_role.cfm"
usr_id=#d.usr_id#
fwx=#tr.fwx#
self=#tr.self#
editable=#pageInfo.writePermitted()#
/>
* Для добавления пользователю роли выберите желаемую роль в выпадающем списке и нажмите кнопку со "*" слева от него (нажимать "Сохранить" в основной форме - справа вверху - для этого не нужно)
</cfif>
</m:ac>
<layout:page section="footer"/>