📄 common.inc
字号:
<!-- #include file="adovbs.inc" -->
<%
'************************************************************************************************
' 文件名: common.inc
' Copyright(c) 2001-2002 上海阿尔卡特网络支援系统有限公司
' 创建人 : 周秋舫
' 日 期 : 2002-09-15
' 修改历史 :
' 修改日期 : 2002-11-05
' 修改内容:针对物业管理系统作适当的调整
'
' 功能描述 : 用户有关的函数实现
' : 数据库连接和数据访问的函数实现
' : 数据处理有关的函数实现
' : 有关安全方面的通用函数
'***************************************************************************************
''''''''''''''''''''''''''''''''''''''
'* 用户有关的函数实现
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' SetUserInfor(sLoginname) ..: 保存用户信息,参数是用户登录名
' EmptyUserInfor() ..........: 清除用户信息
' DealEmptySessionValue ......: 如果session值为空,则清空所有的session值,认为session已过期
' SetUserId(sLoginname) ......: 保存用户登录名
' GetUserId() ..................: 获取用户登录名,如admin,wangjiewei,即t_account中的account_id
' SetUserName(sUserName) ......: 保存用户姓名
' GetUserName() ..............: 获取用户姓名,如周秋舫,即t_employee中的name
' SetEmpId(id) ..............: 保存用户序列号
' GetEmpId() ..................: 获取用户序列号,如54,即t_employee中的emp_id
' SetRoleId(id) ..............: 保存用户角色标识
' GetRoleId() ..................: 获取用户角色标识,即t_account中的role_id
' SetOnline() ..................: 设置成在岗状态
' SetOffline() ..............: 设置成离岗状态
' GetOnlineStatus() ..........: 获取用户在岗/离岗状态
' IsOnline () ..............: 用户是否在线,是true,否false
' IsLogin() ..................: 用户是否已经登录,是true,否false
'
'以下是用于判断当前用户是否是一些特殊角色的函数
' IsAdministrator() ...........: 判断当前用户是不是系统管理员
'
'
'以下是用于判断当前用户对模块的操作权限的函数
' HasRight(sItem)................: 判断当前用户对sItem的操作权限,返回值为常量,定义如下:
'Const RIGHT_DENY =0 :无权访问
'Const RIGHT_READ =1 :只读访问
'Const RIGHT_WRITE =2 :读写访问
'
'sItem的取值为各个项目常量,定义如下:
'
''' 项目常量定义
'Const ID_CUSTOMER = 1 '' 客户管理
'Const ID_STOCK = 2 '' 库存管理
'Const ID_PURCHASE = 3 '' 采购管理
'Const ID_HR = 4 '' 人事管理
'Const ID_WORKSHEET = 5 '' 工单管理
'Const ID_EQUIPMENT = 6 '' 设备管理
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'* 数据库有关的函数实现
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' DBConnection() '' 连接数据库
' DBConnectionOA() '' 连接OA数据库
' Disconnect(conn) '' 断开数据库
' ProcessError(conn) '' 数据库相关出错信息
' OpenRs(conn, sql)
' OpenStaticRS(conn, sql)
' CloseRs(rs)
' GetValue(conn,rs, field) '' 获取记录集中的字段值 conn用于错误显示(魏霖改)
' GetValueHTML(rs, field) '' 获取记录集中的字段的HTML值
' SelectOptions(conn, sql, ValueField, DisplayField, DefaultValue) '' <option></option>...
' DLookUp(conn, sql)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'* 数据处理有关的函数实现
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' GetParam(ParamName) '' 获取参数
' GetIntParam(ParamName) '' 获取整数类型的参数
' ToSQL(Value, sType) ''
' ToHTML
' ToURL
' FormatDT(dt, format) '' 日期格式
' strlen(str) '' 获取字符串的长度,可以识别中英文,中文算2个字符
' Bref(str, length) '' 截取一定长度的字符串,可以识别中文
' FormatStr '' 将字符串中的空格和回车转换成可在<td>中正确显示的字符串
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'*有关安全方面的通用函数
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' CheckSecurity(sItem) ,sItem参数的取值为各个项目常量,定义同HasRight(sItem)的参数定义。
' Checkmenu(roleid, itemid)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'*和日期有关的函数
' getWeekdayStr(pDate) : 星期几
' getGongliStr(pDate) : 公历,格式如2002年05月18日
' getNontliStr(pDate) : 农历,格式如壬午(马)年四月初七
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 以下是上述所有公用函数的实现
Const RIGHT_DENY = 0 '' 无权访问
Const RIGHT_READ = 1 '' 只读访问
Const RIGHT_WRITE = 2 '' 读写访问
Const ID_CUSTOMER = 1 '' 客户管理
Const ID_STOCK = 2 '' 库存管理
Const ID_PURCHASE = 3 '' 采购管理
Const ID_HR = 4 '' 人事管理
Const ID_WORKSHEET = 5 '' 工单管理
Const ID_EQUIPMENT = 6 '' 设备管理
'************************************************************************************************
' 函数名 : SetUserInfor
' 输 入 : sLoginname ---- 用户登录名,字符串类型
' 输 出 : SetUserInfor函数名作为返回值,成功返回空字串,出错返回错误信息
' 功能描述: 设置全局性的用户信息
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Function SetUserInfor(sLoginname)
dim crs, rs, sSQL
dim iEmpid, sUserName, iRoleId, iNodeId
dim sError
sError = ""
sSQL = "select T1.role_id as role_id, T1.emp_id, T2.name as emp_name" & _
" from T_Account T1" & _
" left join T_Employee t2 on t2.emp_id = t1.emp_id" & _
" where t1.account_id = " & ToSQL(sLoginname, "Text")
set rs = OpenRs(conn, sSQL)
if Not rs.EOF then
iEmpid = getvalue(rs,"emp_id")
sUserName = getvalue(rs,"emp_name")
iRoleId = getvalue(rs,"role_id")
'' 保存用户信息
SetUserId( sLoginname ) ' 用户标识,即登录账号
SetEmpid( iEmpid ) ' 用户流水号
if sUserName="" then
SetUserName(sLoginname)
else
SetUserName( sUserName ) ' 用户姓名
end if
SetRoleId( iRoleId ) ' 用户角色标识
SetOnline() ' 用户在岗状态
if iRoleId="" then
if IsAdministrator then
'' 系统管理员可以进入
else
'' 清除用户信息
call EmptyUserInfor()
sError=" 用户信息不全(无角色)"
end if
end if
else
sError = "该用户名不存在!"
end if
CloseRs(rs)
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
'************************************************************************************************
' 函数名 : EmptyLeaveInfor(sLoginname)
' 输 入 : 用户登录名
' 输 出 : (无)
' 功能描述: 清除用户留言信息
' 调用模块:
' 作 者 : 蔡晓燕
' 日 期 : 2003-01-06
' 版 本 :
'************************************************************************************************
Sub EmptyLeaveInfor(sLoginname)
Dim sSQL, sUserId
sUserId = sLoginname
'' 更新数据库
sSQL = "update T_OnlineStatus" & _
" set leave_infor = null" & _
", leave_time = null" & _
" where account_id = " & ToSQL(sUserId,"Text")
'response.write sSQL
'response.end
conn.Execute(sSQL)
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 "/wuye/"
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
End Sub
'************************************************************************************************
' 函数名 : GetUserName
' 输 入 : (无)
' 输 出 : 用户姓名,字符串类型
' 功能描述: 获取当前用户的姓名
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Function GetUserName()
dim sTemp
sTemp = Session("UserName")
' call DealEmptySessionValue(sTemp)
GetUserName = sTemp
End Function
'************************************************************************************************
' 函数名 : SetEmpId
' 输 入 : id ---- 用户序列号,整型
' 输 出 : (无)
' 功能描述: 用Session来保存用户序列号
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Sub SetEmpId(id)
Session("EmpId") = id
End Sub
'************************************************************************************************
' 函数名 : GetEmpId
' 输 入 : (无)
' 输 出 : 用户序列号,整型
' 功能描述: 获取当前用户的序列号
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Function GetEmpId()
dim sTemp
sTemp = Session("EmpId")
'call DealEmptySessionValue(sTemp)
GetEmpId = sTemp
End Function
'************************************************************************************************
' 函数名 : SetRoleId
' 输 入 : id ---- 用户角色标识,整型
' 输 出 : (无)
' 功能描述: 用Session来保存用户角色标识
' 调用模块:
' 作 者 : 周秋舫
' 日 期 : 2002-05-29
' 版 本 :
'************************************************************************************************
Sub SetRoleId(id)
Session("RoleID") = id
End Sub
'************************************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -