This commit is contained in:
Jamie Rees 2018-04-21 22:47:01 +01:00
parent 0ce9fb2df9
commit a0dbd1c442
5 changed files with 20 additions and 15 deletions

View file

@ -32,14 +32,7 @@ namespace Ombi.Core.Engine.Interfaces
private OmbiUser _user; private OmbiUser _user;
protected async Task<OmbiUser> GetUser() protected async Task<OmbiUser> GetUser()
{ {
if (IsApiUser) return _user ?? (_user = await UserManager.Users.FirstOrDefaultAsync(x => x.UserName.Equals(Username, StringComparison.CurrentCultureIgnoreCase)));
{
return new OmbiUser
{
UserName = Username,
};
}
return _user ?? (_user = await UserManager.Users.FirstOrDefaultAsync(x => x.UserName == Username));
} }
protected async Task<string> UserAlias() protected async Task<string> UserAlias()
@ -49,10 +42,6 @@ namespace Ombi.Core.Engine.Interfaces
protected async Task<bool> IsInRole(string roleName) protected async Task<bool> IsInRole(string roleName)
{ {
if (IsApiUser && roleName != OmbiRoles.Disabled)
{
return true;
}
return await UserManager.IsInRoleAsync(await GetUser(), roleName); return await UserManager.IsInRoleAsync(await GetUser(), roleName);
} }
@ -72,7 +61,5 @@ namespace Ombi.Core.Engine.Interfaces
var ruleResults = await Rules.StartSpecificRules(model, rule); var ruleResults = await Rules.StartSpecificRules(model, rule);
return ruleResults; return ruleResults;
} }
private bool IsApiUser => Username.Equals("Api", StringComparison.CurrentCultureIgnoreCase);
} }
} }

View file

@ -123,7 +123,23 @@ namespace Ombi.Store.Context
{ {
NormalizedName = OmbiRoles.RecievesNewsletter.ToUpper() NormalizedName = OmbiRoles.RecievesNewsletter.ToUpper()
}); });
SaveChanges();
} }
// Make sure we have the API User
var apiUserExists = Users.Any(x => x.UserName.Equals("Api", StringComparison.CurrentCultureIgnoreCase));
if (!apiUserExists)
{
Users.Add(new OmbiUser
{
UserName = "Api",
UserType = UserType.SystemUser,
NormalizedUserName = "API",
});
SaveChanges();
}
//Check if templates exist //Check if templates exist
var templates = NotificationTemplates.ToList(); var templates = NotificationTemplates.ToList();

View file

@ -29,6 +29,7 @@ namespace Ombi.Store.Entities
{ {
public enum UserType public enum UserType
{ {
SystemUser = 0,
LocalUser = 1, LocalUser = 1,
PlexUser = 2, PlexUser = 2,
EmbyUser = 3, EmbyUser = 3,

View file

@ -213,7 +213,7 @@ namespace Ombi.Controllers
[PowerUser] [PowerUser]
public async Task<IEnumerable<UserViewModel>> GetAllUsers() public async Task<IEnumerable<UserViewModel>> GetAllUsers()
{ {
var users = await UserManager.Users var users = await UserManager.Users.Where(x => x.UserType != UserType.LocalUser)
.ToListAsync(); .ToListAsync();
var model = new List<UserViewModel>(); var model = new List<UserViewModel>();

View file

@ -10,6 +10,7 @@
"profiles": { "profiles": {
"IIS Express": { "IIS Express": {
"commandName": "IISExpress", "commandName": "IISExpress",
"commandLineArgs": "-baseurl /testing",
"launchBrowser": true, "launchBrowser": true,
"environmentVariables": { "environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development" "ASPNETCORE_ENVIRONMENT": "Development"