www.gusucode.com > CC校友录贴吧 CCBar源码程序asp编程 > inc/logic/logic_admin.asp
<!-- #include file = "../inc_md5.asp" --> <!-- #include file = "../inc_serv_func.asp" --> <% ''=================================================================== '= ASP FILENAME : /inc/logic/logic_admin.asp '= CREATED TIME : 2006-4-30 '= LAST MODIFIED: 2006-4-30 '= VERSION INFO : CCASP Framework Ver 2.0.1 ALL RIGHTS RESERVED BY www.cclinux.com '= DESCRIPTION : 管理员业务逻辑 '= Change Log: '===================================================================' %> <% '== const define Const CONST_ADMIN_NORMAL_STATUS = 0 Const CONST_ADMIN_SUPEND_STATUS = 1 Const CONST_ADMIN_DEL_STATUS = 2 ''=================================================================== '= Function : GetAdminsLogic() '= Time : Created At 2006-5-5 '= Input : strWhere : 符合条件 '= Return : boolean '= Description : 取管理员记录集 '===================================================================' Function GetAdminsLogic(strWhere) GBL_objPubDB.Clear() GBL_objPubDB.AllSQL = "SELECT * FROM CLASS_ADMIN WHERE ADMIN_ID<>25 " & strWhere & " ORDER BY ADMIN_ID DESC" If Not GBL_objPubDB.SQLRSExecute() Then GetAdminsLogic = False Exit Function End If GetAdminsLogic = True End Function ''=================================================================== '= Function : GetAdminLogic() '= Time : Created At 2006-5-5 '= Input : intAdminId : 管理员ID '= Return : boolean '= Description : 取单个管理员记录(by id) '===================================================================' Function GetAdminLogic(intAdminId) GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_ADMIN" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "ADMIN_ID","" GBL_objPubDB.AddField "ADMIN_LEVEL","" GBL_objPubDB.AddField "ADMIN_STATUS","" GBL_objPubDB.AddField "ADMIN_ACCOUNT","" GBL_objPubDB.AddField "ADMIN_PASSWORD","" GBL_objPubDB.AddField "ADMIN_ADD_TIME","" GBL_objPubDB.AddField "ADMIN_LAST_LOGIN_TIME","" GBL_objPubDB.AddField "ADMIN_LOGIN_COUNT","" GBL_objPubDB.AddField "ADMIN_IP","" GBL_objPubDB.Where = "ADMIN_ID=" & intAdminId If Not GBL_objPubDB.SQLRSExecute() Then GetAdminLogic = False Exit Function End If GetAdminLogic = True End Function ''=================================================================== '= Function : GetAdminByAccountLogic() '= Time : Created At 2006-5-5 '= Input : strAccount : 管理员帐号 '= Return : boolean '= Description : 取单个管理员记录(by account) '===================================================================' Function GetAdminByAccountLogic(strAccount) GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_ADMIN" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "ADMIN_ID","" GBL_objPubDB.AddField "ADMIN_LEVEL","" GBL_objPubDB.AddField "ADMIN_STATUS","" GBL_objPubDB.AddField "ADMIN_ACCOUNT","" GBL_objPubDB.AddField "ADMIN_PASSWORD","" GBL_objPubDB.Where = "ADMIN_ACCOUNT='" & strAccount & "'" If Not GBL_objPubDB.SQLRSExecute() Then GetAdminByAccountLogic = False Exit Function End If GetAdminByAccountLogic = True End Function ''=================================================================== '= Function : SaveSelfPwdLogic() '= Time : Created At 2006-5-13 '= Input : intAdminId : 管理员ID '= Input : strOldPwd : 老密码 '= Input : strNewPwd : 新密码 '= Return : boolean '= Description : 添加/编辑管理员 '===================================================================' Function SaveSelfPwdLogic(intAdminId,strOldPwd,strNewPwd) '== 老密码是否正确 GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_ADMIN" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "ADMIN_ID","" GBL_objPubDB.Where = "ADMIN_PASSWORD='" & Md5(strOldPwd) & "' AND ADMIN_ID=" & intAdminId If Not GBL_objPubDB.SQLRSExecute() Then SaveSelfPwdLogic = False Exit Function End If If GBL_objPubDB.intRSNum <= 0 Then Call GBL_objException.catchErr(E_USER_PUB,"老密码不正确") SaveSelfPwdLogic = False Exit Function End If '== 修改为新密码 GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_ADMIN" GBL_objPubDB.SQLType = "UPDATE" GBL_objPubDB.AddField "ADMIN_PASSWORD",Md5(strNewPwd) GBL_objPubDB.Where = "ADMIN_ID=" & intAdminId If Not GBL_objPubDB.SQLExecute() Then SaveSelfPwdLogic = False Exit Function End If SaveSelfPwdLogic = True End Function ''=================================================================== '= Function : SaveAdminLogic() '= Time : Created At 2006-5-5 '= Input : intAdminId : 管理员ID ""--add other--edit '= Input : objFormData : 表单数据 '= Return : boolean '= Description : 添加/编辑管理员 '===================================================================' Function SaveAdminLogic(intAdminId,objFormData) Dim strAccount,intLevel,strPassword,strPassword2,intStatus,strCheckPwd '== 获取表单数据 strAccount = objFormData("Account") intLevel = objFormData("Level") intStatus = objFormData("Status") strPassword = objFormData("Password") strPassword2 = objFormData("Password2") strCheckPwd = objFormData("MydPwd") '==密码确认 If intAdminId = "" Or strCheckPwd = "on" Then If strPassword <> strPassword2 Then Call GBL_objException.catchErr(E_USER_PUB,"两次输入的密码不一致") SaveAdminLogic = False Exit Function End If End If '== 是否重复 GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_ADMIN" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "ADMIN_ID","" If intAdminId = "" Then GBL_objPubDB.Where = "ADMIN_ACCOUNT='" & strAccount & "'" Else GBL_objPubDB.Where = "ADMIN_ACCOUNT='" & strAccount & "' AND ADMIN_ID <>" & intAdminId End If If Not GBL_objPubDB.SQLRSExecute() Then SaveAdminLogic = False Exit Function End If If GBL_objPubDB.intRSNum > 0 Then Call GBL_objException.catchErr(E_USER_PUB,"该用户名(" & strAccount & ")已存在") SaveAdminLogic = False Exit Function End If GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_ADMIN" If intAdminId = "" Then GBL_objPubDB.SQLType = "INSERT" Else GBL_objPubDB.SQLType = "UPDATE" End If GBL_objPubDB.AddField "ADMIN_ACCOUNT",strAccount GBL_objPubDB.AddField "ADMIN_LEVEL",intLevel GBL_objPubDB.AddField "ADMIN_ADD_TIME",Now() GBL_objPubDB.AddField "ADMIN_STATUS",intStatus If intAdminId = "" Or strCheckPwd = "on" Then GBL_objPubDB.AddField "ADMIN_PASSWORD",Md5(strPassword) If intAdminId <> "" Then GBL_objPubDB.Where = "ADMIN_ID=" & intAdminId If Not GBL_objPubDB.SQLRSExecute() Then SaveAdminLogic = False Exit Function End If SaveAdminLogic = True End Function ''=================================================================== '= Function : RemoveAdminsLogic() '= Time : Created At 2006-5-5 '= Input : strWhere : 删除条件 '= Return : boolean '= Description : 删除管理员 '===================================================================' Function RemoveAdminsLogic(strWhere,intSelfAdminId) Dim strSql '== 是否是本身 strSql = strWhere & " AND ADMIN_ID=" & intSelfAdminId If Not GetAdminsLogic(strSql) Then RemoveAdminsLogic = False Exit Function End If If GBL_objPubDB.intRSNum > 0 Then Call GBL_objException.catchErr(E_USER_PUB,"您选择的管理员中存在管理员自身,不能删除") RemoveAdminsLogic = False Exit Function End If '== 是否是本身 strSql = strWhere & " AND ADMIN_LEVEL=0 " If Not GetAdminsLogic(strSql) Then RemoveAdminsLogic = False Exit Function End If If GBL_objPubDB.intRSNum > 0 Then Call GBL_objException.catchErr(E_USER_PUB,"您选择的管理员中存在最高管理员,不能删除") RemoveAdminsLogic = False Exit Function End If '== 是否为超级管理员 '== 删除记录 'GBL_objPubDB.Clear() 'GBL_objPubDB.TableName = "CLASS_ADMIN" 'GBL_objPubDB.SQLType = "UPDATE" 'GBL_objPubDB.AddField "ADMIN_STATUS",CONST_ADMIN_DEL_STATUS 'GBL_objPubDB.Where = " 1=1 " & strWhere 'If Not GBL_objPubDB.SQLRSExecute() Then ' RemoveAdminsLogic = False ' Exit Function 'End If GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_ADMIN" GBL_objPubDB.SQLType = "DELETE" GBL_objPubDB.AddField "ADMIN_STATUS",CONST_ADMIN_DEL_STATUS GBL_objPubDB.Where = " 1=1 " & strWhere If Not GBL_objPubDB.SQLRSExecute() Then RemoveAdminsLogic = False Exit Function End If RemoveAdminsLogic = True End Function ''=================================================================== '= Function : AdminLoginLogic() '= Time : Created At 2006-5-5 '= Input : objFormData : 表单数据(Account,Password,VerfiyCode) '= Return : boolean '= Description : 校验登陆 '===================================================================' Function AdminLoginLogic(objFormData) Dim strAccount,strPassword,strVerifyCode strAccount = objFormData.Item("Account") strPassword = objFormData.Item("Password") strVerifyCode = objFormData.Item("VerifyCode") '== 验证码 If strVerifyCode = "" Then Call GBL_objException.catchErr(E_USER_PUB,"返回后请刷新登录页面后重新输入正确的信息") AdminLoginLogic = False Exit Function ElseIf Session("SEN_GetCode") = "9999" Then Session("SEN_GetCode") = "" ElseIf Session("SEN_GetCode") = "" Then Call GBL_objException.catchErr(E_USER_PUB,"请不要重复提交,如需重新登录请返回登录页面") AdminLoginLogic = False Exit Function ElseIf Cstr(strVerifyCode) <> Cstr(Trim(Session("SEN_GetCode"))) Then Call GBL_objException.catchErr(E_USER_PUB,"您输入的确认码和系统产生的不一致,请重新输入") AdminLoginLogic = False Exit Function End If GBL_objPubDB.Clear() GBL_objPubDB.TableName = "CLASS_ADMIN" GBL_objPubDB.SQLType = "SELECT" GBL_objPubDB.AddField "ADMIN_ID","" GBL_objPubDB.AddField "ADMIN_ACCOUNT","" GBL_objPubDB.AddField "ADMIN_LEVEL","" GBL_objPubDB.AddField "ADMIN_STATUS","" GBL_objPubDB.AddField "ADMIN_LAST_LOGIN_TIME","" GBL_objPubDB.Where = "ADMIN_ACCOUNT='" & strAccount & "'" & " AND ADMIN_PASSWORD='" & Md5(strPassword) & "'" If Not GBL_objPubDB.SQLRSExecute() Then AdminLoginLogic = False Exit Function End If If GBL_objPubDB.intRSNum <= 0 Then Call GBL_objException.catchErr(E_USER_PUB,"登陆管理员不存在或者密码错误") AdminLoginLogic = False Exit Function End If If GBL_objPubDB.objPubRS("ADMIN_STATUS") = CONST_ADMIN_SUPEND_STATUS Then Call GBL_objException.catchErr(E_USER_PUB,"登陆管理员为停止使用状态") AdminLoginLogic = False Exit Function End If If GBL_objPubDB.objPubRS("ADMIN_STATUS") = CONST_ADMIN_DEL_STATUS Then Call GBL_objException.catchErr(E_USER_PUB,"登陆管理员已删除") AdminLoginLogic = False Exit Function End If Dim intAdminId intAdminId = GBL_objPubDB.objPubRS("ADMIN_ID") '== set session Session.Contents.RemoveAll() '==??? Session(GBL_strCookieURL & "SEN_AdminAccount")=_ GBL_objPubDB.objPubRS("ADMIN_ACCOUNT") Session(GBL_strCookieURL & "SEN_AdminId") =_ GBL_objPubDB.objPubRS("ADMIN_ID") Session(GBL_strCookieURL & "SEN_AdminLevel") =_ GBL_objPubDB.objPubRS("ADMIN_LEVEL") Session(GBL_strCookieURL & "SEN_AdminLastLoginTime") =_ GBL_objPubDB.objPubRS("ADMIN_LAST_LOGIN_TIME") '== 更新登陆情况 GBL_objPubDB.Clear() GBL_objPubDB.ALLSQL = "UPDATE CLASS_ADMIN SET ADMIN_LOGIN_COUNT=ADMIN_LOGIN_COUNT+1,ADMIN_IP='" & GetUserIp & "' ,ADMIN_LAST_LOGIN_TIME='" & Now() & "' WHERE ADMIN_ID=" & intAdminId If Not GBL_objPubDB.SQLRSExecute() Then AdminLoginLogic = False Exit Function End If AdminLoginLogic = True End Function ''=================================================================== '= Function : AdminLoginLogic() '= Time : Created At 2006-5-5 '= Output : 影响数据session数据(SEN_AdminAccount,SEN_AdminId,SEN_AdminLevel,SEN_AdminLastLoginTime) '= Return : boolean '= Description : 管理员登出 '===================================================================' Function AdminLogoutLogic() Session.Contents.RemoveAll() Session(GBL_strCookieURL & "SEN_AdminAccount") = "" Session(GBL_strCookieURL & "SEN_AdminId") = "" Session(GBL_strCookieURL & "SEN_AdminLevel") = "" Session(GBL_strCookieURL & "SEN_AdminLastLoginTime") = "" AdminLogoutLogic = True End Function ''=================================================================== '= Function : GetAdminLevelLogic() '= Time : Created At 2006-5-5 '= Input : intLevel : 管理员级别的数字 '= Return : 管理员级别的中文含义 '= Description : 取管理员级别 '===================================================================' '== 取级别 Function GetAdminLevelLogic(intLevel) Dim strTmp Select Case intLevel Case 0: strTmp = "超级管理员" Case 1: strTmp = "副超级管理员" Case 2: strTmp = "一般管理员" End Select GetAdminLevelLogic = strTmp End Function ''=================================================================== '= Function : GetAdminStatusLogic() '= Time : Created At 2006-5-5 '= Input : intStatus : 管理员级别的数字 '= Return : 管理员状态的中文含义 '= Description : 取管理员状态 '===================================================================' Function GetAdminStatusLogic(intStatus) Dim strTmp Select Case intStatus Case CONST_ADMIN_NORMAL_STATUS: strTmp = "正常" Case CONST_ADMIN_SUPEND_STATUS: strTmp = "停止使用" Case CONST_ADMIN_DEL_STATUS: strTmp = "已删除" End Select GetAdminStatusLogic = strTmp End Function %>