public void AddUserInRole(int roleId, string[] userIds) { if (roleId == 0) { throw new UIValidateException("角色ID=0"); } using (var db = DbAccess.DbFrameworkContext.Create()) { var roleHelper = new BLL.RoleHelper(db, this.svrUser); var role = roleHelper.GetRoleById(roleId); if (role == null) { throw new UIValidateException(string.Format("角色不存在或删除,ID={0}", roleId)); } foreach (string userId in userIds) { roleHelper.AddUserInRoles(role.GetRoleId(), userId.SafeConvert().ToInt32(0)); } db.SaveChanges(); } }
/// <summary> /// 保存用户角色 幂等操作 /// </summary> /// <param name="roleCodes">角色代码</param> /// <param name="userId"></param> public void SaveUserInRoleByCodes(string[] roleCodes, int userId) { if (userId == 0 || userId == 0) { throw new UIValidateException("用户ID 和角色Code不能为0"); } using (var db = DbAccess.DbFrameworkContext.Create()) { //转化为ROLEID var roleIds = db.T_QWF_Role.Where(w => roleCodes.Contains(w.RoleCode) && w.IsDelete == 0).Select(s => s.RoleId).ToList(); //删除不存在的角色 db.T_QWF_UserInRole.Where(w => !roleIds.Contains(w.RoleId) && w.UserId == userId).ToList().ForEach(item => { db.T_QWF_UserInRole.Remove(item); }); //逐个添加 foreach (var roleId in roleIds) { var roleHelper = new BLL.RoleHelper(db, this.svrUser); roleHelper.AddUserInRoles(roleId, userId); } db.SaveChanges(); } }
/// <summary> /// 新增用户角色 /// </summary> /// <param name="roleId">角色ID</param> /// <param name="userId"></param> public void AddUserInRoleById(int roleId, int userId) { if (userId == 0 || roleId == 0) { throw new UIValidateException("用户ID 和角色ID不能为0"); } using (var db = DbAccess.DbFrameworkContext.Create()) { var roleHelper = new BLL.RoleHelper(db, this.svrUser); var role = roleHelper.GetRoleById(roleId); if (role == null) { throw new UIValidateException(string.Format("角色不存在或删除,ID={0}", roleId)); } roleHelper.AddUserInRoles(role.GetRoleId(), userId); db.SaveChanges(); } }