AssignRights.cs
上传用户:xgw_05
上传日期:2009-12-11
资源大小:20208k
文件大小:5k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Data;
  3. using System.Data.SqlClient;
  4. namespace UDS.Components
  5. {
  6. enum AssignRightsAction
  7. {
  8. RULE_ADD    =1,
  9. RULE_DELETE =2,
  10. ACTIVITY_ADD =3,
  11. ACTIVITY_DELETE =4,
  12. ACTIVITY_UPDATE  =5
  13. };
  14. /// <summary>
  15. /// 对权限的操作
  16. /// </summary>
  17. public class AssignRights
  18. {
  19. #region 添加权限
  20. /// <summary>
  21. /// 添加权限
  22. /// </summary>
  23. /// <param name="SrcID"></param>
  24. /// <param name="ObjID"></param>
  25. /// <param name="BaseOn"></param>
  26. /// <param name="ProcID"></param>
  27. /// <returns></returns>
  28. public int AddRight(long SrcID,long ObjID,int BaseOn,int ProcID) 
  29. {
  30. int iReturn=1;
  31. UDS.Components.Database mySQL = new UDS.Components.Database();
  32. try
  33. {
  34. SqlParameter[] parameters = {
  35. mySQL.MakeInParam("@Act_ID", SqlDbType.Int, 4,ProcID),
  36. mySQL.MakeInParam("@Based_On", SqlDbType.Int, 4,BaseOn),
  37. mySQL.MakeInParam("@Src_ID", SqlDbType.Int, 4,SrcID),
  38. mySQL.MakeInParam("@Obj_ID", SqlDbType.Int, 4,ObjID)
  39. };
  40. mySQL.RunProc("sp_AddAssignRule",parameters);
  41. }
  42. catch(Exception e)
  43. {
  44. Error.Log(e.ToString());
  45. }
  46. finally
  47. {
  48. mySQL.Close();
  49. mySQL = null;
  50. }
  51. return iReturn;
  52. }
  53. #endregion
  54. #region 删除权限
  55. /// <summary>
  56. /// 删除权限
  57. /// </summary>
  58. /// <param name="RuleIDs">权限记录号</param>
  59. public int DeleteRight(string RuleIDs) 
  60. {
  61. int iReturn=1;
  62. UDS.Components.Database mySQL = new UDS.Components.Database();
  63. try
  64. {
  65. SqlParameter[] parameters = {
  66. mySQL.MakeInParam("@Rule_IDS",SqlDbType.VarChar ,300,RuleIDs)
  67. };
  68. mySQL.RunProc("sp_DeleteAssignRule",parameters);
  69. }
  70. catch(Exception e)
  71. {
  72. Error.Log(e.ToString());
  73. }
  74. finally
  75. {
  76. //mySQL.Close();
  77. //mySQL = null;
  78. }
  79. return iReturn;
  80. }
  81. #endregion
  82. #region 获得权限列表
  83. /// <summary>
  84. /// 获得权限列表
  85. /// </summary>
  86. /// <param name="UserName">用户名</param>
  87. /// <param name="ClassID">权限对象</param>
  88. /// <param name="dr">返回DataReader</param>
  89. /// <returns>整形是否成功</returns>
  90. public int GetProcessList(string UserName,long ClassID,out SqlDataReader dr) 
  91. {
  92. int iReturn=1;
  93. UDS.Components.Database mySQL = new UDS.Components.Database();
  94. SqlParameter[] parameters = {
  95. mySQL.MakeInParam("@UserName",SqlDbType.VarChar ,300,UserName),
  96. mySQL.MakeInParam("@ClassID",SqlDbType.Int,4,ClassID)
  97. };
  98. dr = null;
  99. try
  100. {
  101. mySQL.RunProc("sp_GetRightListToClass",parameters,out dr);
  102. }
  103. catch(Exception e)
  104. {
  105. Error.Log(e.ToString());
  106. }
  107. finally
  108. {
  109. //mySQL.Close();
  110. //mySQL = null;
  111. }
  112. return iReturn;
  113. }
  114. #endregion
  115. #region 获得权限列表
  116. /// <summary>
  117. /// 获得权限列表
  118. /// </summary>
  119. /// <param name="UserName">用户名</param>
  120. /// <param name="ClassID">权限对象</param>
  121. /// <param name="dr">返回DataTable</param>
  122. /// <returns>整形是否成功</returns>
  123. public int GetProcessList(string UserName,long ClassID,out DataTable dt) 
  124. {
  125. int iReturn=1;
  126. SqlDataReader dr;
  127. UDS.Components.Database mySQL = new UDS.Components.Database();
  128. SqlParameter[] parameters = {
  129. mySQL.MakeInParam("@UserName",SqlDbType.VarChar ,300,UserName),
  130. mySQL.MakeInParam("@ClassID",SqlDbType.Int,4,ClassID)
  131. };
  132. dt = null;
  133. try
  134. {
  135. mySQL.RunProc("sp_GetRightListToClass",parameters,out dr);
  136. dt = UDS.Components.Tools.ConvertDataReaderToDataTable(dr);
  137. }
  138. catch(Exception e)
  139. {
  140. Error.Log(e.ToString());
  141. }
  142. finally
  143. {
  144. //mySQL.Close();
  145. //mySQL = null;
  146. }
  147. return iReturn;
  148. }
  149. #endregion
  150. #region 判断用户对对象是否有某个权限
  151. /// <summary>
  152. /// 判断用户对对象是否有某个权限
  153. /// </summary>
  154. /// <param name="UserName">用户名</param>
  155. /// <param name="classID">被检查的对象</param>
  156. /// <param name="actID">权限ID</param>
  157. /// <returns>是否有权限</returns>
  158. public bool GetAccessPermission(string UserName,int classID,int actID)
  159. {
  160. int flag = 0;
  161. // 定义数据库操作类及DataReader
  162. Database data = new Database();
  163. // 执行存储过程,并返回SqlDataReader对象
  164. SqlParameter[] prams = {
  165.    data.MakeInParam("@Class_ID" , SqlDbType.Int, 20, classID),
  166.    data.MakeInParam("@UserName" , SqlDbType.NVarChar, 20, UserName),
  167.    data.MakeInParam("@Act_ID" , SqlDbType.Int, 20, actID),
  168.    // data.MakeInParam("@Inheit" , SqlDbType.Bit, 1, 1),
  169.    data.MakeOutParam("@ReturnValue",SqlDbType.Int,20)
  170.    };
  171. try 
  172. {
  173. data.RunProc("sp_GetAccessPermission",prams);
  174. flag = Int32.Parse(prams[3].Value.ToString());
  175. return (flag==1)?true:false;
  176. }
  177. catch(Exception ex)
  178. {
  179. Error.Log(ex.ToString());
  180. throw new Exception("获取访问权出错",ex);
  181. }
  182. finally
  183. {
  184. data    = null;
  185. }
  186. }
  187. #endregion
  188. }
  189. }