public PreReleaseUserService(ContentDbContext context,
                              UsersAndRolesDbContext usersAndRolesDbContext,
                              IConfiguration configuration,
                              IEmailService emailService,
                              IPreReleaseService preReleaseService,
                              IPersistenceHelper <ContentDbContext> persistenceHelper,
                              IUserService userService,
                              IUserRepository userRepository,
                              IUserInviteRepository userInviteRepository,
                              IUserReleaseRoleRepository userReleaseRoleRepository,
                              IUserReleaseInviteRepository userReleaseInviteRepository,
                              IHttpContextAccessor httpContextAccessor)
 {
     _context = context;
     _usersAndRolesDbContext      = usersAndRolesDbContext;
     _configuration               = configuration;
     _emailService                = emailService;
     _preReleaseService           = preReleaseService;
     _persistenceHelper           = persistenceHelper;
     _userService                 = userService;
     _userRepository              = userRepository;
     _userInviteRepository        = userInviteRepository;
     _userReleaseRoleRepository   = userReleaseRoleRepository;
     _userReleaseInviteRepository = userReleaseInviteRepository;
     _httpContextAccessor         = httpContextAccessor;
 }
 public ViewSpecificReleaseAuthorizationHandler(
     ContentDbContext context, IPreReleaseService preReleaseService) : base(
         new CanSeeAllReleasesAuthorizationHandler(),
         new HasUnrestrictedViewerRoleOnReleaseAuthorizationHandler(context),
         new HasPreReleaseRoleWithinAccessWindowAuthorizationHandler(context, preReleaseService))
 {
 }
 public PermissionsController(
     IUserService userService,
     IPersistenceHelper <ContentDbContext> persistenceHelper,
     IPreReleaseService preReleaseService)
 {
     _userService       = userService;
     _persistenceHelper = persistenceHelper;
     _preReleaseService = preReleaseService;
 }
 public SubjectBelongsToViewableReleaseAuthorizationHandler(
     ContentDbContext contentDbContext,
     StatisticsDbContext statisticsDbContext,
     IPreReleaseService preReleaseService)
 {
     _contentDbContext    = contentDbContext;
     _statisticsDbContext = statisticsDbContext;
     _preReleaseService   = preReleaseService;
 }
 public ViewSubjectDataAuthorizationHandler(
     ContentDbContext contentDbContext,
     StatisticsDbContext statisticsDbContext,
     IPreReleaseService preReleaseService) : base(
         new ViewSubjectDataForPublishedReleasesAuthorizationHandler(statisticsDbContext),
         new SubjectBelongsToViewableReleaseAuthorizationHandler(contentDbContext, statisticsDbContext, preReleaseService)
         )
 {
 }
예제 #6
0
 public PermissionsController(IPersistenceHelper <ContentDbContext> persistenceHelper,
                              IReleaseFileRepository releaseFileRepository,
                              IUserService userService,
                              IPreReleaseService preReleaseService)
 {
     _persistenceHelper     = persistenceHelper;
     _releaseFileRepository = releaseFileRepository;
     _userService           = userService;
     _preReleaseService     = preReleaseService;
 }
 public ViewSpecificReleaseAuthorizationHandler(
     IUserPublicationRoleRepository userPublicationRoleRepository,
     IUserReleaseRoleRepository userReleaseRoleRepository,
     IPreReleaseService preReleaseService) : base(
         new CanSeeAllReleasesAuthorizationHandler(),
         new HasOwnerRoleOnParentPublicationAuthorizationHandler(userPublicationRoleRepository),
         new HasUnrestrictedViewerRoleOnReleaseAuthorizationHandler(userReleaseRoleRepository),
         new HasPreReleaseRoleWithinAccessWindowAuthorizationHandler(userReleaseRoleRepository, preReleaseService))
 {
 }
예제 #8
0
 public ViewSpecificMethodologyAuthorizationHandler(
     ContentDbContext contentDbContext,
     IMethodologyRepository methodologyRepository,
     IUserPublicationRoleRepository userPublicationRoleRepository,
     IUserReleaseRoleRepository userReleaseRoleRepository,
     IPreReleaseService preReleaseService)
 {
     _contentDbContext              = contentDbContext;
     _methodologyRepository         = methodologyRepository;
     _userPublicationRoleRepository = userPublicationRoleRepository;
     _userReleaseRoleRepository     = userReleaseRoleRepository;
     _preReleaseService             = preReleaseService;
 }
            public HasPreReleaseRoleWithinAccessWindowAuthorizationHandler(
                ContentDbContext context, IPreReleaseService preReleaseService)
                : base(context, ctx =>
            {
                if (!ContainsPreReleaseViewerRole(ctx.Roles))
                {
                    return(false);
                }

                var windowStatus = preReleaseService.GetPreReleaseWindowStatus(ctx.Release, UtcNow);
                return(windowStatus.Access == PreReleaseAccess.Within);
            })
            {}
예제 #10
0
 public SubjectBelongsToViewableReleaseAuthorizationHandler(
     ContentDbContext contentDbContext,
     StatisticsDbContext statisticsDbContext,
     IPreReleaseService preReleaseService,
     IUserPublicationRoleRepository userPublicationRoleRepository,
     IUserReleaseRoleRepository userReleaseRoleRepository)
 {
     _contentDbContext              = contentDbContext;
     _statisticsDbContext           = statisticsDbContext;
     _preReleaseService             = preReleaseService;
     _userPublicationRoleRepository = userPublicationRoleRepository;
     _userReleaseRoleRepository     = userReleaseRoleRepository;
 }
            public HasPreReleaseRoleWithinAccessWindowAuthorizationHandler(
                IUserReleaseRoleRepository userReleaseRoleRepository, IPreReleaseService preReleaseService)
                : base(userReleaseRoleRepository, context =>
            {
                if (!ContainsPreReleaseViewerRole(context.Roles))
                {
                    return(false);
                }

                var windowStatus = preReleaseService.GetPreReleaseWindowStatus(context.Release, UtcNow);
                return(windowStatus.Access == PreReleaseAccess.Within);
            })
            {
            }
예제 #12
0
 public ViewSubjectDataAuthorizationHandler(
     ContentDbContext contentDbContext,
     StatisticsDbContext statisticsDbContext,
     IPreReleaseService preReleaseService,
     IUserPublicationRoleRepository userPublicationRoleRepository,
     IUserReleaseRoleRepository userReleaseRoleRepository) : base(
         new ViewSubjectDataForPublishedReleasesAuthorizationHandler(statisticsDbContext),
         new SubjectBelongsToViewableReleaseAuthorizationHandler(contentDbContext,
                                                                 statisticsDbContext,
                                                                 preReleaseService,
                                                                 userPublicationRoleRepository,
                                                                 userReleaseRoleRepository))
 {
 }
예제 #13
0
 private PreReleaseUserService SetupPreReleaseUserService(
     ContentDbContext context,
     UsersAndRolesDbContext usersAndRolesDbContext = null,
     IConfiguration configuration         = null,
     IEmailService emailService           = null,
     IPreReleaseService preReleaseService = null,
     IPersistenceHelper <ContentDbContext> persistenceHelper = null,
     IUserService userService = null,
     IHttpContextAccessor httpContextAccessor = null)
 {
     return(new PreReleaseUserService(
                context,
                usersAndRolesDbContext,
                configuration ?? DefaultConfigurationMock().Object,
                emailService ?? new Mock <IEmailService>().Object,
                preReleaseService ?? new Mock <IPreReleaseService>().Object,
                persistenceHelper ?? new PersistenceHelper <ContentDbContext>(context),
                userService ?? MockUtils.AlwaysTrueUserService().Object,
                httpContextAccessor ?? DefaultHttpContextAccessorMock().Object
                ));
 }