我想在我的应用中实现锁定功能。一旦用户在我的应用程序中选择了客户,该记录就不应该对其他用户可用。我创建了包含User ID
和Record ID
的锁定表。因此,在其他人尝试选择相同记录的情况下,我将检查锁定表。如果存在Record ID
,则在Lock表中,我应该检查用户是否仍然登录。我想知道是否有办法在ColdFusion 9中检查它?
以下是我的会话变量和函数的示例,它应该更新Lock表:
userdata
APPFNAME John
APPJOBTITLE Manager
APPLNAME Miller
APPUSERID G890H32
APPUSER jmiller
<cffunction name="onSessionEnd" returnType="void" output="true">
<cfargument name="SessionScope" type="struct" required="true">
<cfargument name="AppScope" type="struct" required="true">
<cfif StructKeyExists(session,"userdata")>
<cfset currentDate = DateFormat(Now(),'mm/dd/yyyy')>
<cfset currentTime = TimeFormat(Now(),'hh:mm tt')>
<cfquery name="updateLock" datasource="Test">
UPDATE Locked
SET l_active = '0',
l_udt = <cfqueryparam value="#currentDate#" cfsqltype="cf_sql_date" maxlength="10" />,
l_utime = <cfqueryparam value="#currentTime#" cfsqltype="cf_sql_char" maxlength="8" />
WHERE l_userID = <cfqueryparam value="#trim(request.userdata.APPUSERID)#" cfsqltype="cf_sql_char" maxlength="10" />
</cfquery>
</cfif>
</cffunction>
我正在处理的系统没有任何存储当前登录用户的临时表。检查用户是否已登录的另一个选项是什么?我看到几篇与cflogin
相关的帖子,但没有一个帖子解释了这个特定的场景。如果有人可以提供帮助,请告诉我。
答案 0 :(得分:2)
我建议在onSessionEnd()
的{{1}}方法中添加查询,以更新锁定表以指示用户不再登录。此更新是否删除记录或更新字段是否已启动给你。