Пример #1
0
        public UserManagementModule(ISettingsService <PlexRequestSettings> pr, ICustomUserMapper m, IPlexApi plexApi, ISettingsService <PlexSettings> plex, IRepository <UserLogins> userLogins, IPlexUserRepository plexRepo
                                    , ISecurityExtensions security, IRequestService req, IAnalytics ana) : 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;

            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();
        }
Пример #2
0
 public SecurityExtensions(IUserRepository userRepository, IResourceLinker linker, IPlexUserRepository plexUsers, ISettingsService <UserManagementSettings> umSettings)
 {
     UserRepository         = userRepository;
     Linker                 = linker;
     PlexUsers              = plexUsers;
     UserManagementSettings = umSettings;
 }
Пример #3
0
 public PlexUserChecker(IPlexUserRepository 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;
 }
Пример #4
0
 public Version1100(IUserRepository userRepo, IRequestService requestService, ISettingsService <LogSettings> log,
                    IPlexApi plexApi, ISettingsService <PlexSettings> plexService,
                    IPlexUserRepository 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;
 }
Пример #5
0
 public UserHelper(IUserRepository userRepository, IPlexUserRepository plexUsers, ISecurityExtensions security)
 {
     LocalUserRepository = userRepository;
     PlexUserRepository  = plexUsers;
     Security            = security;
 }
Пример #6
0
        public UserLoginModule(ISettingsService <AuthenticationSettings> auth, IPlexApi api, ISettingsService <PlexSettings> plexSettings, ISettingsService <PlexRequestSettings> pr,
                               ISettingsService <LandingPageSettings> lp, IAnalytics a, IResourceLinker linker, IRepository <UserLogins> userLogins, IPlexUserRepository plexUsers, ICustomUserMapper custom,
                               ISecurityExtensions security, ISettingsService <UserManagementSettings> userManagementSettings)
            : base("userlogin", pr, security)
        {
            AuthService         = auth;
            LandingPageSettings = lp;
            Analytics           = a;
            Api                    = api;
            PlexSettings           = plexSettings;
            Linker                 = linker;
            UserLogins             = userLogins;
            PlexUserRepository     = plexUsers;
            CustomUserMapper       = custom;
            UserManagementSettings = userManagementSettings;

            //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["Index", settings];
            //};

            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();
        }
Пример #7
0
 public SecurityExtensions(IUserRepository userRepository, IResourceLinker linker, IPlexUserRepository plexUsers)
 {
     UserRepository = userRepository;
     Linker         = linker;
     PlexUsers      = plexUsers;
 }