Example #1
0
 /// <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);
 }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #5
0
 public static void AUD_OperationCheck(this IOperationManager opm, IEntitySchema es, object entity, EntityOperationEnum operationEnum)
 {
 }