public static RoleCollection GetRoleCollection(Guid groupId) { //string sql = "select * from Roles where GroupId=@groupId order by RoleName"; //SqlParameter[] Parameters = new SqlParameter[1]; //Parameters[0] = new SqlParameter("@groupId", SqlDbType.UniqueIdentifier); //Parameters[0].Value = groupId; RoleCollection rc = new RoleCollection(); //using (DataTable table = SqlHelper.ExecuteDataset(SqlHelper.SqlCon_QJVRMS, CommandType.Text, sql, Parameters).Tables[0]) //{ // foreach (DataRow row in table.Rows) // { // Guid roleId = new Guid(row["RoleId"].ToString()); // // new Guid(row["GroupId"].ToString()); // string roleName = row["roleName"].ToString(); // string descr = row["description"].ToString(); // Role role = new Role(roleId, groupId, roleName, descr); // rc.Add(role); // } //} QJVRMS.Business.RoleWS.RoleService rs = new QJVRMS.Business.RoleWS.RoleService(); using (DataTable dt = rs.GetRolesByGroupId(groupId)) { foreach (DataRow row in dt.Rows) { Guid roleId = new Guid(row["RoleId"].ToString()); string roleName = row["roleName"].ToString(); string descr = row["description"].ToString(); Role role = new Role(roleId, groupId, roleName, descr); rc.Add(role); } } return rc; }
//设定权限 protected void btnSetRoleFun_Click(object sender, EventArgs e) { List<ObjectRule> rules = new List<ObjectRule>(100); Role role = null; SecurityObject secObj = null; Guid objId = new Guid(this.hiCurrentCataId.Value); secObj = new SecurityObject(objId, SecurityObjectType.Items); ArrayList opers = new ArrayList(100); foreach (GridViewRow row in roleGroupList.Rows) { Guid roleId = new Guid(roleGroupList.DataKeys[row.RowIndex].Value.ToString()); role = new Role(); role.RoleId = roleId; opers.Add(role); ObjectRule newRule; CheckBox chkRead = row.FindControl("funReadChk") as CheckBox; newRule = new ObjectRule(secObj, role, OperatorMethod.Deny); rules.Add(newRule); newRule.IsValidate = chkRead.Checked; CheckBox chkWrite = row.FindControl("funUpChk") as CheckBox; newRule = new ObjectRule(secObj, role, OperatorMethod.Write); rules.Add(newRule); newRule.IsValidate = chkWrite.Checked; CheckBox chkEdit = row.FindControl("funEditChk") as CheckBox; newRule = new ObjectRule(secObj, role, OperatorMethod.Modify); rules.Add(newRule); newRule.IsValidate = chkEdit.Checked; CheckBox chkDownload = row.FindControl("funDownChk") as CheckBox; newRule = new ObjectRule(secObj, role, OperatorMethod.Download); rules.Add(newRule); newRule.IsValidate = chkDownload.Checked; //针对当前类的子类设置权限(子类应自动继承父类权限) DataTable childCatalog = Catalog.GetCatalogTableByParentId(objId); foreach (DataRow cata in childCatalog.Rows) { SecurityObject cSecObj = new SecurityObject(new Guid(cata["catalogId"].ToString()), SecurityObjectType.Items); ObjectRule cOrRead = new ObjectRule(cSecObj, role, OperatorMethod.Deny); cOrRead.IsValidate = chkRead.Checked; ObjectRule cOrWrite = new ObjectRule(cSecObj, role, OperatorMethod.Write); cOrWrite.IsValidate = chkWrite.Checked; ObjectRule cOrEdit = new ObjectRule(cSecObj, role, OperatorMethod.Modify); cOrEdit.IsValidate = chkEdit.Checked; ObjectRule cOrDown = new ObjectRule(cSecObj, role, OperatorMethod.Download); cOrDown.IsValidate = chkDownload.Checked; rules.Add(cOrRead); rules.Add(cOrWrite); rules.Add(cOrEdit); rules.Add(cOrDown); } } if (ObjectRule.SetRules(rules, secObj, opers)) { ShowMessage("角色权限设置成功"); } else { ShowMessage("角色权限设置失败"); } }
/// <summary> /// 删除用户组 /// /// I:删除用户组用户 /// II:删除受控对象 /// </summary> /// <param name="roleId"></param> /// <returns></returns> //public static bool Deleteuserda(Guid userId) //{ // string sql = "Begin Tran Begin try " // + " Delete from Users_inRoles where UserId=@userId" // + " Delete from Users where UserId=@userId" // + " Commit End Try" // + " Begin Catch IF @@TRANCOUNT > 0 Rollback " // + " DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int " // + " SELECT @ErrMsg = ERROR_MESSAGE()," // + " @ErrSeverity = ERROR_SEVERITY() " // + " RAISERROR(@ErrMsg, @ErrSeverity, 1)" // + " End Catch"; // SqlParameter[] Parameters = new SqlParameter[1]; // Parameters[0] = new SqlParameter("@userId", SqlDbType.UniqueIdentifier); // Parameters[0].Value = userId; // try // { // SqlHelper.ExecuteNonQuery(SqlHelper.SqlCon_QJVRMS, CommandType.Text, sql, Parameters); // return true; // } // catch (Exception ex) // { // // QJVRMS.Common.LogWriter.WriteExceptionLog(ex, true); // return false; // } //} public static IRole NewRole(Guid groupId, string roleName, string description, SecurityObject[] secObj, OperatorMethod method) { //SqlParameter[] Parameters = new SqlParameter[4]; //Parameters[0] = new SqlParameter("@RoleName", SqlDbType.NVarChar); //Parameters[1] = new SqlParameter("@description", SqlDbType.NVarChar); //Parameters[2] = new SqlParameter("@groupId", SqlDbType.UniqueIdentifier); //Parameters[3] = new SqlParameter("@roleId", SqlDbType.UniqueIdentifier); //Parameters[3].Direction = ParameterDirection.Output; //Parameters[0].Value = roleName; //Parameters[1].Value = description; //Parameters[2].Value = groupId; //SqlTransaction trans = null; Role role = null; // using (SqlConnection con = new SqlConnection(SqlHelper.Con_QJVRMS)) // { // con.Open(); // trans = con.BeginTransaction(); // try // { // SqlHelper.ExecuteNonQuery(trans, CommandType.StoredProcedure, "dbo.Role_CreateRole", Parameters); // Guid roleId = new Guid(Parameters[3].Value.ToString()); // string formatcreateSql = @"insert into accessControlList (ObjectId,ObjectType,OperatorId,OperatorMethod) // values ('{0}',{1},'{2}',{3})"; // string sql = string.Empty; // foreach (ISecurityObject secobj in secObj) // { // string secObjId = secobj.ObjectId.ToString(); // int oType = (int)secobj.ObjectType; // int methodIndex = (int)method; // sql += string.Format(formatcreateSql, secObjId, oType.ToString(), roleId.ToString(), methodIndex.ToString()); // } // if( sql != string.Empty ) // SqlHelper.ExecuteNonQuery(trans, CommandType.Text, sql); // role = new Role(roleId, groupId, roleName, description); // trans.Commit(); // } // catch (Exception e) // { // trans.Rollback(); // // QJVRMS.Common.LogWriter.WriteExceptionLog(e, true); // throw e; // } // } QJVRMS.Common.SerializeObjectFactory sof = new QJVRMS.Common.SerializeObjectFactory(); string objStr = sof.SerializeToBase64(secObj); QJVRMS.Business.RoleWS.RoleService rs = new QJVRMS.Business.RoleWS.RoleService(); Guid roleId = rs.NewRole(groupId, roleName, description, objStr, (int)method); role = new Role(roleId, groupId, roleName, description); return role; }