/// <summary> /// 修改一个用户的角色(清除原有角色) /// </summary> /// <param name="userId"></param> /// <param name="roleIds"></param> /// <returns></returns> public JsonResult UpdateUserRoles(int userId, List <int> roleIds) { var Res = new JsonResult(); RespResult result = new RespResult(); try { if (!SysRoleAccessor.Instance.DeleteByUserId(userId)) { result.Error = AppError.ERROR_FAILED; } else { foreach (int roleId in roleIds) { SysRoleUser item = new SysRoleUser(); item.UserId = userId; item.RoleId = roleId; item.EntId = CurrentUser.EntId; SysRoleUserAccessor.Instance.Insert(item); } } result.Error = AppError.ERROR_SUCCESS; } catch (Exception e) { result.Error = AppError.ERROR_FAILED; result.ExMessage = e.ToString(); } Res.Data = result; Res.JsonRequestBehavior = JsonRequestBehavior.AllowGet; return(Res); }
/// <summary> /// 修改一个用户的角色(清除原有角色) /// </summary> /// <param name="userId"></param> /// <param name="roleIds"></param> /// <returns></returns> public RespResult UpdateUserRole(int userId, List <int> roleIds) { RespResult result = new RespResult(); try { if (!SysRoleAccessor.Instance.Delete(userId)) { result.Error = AppError.ERROR_FAILED; } else { foreach (int roleId in roleIds) { SysRoleUser item = new SysRoleUser(); item.UserId = userId; item.RoleId = roleId; SysRoleUserAccessor.Instance.Insert(item); } } result.Error = AppError.ERROR_SUCCESS; } catch (Exception e) { result.Error = AppError.ERROR_FAILED; result.ExMessage = e.ToString(); } return(result); }
/// <summary> /// 添加数据 /// <param name="es">数据实体对象数组</param> /// <returns></returns> /// </summary> public int Insert(SysRoleUser e) { MySqlConnection oc = ConnectManager.Create(); MySqlCommand _cmdInsertSysRoleUser = cmdInsertSysRoleUser.Clone() as MySqlCommand; int returnValue = 0; _cmdInsertSysRoleUser.Connection = oc; try { if (oc.State == ConnectionState.Closed) { oc.Open(); } _cmdInsertSysRoleUser.Parameters["@RoleId"].Value = e.RoleId; _cmdInsertSysRoleUser.Parameters["@UserId"].Value = e.UserId; _cmdInsertSysRoleUser.Parameters["@EntId"].Value = e.EntId; _cmdInsertSysRoleUser.ExecuteNonQuery(); returnValue = Convert.ToInt32(_cmdInsertSysRoleUser.LastInsertedId); return(returnValue); } finally { oc.Close(); oc.Dispose(); oc = null; _cmdInsertSysRoleUser.Dispose(); _cmdInsertSysRoleUser = null; } }
/// <summary> /// 添加数据 /// <param name="es">数据实体对象数组</param> /// <returns></returns> /// </summary> public bool Insert(SysRoleUser e) { MySqlConnection oc = ConnectManager.Create(); MySqlCommand _cmdInsertSysRoleUser = cmdInsertSysRoleUser.Clone() as MySqlCommand; bool returnValue = false; _cmdInsertSysRoleUser.Connection = oc; try { if (oc.State == ConnectionState.Closed) { oc.Open(); } //_cmdInsertSysRoleUser.Parameters["@SysRoleUserId"].Value = e.SysRoleUserId; _cmdInsertSysRoleUser.Parameters["@RoleId"].Value = e.RoleId; _cmdInsertSysRoleUser.Parameters["@UserId"].Value = e.UserId; _cmdInsertSysRoleUser.ExecuteNonQuery(); return(returnValue); } finally { oc.Close(); oc.Dispose(); oc = null; _cmdInsertSysRoleUser.Dispose(); _cmdInsertSysRoleUser = null; } }
/// <summary> /// 获取指定记录 /// <param name="id">Id值</param> /// </summary> public SysRoleUser Get(int SysRoleUserId) { SysRoleUser returnValue = null; MySqlConnection oc = ConnectManager.Create(); MySqlCommand _cmdGetSysRoleUser = cmdGetSysRoleUser.Clone() as MySqlCommand; _cmdGetSysRoleUser.Connection = oc; try { _cmdGetSysRoleUser.Parameters["@SysRoleUserId"].Value = SysRoleUserId; if (oc.State == ConnectionState.Closed) { oc.Open(); } MySqlDataReader reader = _cmdGetSysRoleUser.ExecuteReader(); if (reader.HasRows) { reader.Read(); returnValue = new SysRoleUser().BuildSampleEntity(reader); } } finally { oc.Close(); oc.Dispose(); oc = null; _cmdGetSysRoleUser.Dispose(); _cmdGetSysRoleUser = null; GC.Collect(); } return(returnValue); }
/// <summary> /// 修改指定的数据 /// <param name="e">修改后的数据实体对象</param> /// <para>数据对应的主键必须在实例中设置</para> /// </summary> public void Update(SysRoleUser e) { MySqlConnection oc = ConnectManager.Create(); MySqlCommand _cmdUpdateSysRoleUser = cmdUpdateSysRoleUser.Clone() as MySqlCommand; _cmdUpdateSysRoleUser.Connection = oc; try { if (oc.State == ConnectionState.Closed) { oc.Open(); } _cmdUpdateSysRoleUser.Parameters["@SysRoleUserId"].Value = e.SysRoleUserId; _cmdUpdateSysRoleUser.Parameters["@RoleId"].Value = e.RoleId; _cmdUpdateSysRoleUser.Parameters["@UserId"].Value = e.UserId; _cmdUpdateSysRoleUser.ExecuteNonQuery(); } finally { oc.Close(); oc.Dispose(); oc = null; _cmdUpdateSysRoleUser.Dispose(); _cmdUpdateSysRoleUser = null; GC.Collect(); } }
/// <summary> /// 初始化种子数据,添加超级管理组和超级管理员,默认账号:admin 111111 /// </summary> /// <returns></returns> public async Task InitSeedDataAsync() { var defaultRole = await _sysRoleRepository.GetModelAsync(p => p.IsSuper); if (defaultRole != null) { throw new Exception("默认管理员组已存在"); } var defaultUser = await _sysUserRepository.GetCountAsync(p => p.UserId > 0); if (defaultUser != 0) { throw new Exception("已有用户"); } using (var uow = _fsq.CreateUnitOfWork()) { _sysRoleRepository.UnitOfWork = uow; _sysUserRepository.UnitOfWork = uow; var userRoleRepo = uow.GetRepository <SysRoleUser>(); userRoleRepo.UnitOfWork = uow; var role = new SysRole() { IsSuper = true, RoleName = "超级管理员组", CreatedUserId = 0, CreatedUserName = "******", UpdatedUserId = 0, UpdatedUserName = "******", }; await _sysRoleRepository.InsertAsync(role); var user = new SysUser() { LoginName = "admin", Password = "******".EncryptMD5Encode(), Status = true, UserName = "******", CreatedUserId = 0, CreatedUserName = "******", UpdatedUserId = 0, UpdatedUserName = "******", }; await _sysUserRepository.InsertAsync(user); var roleUser = new SysRoleUser() { RoleId = role.RoleId, UserId = user.UserId, }; await userRoleRepo.InsertAsync(roleUser); uow.Commit(); } }
/// <summary> /// 根据关键字段的值获取记录 /// </summary> /// <param name="Id">关键字段的值</param> /// <returns>符合查询条件的记录</returns> public SysRoleUser GetSysRoleUserById(string Id) { using (ISysRoleUserBLL SysRoleUserBLL = BLLContainer.Resolve <ISysRoleUserBLL>()) { SysRoleUser model = SysRoleUserBLL.GetFirstOrDefault(Id); return(model); } }
/// <summary> /// 修改 /// </summary> /// <param name="mSysRoleUser">模型</param> /// <returns>是否成功</returns> public bool UpdateSysRoleUser(SysRoleUser mSysRoleUser) { if (mSysRoleUser == null) { return(false); } using (ISysRoleUserBLL SysRoleUserBLL = BLLContainer.Resolve <ISysRoleUserBLL>()) { return(SysRoleUserBLL.Update(mSysRoleUser)); } }
/// <summary> /// 按照关键字段删除 /// </summary> /// <param name="Id">关键字段</param> /// <returns>是否成功</returns> public bool DelSysRoleUser(string Id) { using (ISysRoleUserBLL SysRoleUserBLL = BLLContainer.Resolve <ISysRoleUserBLL>()) { try { SysRoleUser item = SysRoleUserBLL.GetFirstOrDefault(Id); return(SysRoleUserBLL.Delete(item)); } catch { return(false); } } }
/// <summary> /// 按照关键字段删除 /// </summary> /// <param name="Ids">关键字段数组</param> /// <returns>是否成功</returns> public bool DelSysRoleUsers(string[] Ids) { using (ISysRoleUserBLL SysRoleUserBLL = BLLContainer.Resolve <ISysRoleUserBLL>()) { try { List <SysRoleUser> entitys = new List <SysRoleUser>(); foreach (string id in Ids) { SysRoleUser item = SysRoleUserBLL.GetFirstOrDefault(id); entitys.Add(item); } return(SysRoleUserBLL.Delete(entitys)); } catch { return(false); } } }
/// <summary> /// 为角色添加用户 /// </summary> /// <param name="roleId"></param> /// <param name="userIds"></param> /// <returns></returns> public RespResult AddUsersToRole(int roleId, List <int> userIds) { RespResult result = new RespResult(); try { foreach (int userId in userIds) { SysRoleUser item = new SysRoleUser(); item.UserId = userId; item.RoleId = roleId; SysRoleUserAccessor.Instance.Insert(item); } result.Error = AppError.ERROR_SUCCESS; } catch (Exception e) { result.Error = AppError.ERROR_FAILED; result.ExMessage = e.ToString(); } return(result); }
/// <summary> /// 保存实体更改 /// </summary> /// <param name="userId"></param> /// <param name="roleIds"></param> /// <returns></returns> public bool SaveUserRoll(string userId, string[] roleIds) { var opera = UserHelper.GetOperator(); var userid = opera.Id; var list = fsql.Select <SysRoleUser>().Where(p => p.UserId == userid).ToList();// GetList(userId); var existRoleIds = list.Select(x => x.RoleId).ToList(); roleIds = roleIds ?? new string[0]; var toDeleteList = existRoleIds.Except(roleIds).ToList(); var toCreateList = roleIds.Except(existRoleIds).ToList(); if (toDeleteList.Count > 0) { var count = fsql.Select <SysRoleUser>().Where(p => p.UserId == userId && toDeleteList.Contains(p.RoleId)).ToDelete().ExecuteAffrows(); //var sql = new StringBuilder("delete from sys_user_role where user_id='" + userId + "' and role_id in ('" + string.Join("','", toDeleteList) + "')"); //fsql.Select<OneValue>().WithSql(sql.ToString()).First(); } foreach (var item in toCreateList) { var entity = new SysRoleUser() { RoleId = item, UserId = userId, CreateBy = userid }; Ser_SysRoleUser.InsertOrUpdateExt(entity); } //清除用户对应的权限缓冲 var userName = fsql.Select <SysUser>().Where(p => p.Id == userId).First().LoginName; UserHelper.DeleteUserAuthRedis(userName); return(true); }
//初始化企业权限(后期改为异步) private void initEntRole(int entId) { try { if (roleXmlModel == null) { string filePath = System.AppDomain.CurrentDomain.BaseDirectory + "Config/Role.xml"; if (System.IO.File.Exists(filePath) == false) { throw new FileNotFoundException("默认权限模板配置文件没有找到", filePath); } string roleConfig = System.IO.File.ReadAllText(filePath); roleXmlModel = new XmlDocument(); roleXmlModel.LoadXml(roleConfig); } int newadminId = 0; foreach (XmlNode rolenode in roleXmlModel.SelectNodes("//role")) { string rolenodename = rolenode.Attributes["name"].Value; //添加企业角色 SysRole erole = new SysRole(); erole.EntId = entId; erole.FatherId = 0; erole.RoleName = rolenodename; int eroleid = SysRoleAccessor.Instance.Insert(erole); if (rolenodename == "管理员") { newadminId = eroleid; } foreach (XmlNode fathernode in rolenode.ChildNodes) { string fnname = fathernode.Attributes["name"].Value; string fnid = fathernode.Attributes["id"].Value; //添加企业角色权限 SysRoleFunction frf = new SysRoleFunction(); frf.EntId = entId; frf.RoleId = eroleid; frf.FunctionId = Convert.ToInt32(fnid); SysRoleFunctionAccessor.Instance.Insert(frf); foreach (XmlNode sonnode in fathernode.ChildNodes) { string sname = sonnode.Attributes["name"].Value; string sid = sonnode.Attributes["id"].Value; SysRoleFunction srf = new SysRoleFunction(); srf.EntId = entId; srf.RoleId = eroleid; srf.FunctionId = Convert.ToInt32(sid); SysRoleFunctionAccessor.Instance.Insert(srf); } } } SysRoleUser ru = new SysRoleUser(); ru.EntId = entId; ru.UserId = entId; ru.RoleId = newadminId; SysRoleUserAccessor.Instance.Insert(ru); } catch { throw new InvalidDataException("权限模板配置文件内容不正确"); } }
//根据用户ID修改用户权限 public JsonResult UpdateUserRole(int userId, int roleId) { var Res = new JsonResult(); RespResult result = new RespResult(); try { if (CacheManagerFactory.GetMemoryManager().Contains(token)) { if (!CheckUserFunction(26)) { result.Error = AppError.ERROR_PERMISSION_FORBID; Res.Data = result; Res.JsonRequestBehavior = JsonRequestBehavior.AllowGet; return(Res); } //如果是管理员则不能修改角色 List <SysRole> list = new List <SysRole>(); list = SysRoleAccessor.Instance.SearchSysRolesByUserId(userId); foreach (SysRole sr in list) { if (sr.RoleName == "管理员") { result.Error = AppError.ERROR_PERMISSION_FORBID; Res.Data = result; Res.JsonRequestBehavior = JsonRequestBehavior.AllowGet; return(Res); } } if (roleId == -1)//移除全部权限 { SysRoleUserAccessor.Instance.Delete(userId, CurrentUser.EntId); AddUserTimeMachine(userId, 3, 0); } else { if (SysRoleUserAccessor.Instance.CheckExist(userId, CurrentUser.EntId)) { SysRoleUserAccessor.Instance.UpdateUserRole(userId, roleId); } else { SysRoleUser item = new SysRoleUser(); item.UserId = userId; item.RoleId = roleId; item.EntId = CurrentUser.EntId; SysRoleUserAccessor.Instance.Insert(item); } AddUserTimeMachine(userId, 4, roleId); } result.Error = AppError.ERROR_SUCCESS; } else { result.Error = AppError.ERROR_PERSON_NOT_LOGIN; } } catch (Exception e) { result.Error = AppError.ERROR_FAILED; result.ExMessage = e.ToString(); } Res.Data = result; Res.JsonRequestBehavior = JsonRequestBehavior.AllowGet; return(Res); }