/// <summary> /// 保存授权菜单 /// </summary> /// <param name="parm"></param> /// <returns></returns> public async Task <ApiResult <string> > SaveAsync(SysPermissions parm) { var res = new ApiResult <string> { statusCode = 200, data = "1" }; try { //根据角色查询菜单列表 var menuList = await Db.Queryable <SysPermissions>().Where(m => m.RoleGuid == parm.RoleGuid && m.Types == 1).ToListAsync(); //现有的 var list = new List <SysPermissions>(); foreach (var item in Utils.SplitString(parm.MenuGuid, ',')) { list.Add(new SysPermissions() { RoleGuid = parm.RoleGuid, MenuGuid = item, Types = parm.Types }); } //查询都有的 var publicMenu = menuList.Where(m => list.Exists(t => t.MenuGuid == m.MenuGuid)).ToList(); //查询数据库有,但是前端提供没有的,说明要删除这个菜单权限 var delMenuList = menuList.Where(m => !publicMenu.Exists(t => t.MenuGuid == m.MenuGuid)).Select(m => m.MenuGuid).ToList(); //查询前端提供的,数据库没有的,说明概要增加菜单权限 var AddMenuList = list.Where(m => !publicMenu.Exists(t => t.MenuGuid == m.MenuGuid)).ToList(); var result = Db.Ado.UseTran(async() => { //删除差异的 if (delMenuList.Count > 0) { await Db.Deleteable <SysPermissions>().Where(m => m.RoleGuid == parm.RoleGuid && delMenuList.Contains(m.MenuGuid) && m.Types == 1).ExecuteCommandAsync(); } //添加新的授权菜单 if (AddMenuList.Count > 0) { await Db.Insertable(AddMenuList).ExecuteCommandAsync(); } }); if (!result.IsSuccess) { res.statusCode = (int)ApiEnum.Error; res.message = "插入数据失败~"; } } catch (Exception ex) { res.statusCode = (int)ApiEnum.Error; res.message = ApiEnum.Error.GetEnumText() + ex.Message; Logger.Default.ProcessError((int)ApiEnum.Error, ex.Message); } return(res); }
/// <summary> /// 用户授权角色 /// </summary> /// <param name="parm"></param> /// <returns></returns> public async Task <ApiResult <string> > ToRoleAsync(SysPermissions parm, bool status) { var res = new ApiResult <string> { statusCode = 200, data = "1" }; try { if (status) { //授权 var dbres = await Db.Insertable <SysPermissions>(new SysPermissions() { RoleGuid = parm.RoleGuid, AdminGuid = parm.AdminGuid, MenuGuid = parm.MenuGuid, BtnFunJson = parm.BtnFunJson, Types = parm.Types }).ExecuteCommandAsync(); if (dbres == 0) { res.statusCode = (int)ApiEnum.Error; res.message = "插入数据失败~"; } } else { //取消授权 if (parm.Types == 2) { await Db.Deleteable <SysPermissions>().Where(m => m.AdminGuid == parm.AdminGuid && m.RoleGuid == parm.RoleGuid && m.Types == 2).ExecuteCommandAsync(); } if (parm.Types == 3) { //角色-菜单-按钮功能 await Db.Deleteable <SysPermissions>().Where(m => m.BtnFunJson == parm.BtnFunJson && m.RoleGuid == parm.RoleGuid && m.MenuGuid == parm.MenuGuid && m.Types == 3).ExecuteCommandAsync(); } } } catch (Exception ex) { res.statusCode = (int)ApiEnum.Error; res.message = ApiEnum.Error.GetEnumText() + ex.Message; Logger.Default.ProcessError((int)ApiEnum.Error, ex.Message); } return(res); }
public async Task <object> PutAsync(SysPermissions entity) { var json = new ResJson() { success = false }; try { bool IsSave = string.IsNullOrEmpty(entity.GUID); if (IsSave) { // 权限动作不能重复 if (await sysPermissionService.IsAnyAsync(p => p.PermissionValue.ToLower() == entity.PermissionValue.ToLower() && p.Module_GUID == entity.Module_GUID)) { json.message = "权限值不能重复"; return(json); } // Add 初始参数 entity.CreateUser = AdminUser.User.Account; entity.CreateDate = DateTime.Now; entity.GUID = Guid.NewGuid().ToString(); } // Add、Update 默认参数 entity.UpdateUser = AdminUser.User.Account; entity.UpdateDate = DateTime.Now; //保存权限 if (await sysPermissionService.SaveOrUpdateAsync(entity, IsSave)) { json.message = "操作成功!"; json.success = true; } else { json.message = "操作失败!"; } } catch (Exception ex) { json.message = "网络超时."; throw ex; } return(json); }
/// <summary> /// 用户授权角色 /// </summary> /// <param name="parm"></param> /// <returns></returns> public async Task <ApiResult <string> > ToRoleAsync(SysPermissions parm, bool status) { var res = new ApiResult <string> { statusCode = 200, data = "1" }; try { if (status) { //授权 var dbres = SysPermissionsDb.Insert(new SysPermissions() { RoleGuid = parm.RoleGuid, AdminGuid = parm.AdminGuid, MenuGuid = parm.MenuGuid, BtnFunGuid = parm.BtnFunGuid, Types = parm.Types }); if (!dbres) { res.statusCode = (int)ApiEnum.Error; res.message = "插入数据失败~"; } } else { //取消授权 if (parm.Types == 2) { SysPermissionsDb.Delete(m => m.AdminGuid == parm.AdminGuid && m.RoleGuid == parm.RoleGuid && m.Types == 2); } if (parm.Types == 3) { //角色-菜单-按钮功能 SysPermissionsDb.Delete(m => m.BtnFunGuid == parm.BtnFunGuid && m.RoleGuid == parm.RoleGuid && m.MenuGuid == parm.MenuGuid && m.Types == 3); } } } catch (Exception ex) { Db.Ado.CommitTran(); res.statusCode = (int)ApiEnum.Error; res.message = ApiEnum.Error.GetEnumText() + ex.Message; } return(await Task.Run(() => res)); }
/// <summary> /// 保存授权菜单 /// </summary> /// <param name="parm"></param> /// <returns></returns> public async Task <ApiResult <string> > SaveAsync(SysPermissions parm) { var res = new ApiResult <string> { statusCode = 200, data = "1" }; try { //开启事务 Db.Ado.BeginTran(); //先根据角色判断是否存在,如果存在,则删除 Db.Deleteable <SysPermissions>().Where(m => m.RoleGuid == parm.RoleGuid && m.Types == 1).ExecuteCommand(); var list = new List <SysPermissions>(); foreach (var item in Utils.SplitString(parm.MenuGuid, ',')) { list.Add(new SysPermissions() { RoleGuid = parm.RoleGuid, MenuGuid = item, Types = parm.Types }); } var dbres = Db.Insertable(list).ExecuteCommand(); if (dbres == 0) { res.statusCode = (int)ApiEnum.Error; res.message = "插入数据失败~"; } Db.Ado.CommitTran(); } catch (Exception ex) { Db.Ado.RollbackTran(); res.statusCode = (int)ApiEnum.Error; res.message = ApiEnum.Error.GetEnumText() + ex.Message; } return(await Task.Run(() => res)); }
public async Task <ApiResult <string> > AdminToRole([FromBody] SysPermissions parm) { return(await _roleMenu.ToRoleAsync(parm, parm.status)); }
public async Task <ApiResult <string> > SaveRoleMenu([FromBody] SysPermissions parm) { return(await _roleMenu.SaveAsync(parm)); }
public async Task <IActionResult> AdminToRole([FromBody] SysPermissions parm) { return(Ok(await _roleMenu.ToRoleAsync(parm, parm.status))); }
public async Task <IActionResult> SaveRoleMenu([FromBody] SysPermissions parm) { return(Ok(await _roleMenu.SaveAsync(parm))); }
public async Task <ApiResult <string> > AdminToRole(SysPermissions parm, bool status) { return(await _roleMenu.ToRoleAsync(parm, status)); }