Exemple #1
0
 public UserHelper(IUserRepository userRepository, IExternalUserRepository <PlexUsers> plexUsers, IExternalUserRepository <EmbyUsers> emby, ISecurityExtensions security)
 {
     LocalUserRepository = userRepository;
     PlexUserRepository  = plexUsers;
     Security            = security;
     EmbyUserRepository  = emby;
 }
        public UserManagementModule(ISettingsService <PlexRequestSettings> pr, ICustomUserMapper m, IPlexApi plexApi, ISettingsService <PlexSettings> plex, IRepository <UserLogins> userLogins, IExternalUserRepository <PlexUsers> plexRepo
                                    , ISecurityExtensions security, IRequestService req, IAnalytics ana, ISettingsService <EmbySettings> embyService, IEmbyApi embyApi, IExternalUserRepository <EmbyUsers> embyRepo) : base("usermanagement", pr, security)
        {
#if !DEBUG
            Before += (ctx) => Security.AdminLoginRedirect(Permissions.Administrator, ctx);
#endif
            UserMapper          = m;
            PlexApi             = plexApi;
            PlexSettings        = plex;
            UserLoginsRepo      = userLogins;
            PlexUsersRepository = plexRepo;
            PlexRequestSettings = pr;
            RequestService      = req;
            Analytics           = ana;
            EmbySettings        = embyService;
            EmbyApi             = embyApi;
            EmbyRepository      = embyRepo;

            Get["/"] = x => Load();

            Get["/users", true] = async(x, ct) => await LoadUsers();

            Post["/createuser", true] = async(x, ct) => await CreateUser();

            Get["/local/{id}"]      = x => LocalDetails((Guid)x.id);
            Get["/plex/{id}", true] = async(x, ct) => await PlexDetails(x.id);

            Get["/permissions"]       = x => GetEnum <Permissions>();
            Get["/features"]          = x => GetEnum <Features>();
            Post["/updateuser", true] = async(x, ct) => await UpdateUser();

            Post["/deleteuser"] = x => DeleteUser();
        }
        public ExternalAuthenticationGrant(
            UserManager <ApplicationUser> userManager,
            IUnitOfWork <DatabaseContext> unitOfWork,
            IExternalUserRepository externalUserRepository,
            IProviderRepository providerRepository,
            IFacebookAuthProvider facebookAuthProvider,
            IGoogleAuthProvider googleAuthProvider,
            ITwitterAuthProvider twitterAuthProvider,
            ILinkedInAuthProvider linkeInAuthProvider,
            INonEmailUserProcessor nonEmailUserProcessor,
            IEmailUserProcessor emailUserProcessor
            )
        {
            _userManager            = userManager ?? throw new ArgumentNullException(nameof(userManager));
            _unitOfWork             = unitOfWork ?? throw new ArgumentNullException(nameof(unitOfWork));
            _externalUserRepository = externalUserRepository ?? throw new ArgumentNullException(nameof(externalUserRepository));
            _providerRepository     = providerRepository ?? throw new ArgumentNullException(nameof(providerRepository));
            _facebookAuthProvider   = facebookAuthProvider ?? throw new ArgumentNullException(nameof(facebookAuthProvider));
            _googleAuthProvider     = googleAuthProvider ?? throw new ArgumentNullException(nameof(googleAuthProvider));
            _twitterAuthProvider    = twitterAuthProvider ?? throw new ArgumentNullException(nameof(twitterAuthProvider));
            _linkedAuthProvider     = linkeInAuthProvider ?? throw new ArgumentNullException(nameof(linkeInAuthProvider));
            _nonEmailUserProcessor  = nonEmailUserProcessor ?? throw new ArgumentNullException(nameof(nonEmailUserProcessor));
            _emailUserProcessor     = emailUserProcessor ?? throw new ArgumentNullException(nameof(nonEmailUserProcessor));

            providers = new Dictionary <ProviderType, IExternalAuthProvider>();
            providers.Add(ProviderType.Facebook, _facebookAuthProvider);
            providers.Add(ProviderType.Google, _googleAuthProvider);
            providers.Add(ProviderType.Twitter, _twitterAuthProvider);
            providers.Add(ProviderType.LinkedIn, _linkedAuthProvider);
        }
 public NonEmailUserProcessor(
     IExternalUserRepository externalUserRepository,
     UserManager <ApplicationUser> userManager
     )
 {
     _externalUserRepository = externalUserRepository ?? throw new ArgumentNullException(nameof(externalUserRepository));
     _userManager            = userManager ?? throw new ArgumentNullException(nameof(userManager));
 }
Exemple #5
0
 public ExternalUserController(IExternalUserCacheStrategy externalUserService, IMapper mapper, ILogger <ExternalUserController> logger, IExternalUserRepository externalUserRepository, IUnitOfWork unitOfWork)
 {
     _externalUserService = externalUserService;
     _mapper = mapper;
     _logger = logger;
     _externalUserRepository = externalUserRepository;
     _unitOfWork             = unitOfWork;
 }
Exemple #6
0
 public SecurityExtensions(IUserRepository userRepository, IResourceLinker linker, IExternalUserRepository <PlexUsers> plexUsers, ISettingsService <UserManagementSettings> umSettings,
                           IExternalUserRepository <EmbyUsers> embyUsers)
 {
     UserRepository         = userRepository;
     Linker                 = linker;
     PlexUsers              = plexUsers;
     UserManagementSettings = umSettings;
     EmbyUsers              = embyUsers;
 }
 public EmbyNotificationEngine(IEmbyApi p, IRepository <UsersToNotify> repo, ISettingsService <EmbySettings> embySettings, INotificationService service, IUserHelper userHelper, IExternalUserRepository <EmbyUsers> embyUsers)
 {
     EmbyApi        = p;
     UserNotifyRepo = repo;
     Notification   = service;
     UserHelper     = userHelper;
     EmbySettings   = embySettings;
     EmbyUserRepo   = embyUsers;
 }
 public NonEmailUserProcessor(
     IExternalUserRepository externalUserRepository,
     UserManager <ApplicationUser> userManager,
     IUnitOfWork <DatabaseContext> unitOfWork
     )
 {
     _externalUserRepository = externalUserRepository ?? throw new ArgumentNullException(nameof(externalUserRepository));
     _userManager            = userManager ?? throw new ArgumentNullException(nameof(userManager));
     _unitOfWork             = unitOfWork ?? throw new ArgumentNullException(nameof(unitOfWork));
 }
Exemple #9
0
 public ExternalUserController(IExternalUserRepository repository,
                               IMapper mapper,
                               ICustomAuthentication authentication,
                               IExternalUserService externalUserService)
 {
     this.repository          = repository;
     this.mapper              = mapper;
     this.authentication      = authentication;
     this.externalUserService = externalUserService;
 }
Exemple #10
0
 public GoogleAuthProvider(
     IExternalUserRepository externalUserRepository,
     IProviderRepository providerRepository,
     HttpClient httpClient
     )
 {
     _externalUserRepository = externalUserRepository;
     _providerRepository     = providerRepository;
     _httpClient             = httpClient;
 }
Exemple #11
0
 public ExternalUserService(
     IExternalUserRepository repository,
     IMapper mapper,
     IOptions <GlobalConfig> options,
     ICustomAuthentication authentication
     )
 {
     this.repository     = repository;
     this.mapper         = mapper;
     this.globalConfig   = options.Value;
     this.authentication = authentication;
 }
Exemple #12
0
 public PlexUserChecker(IExternalUserRepository <PlexUsers> plexUsers, IPlexApi plexAPi, IJobRecord rec, ISettingsService <PlexSettings> plexSettings, ISettingsService <PlexRequestSettings> prSettings, ISettingsService <UserManagementSettings> umSettings,
                        IRequestService requestService, IUserRepository localUser)
 {
     Repo                   = plexUsers;
     JobRecord              = rec;
     PlexApi                = plexAPi;
     PlexSettings           = plexSettings;
     PlexRequestSettings    = prSettings;
     UserManagementSettings = umSettings;
     RequestService         = requestService;
     LocalUserRepository    = localUser;
 }
Exemple #13
0
 public EmbyUserChecker(IExternalUserRepository <EmbyUsers> plexUsers, IEmbyApi embyApi, IJobRecord rec, ISettingsService <EmbySettings> embyS, ISettingsService <PlexRequestSettings> prSettings, ISettingsService <UserManagementSettings> umSettings,
                        IRequestService requestService, IUserRepository localUser)
 {
     Repo                   = plexUsers;
     JobRecord              = rec;
     EmbyApi                = embyApi;
     EmbySettings           = embyS;
     PlexRequestSettings    = prSettings;
     UserManagementSettings = umSettings;
     RequestService         = requestService;
     LocalUserRepository    = localUser;
 }
Exemple #14
0
 public Version1100(IUserRepository userRepo, IRequestService requestService, ISettingsService <LogSettings> log,
                    IPlexApi plexApi, ISettingsService <PlexSettings> plexService,
                    IExternalUserRepository <PlexUsers> plexusers, ISettingsService <PlexRequestSettings> prSettings,
                    ISettingsService <UserManagementSettings> umSettings,
                    ISettingsService <ScheduledJobsSettings> sjs, IRepository <UsersToNotify> usersToNotify)
 {
     UserRepo               = userRepo;
     RequestService         = requestService;
     Log                    = log;
     PlexApi                = plexApi;
     PlexSettings           = plexService;
     PlexUsers              = plexusers;
     PlexRequestSettings    = prSettings;
     UserManagementSettings = umSettings;
     ScheduledJobSettings   = sjs;
     UserNotifyRepo         = usersToNotify;
 }
Exemple #15
0
 public CustomAuthentication(IExternalUserRepository repository, IOptions <GlobalConfig> options)
 {
     this.repository   = repository;
     this.globalConfig = options.Value;
 }
Exemple #16
0
        public UserLoginModule(ISettingsService <AuthenticationSettings> auth, IPlexApi api, ISettingsService <PlexSettings> plexSettings, ISettingsService <PlexRequestSettings> pr,
                               ISettingsService <LandingPageSettings> lp, IAnalytics a, IResourceLinker linker, IRepository <UserLogins> userLogins, IExternalUserRepository <PlexUsers> plexUsers, ICustomUserMapper custom,
                               ISecurityExtensions security, ISettingsService <UserManagementSettings> userManagementSettings, IEmbyApi embyApi, ISettingsService <EmbySettings> emby, IExternalUserRepository <EmbyUsers> embyU,
                               IUserHelper userHelper)
            : base("userlogin", pr, security)
        {
            AuthService         = auth;
            LandingPageSettings = lp;
            Analytics           = a;
            PlexApi             = api;
            PlexSettings        = plexSettings;
            Linker                 = linker;
            UserLogins             = userLogins;
            PlexUserRepository     = plexUsers;
            CustomUserMapper       = custom;
            UserManagementSettings = userManagementSettings;
            EmbySettings           = emby;
            EmbyApi                = embyApi;
            EmbyUserRepository     = embyU;
            UserHelper             = userHelper;

            Post["/", true] = async(x, ct) => await LoginUser();

            Get["/logout"] = x => Logout();

            Get["UserLoginIndex", "/", true] = async(x, ct) =>
            {
                if (Request.Query["landing"] == null)
                {
                    var s = await LandingPageSettings.GetSettingsAsync();

                    if (s.Enabled)
                    {
                        if (s.BeforeLogin) // Before login
                        {
                            if (string.IsNullOrEmpty(Username))
                            {
                                // They are not logged in
                                return
                                    (Context.GetRedirect(Linker.BuildRelativeUri(Context, "LandingPageIndex").ToString()));
                            }
                            return(Context.GetRedirect(Linker.BuildRelativeUri(Context, "SearchIndex").ToString()));
                        }

                        // After login
                        if (string.IsNullOrEmpty(Username))
                        {
                            // Not logged in yet
                            return(Context.GetRedirect(Linker.BuildRelativeUri(Context, "UserLoginIndex").ToString() + "?landing"));
                        }
                        // Send them to landing
                        var landingUrl = Linker.BuildRelativeUri(Context, "LandingPageIndex").ToString();
                        return(Context.GetRedirect(landingUrl));
                    }
                }

                if (!string.IsNullOrEmpty(Username) || IsAdmin)
                {
                    var url = Linker.BuildRelativeUri(Context, "SearchIndex").ToString();
                    return(Response.AsRedirect(url));
                }
                var settings = await AuthService.GetSettingsAsync();

                return(View["Username", settings]);
            };

            Post["/login", true] = async(x, ct) => await UsernameLogin();

            Post["/password", true] = async(x, ct) => await PasswordLogin();
        }
 public ExternalUserService(IRedisCache redisCache, IExternalUserRepository externalUserRepository, IUnitOfWork unitOfWork)
 {
     _redisCache             = redisCache;
     _externalUserRepository = externalUserRepository;
     _unitOfWork             = unitOfWork;
 }
 public ExternalUserService(IExternalUserRepository externalUserRepository)
 {
     _externalUserRepository = externalUserRepository;
 }