⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 role.asp

📁 功能齐全的oa系统
💻 ASP
字号:
<!--#Include File = ../Include/PublicFunction.asp -->
<%
'*************************************************************
'名称:SysMgt_UsrGrp
'
'中文含义:系统用户组管理
'
'描述:该文件包含了系统用户组管理的所有维护函数
'
'*************************************************************
'
'函数定义列表:
'
'函数定义                                                       描述
'---------------------------------------------------------------------------------------
'Function AddRole()                                          添加角色
'
'Function DelRole(IDs)                                       删除角色
'
'Function ModifyRole()                                       修改角色
'
'Function GetRoleList()                                      获取角色列表
'
'Function GetRoleInfo(ID)                                    取得角色详细资料
'
'Function AssignUser(RoleID,UserIDs)                         为某角色分配系统用户
'
'Function AssignSysFun(UserGroupID,ModuleIDs,                为角色分配系统功能权限
'                  FunNames,OperateTypes)
'
'Function GetRolesUsers(UserGroupID)                         获取某角色所包含的用户列表
'
'Function GetRolesFuns(UserGroupID)                          获取指定角色的系统功能列表
'
'Function AddSysFun()                                        用户角色功能复制
'---------------------------------------------------------------------------------------


'*************************************************************
'功能:添加角色
'参数:
'  无
'返回值:Integer
'*************************************************************
Function AddRole()
	Dim cmdAddUserGroup
	Dim strCommand
	InActive=Request.Form("INACTIVE")
	if InActive<>"1" then 
		InActive="1"
	end if

	FieldList="RoleID,NAME,Description,IsActive"
	ValueList=cstr(AutoGetNo("PUB_Role"))+"и"+_
				Request.Form("NAME")+"и"+_
				Request.Form("DESCRIPTION")+"и"+_
				InActive
	AddRecord "PUB_Role",FieldList,ValueList,"RoleID"

End Function


'*************************************************************
'功能:删除角色
'参数:
'  IDs;String;角色唯一代码串
'返回值:Integer
'*************************************************************
Function DelRole(IDs)

	If IDs<>"" Then
		IDs = IDs + ","						'<--给最后的元素补分隔符","
		Call DeleteRecord("PUB_Role","RoleID",IDs,"角色")
	End If

End Function



'*************************************************************
'功能:修改角色
'参数:
'  无
'返回值:Integer
'*************************************************************
Function ModifyRole()
	'Dim cmdModifyUser
	'Dim strCommand
	
	'Set cmdModifyUser=Server.CreateObject("adodb.command")
	'
	'With cmdModifyUser
	'	.ActiveConnection =conn
	'	strCommand="update PUB_Role set NAME='"+Request.Form("NAME")+_
	'				"',DESCRIPTION='"+Request.Form("DESCRIPTION")+"' where RoleID="+Request.Form("RoleID")
	'	'Response.Write strCommand
	'	.CommandText =strCommand
	'	.Execute 
	'End With
	
	RoleID=Request.Form("RoleID")
	InActive=cint(Request.Form("InActive"))
	
	
	If InActive = 1 Then 
		InActive = 0
	Else
		InActive = 1 
	End If
Response.Write inActive
'Response.End 
	FieldList="NAME,DESCRIPTION,IsACTIVE"
	ValueList=	Request.Form("NAME")+"и"+_
				Request.Form("DESCRIPTION")+"и"&InActive
				
 
	
	If RoleID <> "" Then
		ModifyRecord "PUB_Role",FieldList,ValueList,"RoleID",RoleID
	End if          

End Function


'*************************************************************
'功能:获取角色列表
'参数:
'  无
'返回值:Recordset;包含角色列表的记录集
'*************************************************************
Function GetRoleList()
	
	searchStr="RoleID<>1"
	OrderField = "RoleID"
	OrderMode = 1
	ShowN = 0
		
	Set GetRoleList=GetRecordList("PUB_Role",searchStr,OrderField,OrderMode,ShowN)
	
End Function


'*************************************************************
'功能:取得角色详细资料
'参数:
'  ID;Integer;用户唯一代码
'返回值:Integer
'*************************************************************
Function GetRoleInfo(ID)

	Set GetRoleInfo=GetRecordDetail("PUB_Role","RoleID",ID)
	
	
End Function


'*************************************************************
'功能:为指定的角色分配系统用户
'参数:
'  UserGroupID;Integer;角色唯一代码
'  UserIDs;String;用户唯一代码串
'返回值:Integer
'*************************************************************
Function AssignUser(RoleID,UserIDs)
	Dim cmdAssignUsr
	Dim strInsert
	Dim intUserID
	Dim intStart,intPosition
	intStart = 1 '初始化搜索开始位置
	intPosition = 1 '初始化User ID的析取位置
	
	Set cmdAssignUsr=Server.CreateObject("adodb.command")
	
	With cmdAssignUsr
		.ActiveConnection =conn
		strInsert="delete from PUB_UserRole where Role="+cstr(RoleID)+";"
		.CommandText =strInsert
		.Execute

		'response.end
		If UserIDs <> "" Then
			UserIDs=UserIDs+","
			Do While intStart <= len(UserIDs)
				If mid(UserIDs,intStart,1) = "," Then '找到字符","
					intUserID = cint(mid(UserIDs,intPosition,intStart-intPosition)) '析取出User ID
					strInsert ="insert into PUB_UserRole(UserRoleID,Role,sysUSER)"+_
										" values("+cstr(AutoGetNo("PUB_UserRole"))+","+cstr(RoleID)+","+cstr(intUserID)+");"
					intPosition=intStart + 1 '将User ID的析取位置设为逗号(",")的下一位
					'Response.Write strInsert&"<br>"	
					.CommandText =strInsert
					.Execute

				End If
				intStart = intStart + 1 '后移搜索开始位置
			Loop
		End If
		
		
		'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''往数据库添加静态表时用到此段程序
		'i=1
		'Do while i<=100
		'	sql="insert into PUB_MdlFunction(FunID,Mdl,name)"+_
		'										" values("+cstr(700+i)+",3,'#')"
		'	.CommandText =sql
		'	.Execute
		'	i=i+1
		'loop
		'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
	End With
	
	
End Function


'*************************************************************
'功能:为指定的角色分配系统功能
'参数:
'  RoleID;Integer;角色唯一代码
'  ModuleIDs;String;模块ID字串
'  FunNames;String;功能名称字串
'  OperateTypes;String;功能操作类型串
'返回值:Integer
'*************************************************************
Function AssignSysFun(RoleID,FunIDs)
	Dim cmdAssignUsr
	Dim strInsert
	Dim intFunID
	Dim intStart,intPosition
	intStart = 1 '初始化搜索开始位置
	intPosition = 1 '初始化User ID的析取位置
	
	Set cmdAssignUsr=Server.CreateObject("adodb.command")
	
	With cmdAssignUsr
		.ActiveConnection =conn
		strInsert="delete from PUB_RoleFun where Role="+cstr(RoleID)+";"
		.CommandText =strInsert
		.Execute

		'response.end
		If FunIDs <> "" Then
			'FunIDs=FunIDs+","
			Do While intStart <= len(FunIDs)
				If mid(FunIDs,intStart,1) = "," Then '找到字符","
					intFunID = cint(mid(FunIDs,intPosition,intStart-intPosition)) '析取出User ID
					strInsert =strInsert+"insert into PUB_RoleFun(Role,Fun)"+_
										" values("+cstr(RoleID)+","+cstr(intFunID)+");"
					intPosition=intStart + 1 '将User ID的析取位置设为逗号(",")的下一位
					'Response.Write strInsert&"<br>"	
				End If
				intStart = intStart + 1 '后移搜索开始位置
			Loop
			.CommandText =strInsert
			.Execute
		End If

	End With
	
End Function

'*************************************************************
'功能:取得指定角色所包含的用户列表
'参数:
'  UserGroupID;Integer;角色唯一代码
'返回值:Recordset;该角色所包含的用户列表的记录集
'*************************************************************
Function GetRolesUsers(RoleID)
	Dim rstUserListOfUserGrp
	Dim strSelect
	
	Set rstUserListOfUserGrp=Server.CreateObject("adodb.recordset")
	
	With rstUserListOfUserGrp
		.ActiveConnection =conn
		strSelect ="select * from PUB_USER,PUB_UserRole where PUB_UserRole.Role="+cstr(RoleID)+_
					" and PUB_USER.USERID=PUB_UserRole.sysUSER and PUB_USER.IsActive=1"
		.CursorType =3 'adOpenStatic
		.LockType =3 'adLockOptimistic
		'Response.Write strSelect
		.Source =strSelect
		.Open 
	End With
	
	Set GetRolesUsers=rstUserListOfUserGrp '返回某角色包含的用户列表记录集
	
End Function


'*************************************************************
'功能:获取指定角色的系统功能列表
'参数:
'  UserGroupID;Integer;角色唯一代码
'返回值:Recordset;包含系统功能列表的记录集
'*************************************************************
Function GetRolesFuns(RoleID)
	Dim rstFunListOfUsrGrp
	Dim strSelect
	
	Set rstFunListOfUsrGrp=Server.CreateObject("adodb.recordset")
	
	With rstFunListOfUsrGrp
		.ActiveConnection =conn
		If RoleID = "" Then '若UserGroupID为空,则获取系统所有功能
			strSelect =""
		Else
			strSelect ="select * from PUB_MdlFunction,PUB_RoleFun where PUB_RoleFun.Role="+cstr(RoleID)+_
						" and PUB_MdlFunction.FunID=PUB_RoleFun.Fun"
		End If
		.CursorType =3 'adOpenStatic
		.LockType =3 'adLockOptimistic  
		'Response.Write strSelect
		.Source =strSelect
		.Open 
	End With
	
	Set GetRolesFuns=rstFunListOfUsrGrp '返回功能列表记录集
	
End Function


'*************************************************************
'功能:用户角色功能复制
'参数:
'  RoleID;Integer;角色唯一代码
'  sysUser:UserIDs;String;用户唯一代码串
'返回值:Recordset;包含系统功能列表的记录集
'*************************************************************
Function AddSysFun(RoleID,UserIDs)    
	Dim cmdAssignUsr
	Dim strInsert
	Dim intUserID
	Dim intStart,intPosition
	intStart = 1 '初始化搜索开始位置
	intPosition = 1 '初始化User ID的析取位置
	
	Set cmdAssignUsr=Server.CreateObject("adodb.command")
	Set rs_Fun=Server.CreateObject("adodb.recordset")
	Set rs2=Server.CreateObject("adodb.recordset")
	
	With cmdAssignUsr
		'.ActiveConnection =conn
		'strInsert="delete from PUB_UserFun where Role="+cstr(RoleID)+";"
		'.CommandText =strInsert
		'.Execute

		'response.end
		If UserIDs <> "" Then
			UserIDs=UserIDs+","
			Do While intStart <= len(UserIDs)
				If mid(UserIDs,intStart,1) = "," Then '找到字符","
					intUserID = cint(mid(UserIDs,intPosition,intStart-intPosition)) '析取出User ID
					
					sql="select Fun from Pub_RoleFun where Role="& RoleID &" and Fun not in(select Fun from Pub_UserFun where sysUser="+CSTR(intUserID)+")"
					rs_Fun.open sql,conn,3,3
					Do while not rs_Fun.eof
						strInsert ="insert into PUB_UserFun(UserFunID,sysUser,Fun)"+_
										" values("+cstr(AutoGetNo("PUB_UserFun"))+","+cstr(intUserID)+","+cstr(rs_Fun("Fun"))+");"
						
						conn.Execute strInsert
						Response.Write strInsert&"<br>"
						rs_Fun.moveNext
					loop
					rs_Fun.close
					
					intPosition=intStart + 1 '将User ID的析取位置设为逗号(",")的下一位
					
					'.CommandText =strInsert
					'.Execute

				End If
				intStart = intStart + 1 '后移搜索开始位置
			Loop
		End If

	End With
	
End Function




'*************************************************************
'功能:

'*************************************************************
'Function fixQuotes(theString)
'	fixQuotes=Replace(theString,"'","''")
'End Function

%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -