RolePermissionManage.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Central.Control.Domain;
  6. using MES.Production.Service.IService;
  7. namespace MES.Production.Service.ServiceImp
  8. {
  9. /// <summary>
  10. /// Service层角色授权关系接口
  11. /// add 作者: 季健国 QQ:181589805 by 2016-05-22
  12. /// </summary>
  13. public class RolePermissionManage : RepositoryBase<SYS_ROLE_PERMISSION>,IService.IRolePermissionManage
  14. {
  15. IPermissionManage PermissionManage { get; set; }
  16. /// <summary>
  17. /// 保存角色权限
  18. /// </summary>
  19. public bool SetRolePermission(int roleId, string newper, string sysId)
  20. {
  21. try
  22. {
  23. //1、获取当前系统的模块ID集合
  24. var permissionId = this.PermissionManage.GetPermissionIdBySysId(sysId).Cast<int>().ToList();
  25. //2、获取角色权限,是否存在,存在即删除,只删除当前选择的系统
  26. if (this.IsExist(p => p.ROLEID == roleId && permissionId.Any(e => e == p.PERMISSIONID)))
  27. {
  28. //3、删除角色权限
  29. this.Delete(p => p.ROLEID == roleId && permissionId.Any(e => e == p.PERMISSIONID));
  30. }
  31. //4、添加角色权限
  32. if (string.IsNullOrEmpty(newper)) return true;
  33. //Trim 保证数据安全
  34. var str = newper.Trim(',').Split(',');
  35. foreach (var per in str.Select(t => new SYS_ROLE_PERMISSION()
  36. {
  37. PERMISSIONID = int.Parse(t),
  38. ROLEID = roleId
  39. }))
  40. {
  41. this.dbSet.Add(per);
  42. }
  43. //5、Save
  44. return this.Context.SaveChanges() > 0;
  45. }
  46. catch (Exception e) { throw e.InnerException; }
  47. }
  48. }
  49. }