/// <summary> /// 根据编辑的菜单项更新角色的访问 /// </summary> /// <param name="obj"></param> private void UpdateRole(TB_Permission obj) { // 更新默认角色可以访问的 if (obj.IsDefault == true) { var dftPermission = PermissionInstance.GetDefaultMenus(); // 查找非管理角色 var roles = RoleInstance.FindList(f => f.IsAdministrator == false && f.Delete == false); foreach (var role in roles) { var pers = role.Permission.Split(new char[] { ',' }); if (!pers.Contains(obj.id.ToString())) { RoleInstance.Update(f => f.id == role.id, act => act.Permission = dftPermission); } } } // 查找更新管理员角色的访问权限 RoleInstance.Update(f => f.IsAdministrator == true && f.Delete == false, act => act.Permission = PermissionInstance.GetAdministratorsMenus()); // 重置当前登陆者的session Account = AccountInstance.Find(f => f.id == Account.id); Session[Utility.SessionName] = Account; }
private void NewRole() { var role = new TB_Role(); role.AddTime = DateTime.Now; role.Description = txtDescription.Value.Trim(); role.IsAdministrator = cbIsAdmin.Checked; role.IsDefault = cbIsDefault.Checked; role.Name = txtName.Value.Trim(); role.Delete = false; role.Permission = PermissionInstance.GetDefaultMenus(); RoleInstance.Add(role); // 记录历史 var his = new TB_AccountHistory(); his.Account = Account.id; his.ActionId = ActionInstance.Find(f => f.Name.Equals("AddRole")).id; his.Ip = Utility.GetClientIP(this.Context); his.ObjectA = "[id=" + role.id + "] " + role.Name; SaveHistory(his); ShowNotification("./role_list.aspx", "Success: You added a new role.", true); }