//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); }
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)); }