Example #1
0
        public static string ValidateUser(string username, string password, string device)
        {
            //in case of login before database have been loaded
            if (Users.Count == 0)
            {
                UserDatabase.Refresh();
            }

            var userRecord = Users.FirstOrDefault(u => u.Item2.ToLower() == username.ToLower() && u.Item3 == password);

            if (userRecord == null)
            {
                //if user is invalid try to refresh cache so we add any newly added users to cache just in case
                UserDatabase.Refresh();
                return(null);
            }

            int    uid    = new Entities.JMMUser(username).JMMUserID;
            string apiKey = "";

            try
            {
                var apiKeys = ActiveApiKeys.First(u => u.Item1 == uid && u.Item2 == device.ToLower());
                apiKey = apiKeys.Item3;
            }
            catch
            {
                apiKey = Guid.NewGuid().ToString();
                ActiveApiKeys.Add(new Tuple <int, string, string>(uid, device.ToLower(), apiKey));
                Entities.AuthTokens token = new Entities.AuthTokens(uid, (device).ToLower(), apiKey);
                RepoFactory.AuthTokens.Save(token);
            }

            return(apiKey);
        }
Example #2
0
        /// <summary>
        ///  change current user password
        /// </summary>
        /// <returns></returns>
        private object ChangePassword()
        {
            Request request = this.Request;

            Entities.JMMUser user = (Entities.JMMUser) this.Context.CurrentUser;
            return(ChangePassword(user.JMMUserID));
        }
Example #3
0
        /// <summary>
        /// Create user from Contract_JMMUser
        /// </summary>
        /// <returns></returns>
        private object CreateUser()
        {
            Request request = this.Request;

            Entities.JMMUser _user = (Entities.JMMUser) this.Context.CurrentUser;
            if (_user.IsAdmin == 1)
            {
                Contract_JMMUser user = this.Bind();
                user.Password       = Digest.Hash(user.Password);
                user.HideCategories = new HashSet <string>(StringComparer.InvariantCultureIgnoreCase);
                user.PlexUsers      = new HashSet <string>(StringComparer.InvariantCultureIgnoreCase);
                if (new JMMServiceImplementation().SaveUser(user) == "")
                {
                    return(APIStatus.statusOK());
                }
                else
                {
                    return(APIStatus.internalError());
                }
            }
            else
            {
                return(APIStatus.adminNeeded());
            }
        }
Example #4
0
 private object GetMetadata(string typeid, string id, bool nocast = false)
 {
     API.APIv1_Legacy_Module.request = this.Request;
     Entities.JMMUser user = (Entities.JMMUser) this.Context.CurrentUser;
     if (user != null)
     {
         return(_impl.GetMetadata(_prov_kodi, user.JMMUserID.ToString(), typeid, id, null, nocast));
     }
     else
     {
         return(new APIMessage(500, "Unable to get User"));
     }
 }
Example #5
0
 private object GetFilters()
 {
     API.APIv1_Legacy_Module.request = this.Request;
     Entities.JMMUser user = (Entities.JMMUser) this.Context.CurrentUser;
     if (user != null)
     {
         return(_impl.GetFilters(_prov_kodi, user.JMMUserID.ToString()));
     }
     else
     {
         return(new APIMessage(500, "Unable to get User"));
     }
 }
Example #6
0
        /// <summary>
        /// Set settings for LogRotator
        /// </summary>
        /// <returns></returns>
        private object SetRotateLogs()
        {
            Request request = this.Request;

            Entities.JMMUser user    = (Entities.JMMUser) this.Context.CurrentUser;
            Logs             rotator = this.Bind();

            if (user.IsAdmin == 1)
            {
                ServerSettings.RotateLogs             = rotator.rotate;
                ServerSettings.RotateLogs_Zip         = rotator.zip;
                ServerSettings.RotateLogs_Delete      = rotator.delete;
                ServerSettings.RotateLogs_Delete_Days = rotator.days.ToString();

                return(APIStatus.statusOK());
            }
            else
            {
                return(APIStatus.adminNeeded());
            }
        }
Example #7
0
        /// <summary>
        /// change given user (by uid) password
        /// </summary>
        /// <returns></returns>
        private object ChangePassword(int uid)
        {
            Request request = this.Request;

            Entities.JMMUser _user = (Entities.JMMUser) this.Context.CurrentUser;
            if (_user.IsAdmin == 1)
            {
                JMMUser user = this.Bind();
                if (new JMMServiceImplementation().ChangePassword(uid, user.Password) == "")
                {
                    return(APIStatus.statusOK());
                }
                else
                {
                    return(APIStatus.internalError());
                }
            }
            else
            {
                return(APIStatus.adminNeeded());
            }
        }
        public static string ValidateUser(string username, string password, string device)
        {
            //in case of login before database have been loaded
            if (Users.Count == 0) { UserDatabase.Refresh(); }

            var userRecord = Users.FirstOrDefault(u => u.Item2.ToLower() == username.ToLower() && u.Item3 == password);

            if (userRecord == null)
            {
                //if user is invalid try to refresh cache so we add any newly added users to cache just in case
                UserDatabase.Refresh();
                return null;
            }

            int uid = new Entities.JMMUser(username).JMMUserID;
            string apiKey = "";
            try
            {
                var apiKeys = ActiveApiKeys.First(u => u.Item1 == uid && u.Item2 == device.ToLower());
                apiKey = apiKeys.Item3;
            }
            catch
            {
                apiKey = Guid.NewGuid().ToString();
                ActiveApiKeys.Add(new Tuple<int, string, string>(uid, device.ToLower(), apiKey));
                Entities.AuthTokens token = new Entities.AuthTokens(uid, (device).ToLower(), apiKey);
                RepoFactory.AuthTokens.Save(token);
            }

            return apiKey;
        }