Ejemplo n.º 1
0
        public async Task <Either <ActionResult, Unit> > RemoveAllUserContributorPermissionsForPublication(
            Guid publicationId, Guid userId)
        {
            return(await _persistenceHelper
                   .CheckEntityExists <Publication>(publicationId,
                                                    query =>
                                                    query.Include(p => p.Releases))
                   .OnSuccessDo(publication => _userService
                                .CheckCanUpdateReleaseRole(publication, Contributor))
                   .OnSuccessVoid(async publication =>
            {
                var user = _contentDbContext
                           .Users
                           .AsQueryable()
                           .Single(u => u.Id == userId);

                await _userReleaseRoleRepository.RemoveAllForPublication(
                    userId: userId,
                    publication: publication,
                    role: Contributor,
                    deletedById: _userService.GetUserId());

                await _userReleaseInviteRepository.RemoveByPublication(
                    publication: publication,
                    email: user.Email,
                    role: Contributor);
            }));
        }