/// <summary> /// 判断是否含有权限 /// </summary> /// <param name="roleId">角色ID号</param> /// <param name="entityId">实体ID号</param> /// <param name="operationEnum">操作方式</param> /// <returns></returns> public static bool TryCanOperation(int roleId, int entityId, EntityOperationEnum operationEnum) { using (BizDataContext context = new BizDataContext(GlobalObject.ConnString)) { var query = context.FirstOrDefault <SysDataPrivilege>(x => x.RoleId == roleId && x.EntityId == entityId && x.OperationId == (int)operationEnum); if (query == null) { return(false); } else if (query.PrivelegeLevel != (int)EntityPrivilegeEnum.NoPermission) { return(true); } } return(false); }
public bool CheckHasSharedPrivilege(int objectId, string entityName, EntityOperationEnum operationEnum) { bool flag = false; if ((operationEnum != EntityOperationEnum.Add) && (operationEnum != EntityOperationEnum.None)) { if (objectId == 0) { return(flag); } List <SysSharedPrivilege> list = this.context.Where <SysSharedPrivilege>(p => ((p.ObjectId == objectId) && (p.EntityName == entityName)) && (p.Privilege == ((int)operationEnum))).ToList <SysSharedPrivilege>(); List <IRole> userRoles = OrgProxyFactory.GetProxy(this.context).GetUserRoles(this.CurrentUser.User_ID); using (List <SysSharedPrivilege> .Enumerator enumerator = list.GetEnumerator()) { while (enumerator.MoveNext()) { Func <IRole, bool> predicate = null; SysSharedPrivilege share = enumerator.Current; int?shareType = share.ShareType; if ((shareType.GetValueOrDefault() == 0) && shareType.HasValue) { shareType = share.ShareUserId; int num = this.CurrentUser.User_ID; if ((shareType.GetValueOrDefault() == num) && shareType.HasValue) { return(true); } } else if (share.ShareType == 1) { if (predicate == null) { predicate = p => p.Role_ID == share.ShareRoleId; } if (userRoles.FirstOrDefault <IRole>(predicate) != null) { return(true); } } } } } return(flag); }
public EntityPrivilegeEnum TryCanOperation(int userId, long entityId, EntityOperationEnum operationEnum) { if (this.context.FindById <T_User>(new object[] { userId }) == null) { throw new Exception("当前用户不存在数据库中"); } IOrgProxy proxy = OrgProxyFactory.GetProxy(this.context); IEnumerable <int> currentUserRoleIds = from p in proxy.GetUserRoles(userId) select p.Role_ID; SysDataPrivilege privilege = (from x in this.context.Where <SysDataPrivilege>(x => (x.EntityId == entityId) && (x.OperationId == ((int)operationEnum))) where currentUserRoleIds.Contains <int>(!x.RoleId.HasValue ? 0 : x.RoleId.ToInt()) orderby x.PrivilegeLevel descending select x).FirstOrDefault <SysDataPrivilege>(); if (null != privilege) { return((EntityPrivilegeEnum)privilege.PrivilegeLevel.Value); } return(EntityPrivilegeEnum.NoPermission); }
public int Share(string entityName, int objectId, int ownerId, ShareType sharedType, int?sharedUserId, int?sharedRoleId, EntityOperationEnum privilege) { SysSharedPrivilege privilege2 = new SysSharedPrivilege { CreateTime = new DateTime?(DateTime.Now), OwnerId = new int?(ownerId), EntityName = entityName, ObjectId = new int?(objectId), Privilege = new int?((int)privilege), ShareRoleId = sharedRoleId, ShareUserId = sharedUserId, ShareType = new int?((int)sharedType), Id = this.context.GetNextIdentity_Int(false) }; this.context.Insert(privilege2); return(privilege2.Id); }
public static void AUD_OperationCheck(this IOperationManager opm, IEntitySchema es, object entity, EntityOperationEnum operationEnum) { }