Example #1
0
        //private async Task SyncUserPermissions(AppUser user, IEnumerable<Permission> permissions)
        //{
        //var currentPermissions = permissionRepository.
        //var currentPermissions=

        //var current = await GetCategoryIdsInPost(post);

        //var needRemoveIds = current.Where(i => !categoryIds.Contains(i));
        //if (!needRemoveIds.IsNullOrEmpty())
        //{
        //	var spec = new PostCategoryFilterSpecification(post, needRemoveIds.ToList());
        //	var removeItems = await postsCategoriesRepository.ListAsync(spec);

        //	postsCategoriesRepository.DeleteRange(removeItems);
        //}

        //var needToAdd = categoryIds.Where(i => !current.Contains(i));
        //if (!needToAdd.IsNullOrEmpty())
        //{
        //	foreach (var newCategoryId in needToAdd)
        //	{
        //		await postsCategoriesRepository.AddAsync(new PostCategory { PostId = post.Id, CategoryId = newCategoryId });

        //	}
        //}

        //}


        //public AppUser GetAppUser(string name)
        //{
        //	var spec = new AppUserFilterSpecification(name);
        //	var user = appUserRepository.GetSingleBySpec(spec);

        //	return user;
        //}

        public bool IsUserHasPermission(string userId, string permissionName)
        {
            if (String.IsNullOrEmpty(userId))
            {
                return(false);
            }


            var appUser = GetAppUserByUserId(userId);

            if (appUser == null)
            {
                throw new Exception("AppUser Not Found. UserId= " + userId);
            }

            var spec       = new PermissionFilterSpecification(permissionName);
            var permission = permissionRepository.GetSingleBySpec(spec);

            if (permission == null)
            {
                throw new Exception("Permission Not Found. PermissionName= " + permissionName);
            }


            var userPermissionFilter = new UserPermissionFilterSpecification(appUser, permission);
            var userPermission       = userPermissionRepository.GetSingleBySpec(userPermissionFilter);

            return(userPermission != null);
        }
Example #2
0
        public async Task <IEnumerable <Permission> > GetUserPermissionsAsync(AppUser user)
        {
            var permissionIds = await GetPermissionIdsInUser(user);

            var filter = new PermissionFilterSpecification(permissionIds);

            return(permissionRepository.List(filter).OrderByDescending(p => p.Order));
        }