public void UnShare(int id)
        {
            SysSharedPrivilege privilege = this.context.FindById <SysSharedPrivilege>(new object[] { id });

            if (privilege != null)
            {
                this.context.Delete(privilege);
            }
        }
        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);
        }
Beispiel #3
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);
        }