コード例 #1
0
 public IQueryable <IProject> Get(int userId, Permission?permission = null)
 {
     return(_projectsDataAccessor.Get().Where(x => x.CreatorId == userId ||
                                              _permissionsDataAccessor.Get().Any(y =>
                                                                                 y.ProjectId == x.Id && y.UserId == userId &&
                                                                                 (!permission.HasValue || permission == y.Permission ||
                                                                                  y.Permission == Permission.Admin))));
 }
コード例 #2
0
        public async Task AddAsync(int userId, IFeatureInfo info)
        {
            if (await _projectsDataAccessor.Get().AnyAsync(x => x.Id == info.ProjectId && x.CreatorId == userId) ||
                await _permissionsDataAccessor.HasPermission(userId, info.ProjectId, Permission.CreateFeature))
            {
                await _featuresDataAccessor.AddAsync(info);

                return;
            }

            throw new NoPermissionsForOperationException(ErrorMessages.NoPermissionsForOperation);
        }