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); }
/// <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)); }
/// <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()); } }
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")); } }
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")); } }
/// <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()); } }
/// <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; }