📄 common_bak.inc
字号:
<%
'************************************************************************************************
' 文件名: common.inc
' Copyright(c) 2001-2002 上海阿尔卡特网络支援系统有限公司
' 创建人 : 周秋舫
' 日 期 : 2002-05-08
' 修改历史 :
' ****年**月**日 ****** 修改内容:**************************************************
' 功能描述 : 其它常用函数
' SetUserInfor(sLoginname) ..: 保存用户信息
' EmptyUserInfor() ..............: 清除用户信息
' DealEmptySessionValue ......: 如果session值为空,则清空所有的session值,认为session已过期
' SetUserId(sLoginname) ......: 保存用户登录名
' GetUserId() ......................: 获取用户登录名,如s10072,admin
' SetUserName(sUserName) ..: 保存用户姓名
' GetUserName() ..................: 获取用户姓名,如周秋舫
' SetEmpSerial(id) ..............: 保存用户序列号
' GetEmpSerial() ..................: 获取用户序列号,如54(周秋舫的emp_serial为54)
' SetRoleId(id) ......................: 保存用户角色标识
' GetRoleId() ......................: 获取用户角色标识
' SetOnline() ......................: 设置成在岗状态
' SetOffline() ......................: 设置成离岗状态
' GetOnlineStatus() ..............: 获取用户在岗/离岗状态
' IsOnline () ..........................: 用户是否在线,是true,否false
' IsLogin() ..........................: 用户是否已经登录,是true,否false
' IsAdministrator() ..............: 判断当前用户是不是系统管理员
' IsOfficer() ..........................: 判断当前用户是不是办公室主任
' IsHrAdmin ..........................: 判断当前用户是不是人事管理员
' IsDocAdmin() ..................: 判断当前用户是不是公文管理员
' IsRuleAdmin() ..................: 判断当前用户是不是制度管理员
' IsHotspotAdmin() ..............: 判断当前用户是不是大事管理员
' IsLibraryAdmin() ..............: 判断当前用户是不是图书管理员
' IsCustomerAdmin() ..........: 判断当前用户是不是单位名录管理员
' IsNewsAdmin() ..................: 判断当前用户是不是大楼动态新闻管理员
' EmpSerialOfSpecialPost(post_id) ........: 根据特殊角色的 post_id 取到相应员工的emp_serial
' HasRightToDocInfor ..........: 是否有公文查询的权限
' HasRightToHrInfor ..............: 是否有人事信息查询的权限
' 版 本 :
'************************************************************************************************
'' 特殊角色常量定义
Const ID_OFFICER = 1 '' 办公室主任
Const ID_HRADMIN = 2 '' 人事管理员
Const ID_DOCADMIN = 3 '' 公文登记员
Const ID_RULEADMIN = 4 '' 制度管理员
Const ID_HOTSPOTADMIN = 5 '' 大事管理员
Const ID_LIBRARYADMIN = 6 '' 图书管理员
Const ID_CUSTOMERADMIN = 7 '' 单位名录管理员
Const ID_NEWSADMIN = 8 '' 大楼动态新闻管理员
'' 权限常量定义
Const ID_DOCINFOR = "0101" '' 公文信息查询
Const ID_HRINFOR = "0201" '' 人事信息查询
'************************************************************************************************
' 函数名 : SetUserInfor
' 输 入 : sLoginname ---- 用户登录名,字符串类型
' 输 出 : SetUserInfor函数名作为返回值,成功返回空字串,出错返回错误信息
' 功能描述: 设置全局性的用户信息
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Function SetUserInfor(sLoginname)
dim crs, rs, sSQL
dim iEmpSerial, sUserName, iRoleId, iDepartmentId, iNodeId, iCoId, sCoName
dim sError
DebugStr("start in function SetUserInfor...")
DebugStr("Loginname:" & sLoginname)
sError = ""
sSQL = "select T1.role_id as role_id, T2.serial as emp_serial, T2.name as emp_name, T2.node_id as node_id, T2.co_id as co_id, T4.parent_node_id as department_id, T3.co_name as co_name" & _
" from T_Account T1" & _
" left join T_Employee t2 on t2.emp_id = t1.account_id" & _
" left join T_Company t3 on t3.co_id = t2.co_id" & _
" left join T_node t4 on t4.node_id = t2.node_id" & _
" where t1.account_id = " & ToSQL(sLoginname, "Text")
set crs = New CRecordset
set rs = crs.Open(dbLocal, sSQL)
if Not rs.EOF then
iEmpSerial = crs.GetValue("emp_serial")
sUserName = crs.GetValue("emp_name")
iRoleId = crs.GetValue("role_id")
iCoId = crs.GetValue("co_id")
iNodeId = crs.GetValue("node_id")
iDepartmentId = crs.GetValue("department_id")
sCoName = crs.GetValue("co_name")
'' 保存用户信息
SetUserId( sLoginname ) ' 用户标识,即登录账号
SetEmpSerial( iEmpSerial ) ' 用户流水号
SetUserName( sUserName ) ' 用户姓名
SetRoleId( iRoleId ) ' 用户角色标识
SetCoId( iCoId ) ' 用户所在公司的公司标识
SetNodeId( iNodeId ) ' 用户所在岗位的标识
SetDepartmentId( iDepartmentId)'用户所在部门的标识
SetCoName( sCoName ) ' 用户所在公司的公司名称
SetOnline() ' 用户在岗状态
'' 判断用户数据是否完整,这里仅判断NodeId,如果不完整,但如果是人事管理员,则让其进入,其他则拒绝
if iNodeId = "" or iDepartmentId = "" then
if IsHrAdmin or IsAdministrator then
'' 只有人事管理员和系统管理员可以进入
else
'' 清除用户信息
call EmptyUserInfor()
Response.Redirect "../common/error.asp?error=您的员工信息不完整(尚未指定部门和岗位),如有疑问,请直接联系人事管理员。&"
Response.end
end if
end if
else
sError = "该用户名不存在或数据库数据不全!"
end if
crs.Close()
SetUserInfor = sError
End Function
'************************************************************************************************
' 函数名 : EmptyUserInfor
' 输 入 : (无)
' 输 出 : (无)
' 功能描述: 清除Session和Cookie值
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Sub EmptyUserInfor()
' 清除Session.Contents集合中的每一项的值
Dim Item
For Each Item in Session.Contents
Session.Contents(Item) = empty
Next
' 清除Response.Cookies集合中的每一项的值
For Each Item in Response.Cookies
Response.Cookies(Item) = empty
Next
End Sub
'************************************************************************************************
' 函数名 : DealEmptySessionValue
' 输 入 : sessionvalue,某个session值
' 输 出 : (无)
' 功能描述: 如果输入的session值为空,则清除所有全局性的用户信息,并转向登录页面
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-08-27
' 版 本 :
'************************************************************************************************
Sub DealEmptySessionValue(sessionvalue)
if IsNull(sessionvalue) then sessionvalue = ""
if IsEmpty(sessionvalue) then sessionvalue = ""
if sessionvalue = "" then
'' 彻底清除所有全局性的用户信息,并转向登录页面
''Response.Write "sessionvalue:" & session()
''call EmptyUserInfor()
Response.Clear
Response.Redirect "/oa/"
Response.end
end if
End Sub
'************************************************************************************************
' 函数名 : SetUserId
' 输 入 : sLoginname ---- 用户登录名
' 输 出 : (无)
' 功能描述: 用Session来保存用户登录名,如wangjiewei,admin
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Sub SetUserId(sLoginname)
Session("UserID") = sLoginname
''Response.Cookies("UserID") = sLoginname
''Response.Cookies("UserID").Expires=#2010-1-1#
End Sub
'************************************************************************************************
' 函数名 : GetUserId
' 输 入 : (无)
' 输 出 : GetUserId函数名作为返回值,返回当前用户的登录名,类型为字符串
' 功能描述: 取出当前用户的登录名
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Function GetUserId()
dim sTemp
sTemp = Session("UserID")
''sTemp = Request.Cookies("UserID")
call DealEmptySessionValue(sTemp)
GetUserId = sTemp
End Function
'************************************************************************************************
' 函数名 : SetUserName
' 输 入 : sUserName ---- 用户姓名,字符串类型
' 输 出 : (无)
' 功能描述: 用Session来保存用户姓名
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Sub SetUserName(sUserName)
Session("UserName") = sUserName
''Response.Cookies("UserName") = sUserName
''Response.Cookies("UserName").Expires=#2010-1-1#
End Sub
'************************************************************************************************
' 函数名 : GetUserName
' 输 入 : (无)
' 输 出 : 用户姓名,字符串类型
' 功能描述: 获取当前用户的姓名
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Function GetUserName()
dim sTemp
sTemp = Session("UserName")
''sTemp = Request.Cookies("UserName")
call DealEmptySessionValue(sTemp)
GetUserName = sTemp
End Function
'************************************************************************************************
' 函数名 : SetEmpSerial
' 输 入 : id ---- 用户序列号,整型
' 输 出 : (无)
' 功能描述: 用Session来保存用户序列号
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Sub SetEmpSerial(id)
Session("EmpSerial") = id
''Response.Cookies("EmpSerial") = id
''Response.Cookies("EmpSerial").Expires=#2010-1-1#
End Sub
'************************************************************************************************
' 函数名 : GetEmpSerial
' 输 入 : (无)
' 输 出 : 用户序列号,整型
' 功能描述: 获取当前用户的序列号
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Function GetEmpSerial()
dim sTemp
sTemp = Session("EmpSerial")
''sTemp = Request.Cookies("EmpSerial")
call DealEmptySessionValue(sTemp)
GetEmpSerial = sTemp
End Function
'************************************************************************************************
' 函数名 : SetRoleId
' 输 入 : id ---- 用户角色标识,整型
' 输 出 : (无)
' 功能描述: 用Session来保存用户角色标识
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Sub SetRoleId(id)
Session("RoleID") = id
''Response.Cookies("RoleID") = id
''Response.Cookies("RoleID").Expires=#2010-1-1#
End Sub
'************************************************************************************************
' 函数名 : GetRoleId
' 输 入 : (无)
' 输 出 : 用户角色标识,整型
' 功能描述: 获取当前用户的角色标识
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Function GetRoleId()
dim sTemp
sTemp = Session("RoleID")
''sTemp = Request.Cookies("RoleID")
call DealEmptySessionValue(sTemp)
GetRoleId = sTemp
End Function
'************************************************************************************************
' 函数名 : SetOnline
' 输 入 : (无)
' 输 出 : (无)
' 功能描述: 用Cookie来保存用户在岗状态为“on”
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Sub SetOnline()
Session("online") = "on"
''Response.Cookies("online") = "on"
''Response.Cookies("online").Expires=#2010-1-1#
End Sub
'************************************************************************************************
' 函数名 : SetOffline
' 输 入 : (无)
' 输 出 : (无)
' 功能描述: 用Cookie来保存用户在岗状态为“off”
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Sub SetOffline()
Session("online") = "off"
''Response.Cookies("online") = "off"
''Response.Cookies("online").Expires=#2010-1-1#
End Sub
'************************************************************************************************
' 函数名 : GetOnlineStatus
' 输 入 : (无)
' 输 出 : 用户在岗状态“on” 或“off”,字符串类型
' 功能描述: 获取当前用户的在岗状态,“on” 或 “off”
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Function GetOnlineStatus()
dim sTemp
sTemp = Session("online")
''sTemp = Request.Cookies("online")
call DealEmptySessionValue(sTemp)
GetOnlineStatus = sTemp
End Function
'************************************************************************************************
' 函数名 : IsOnline
' 输 入 : (无)
' 输 出 : 用户在岗状态true 或false,布尔类型
' 功能描述: 获取当前用户的在岗状态,在岗返回true,离岗返回false
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Function IsOnline()
if GetOnlineStatus = "on" then
''if Request.Cookies("online") = "on" then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -