Merge pull request #907 from tidusjar/dev

Dev
This commit is contained in:
Jamie 2017-01-10 15:32:35 +00:00 committed by GitHub
commit 497b887c8c
8 changed files with 32 additions and 20 deletions

View file

@ -97,13 +97,16 @@ namespace Ombi.Services.Jobs
var needToUpdate = false; var needToUpdate = false;
var usernameChanged = false; var usernameChanged = false;
if (!string.IsNullOrEmpty(user.Username)) // If true then this is a managed user, we do not want to update the email since Managed Users do not have email addresses
{
// Do we need up update any info? // Do we need up update any info?
if (!dbUser.EmailAddress.Equals(user.Email, StringComparison.CurrentCultureIgnoreCase)) if (!dbUser.EmailAddress.Equals(user.Email, StringComparison.CurrentCultureIgnoreCase))
{ {
dbUser.EmailAddress = user.Email; dbUser.EmailAddress = user.Email;
needToUpdate = true; needToUpdate = true;
} }
if (!dbUser.Username.Equals(user.Username, StringComparison.CurrentCultureIgnoreCase)) }
if (!dbUser.Username.Equals(user.Title, StringComparison.CurrentCultureIgnoreCase))
{ {
needToUpdate = true; needToUpdate = true;
usernameChanged = true; usernameChanged = true;
@ -114,8 +117,8 @@ namespace Ombi.Services.Jobs
if (usernameChanged) if (usernameChanged)
{ {
// The username has changed, let's check if the username matches any local users // The username has changed, let's check if the username matches any local users
var localUser = localUsers.FirstOrDefault(x => x.UserName.Equals(user.Username, StringComparison.CurrentCultureIgnoreCase)); var localUser = localUsers.FirstOrDefault(x => x.UserName.Equals(user.Title, StringComparison.CurrentCultureIgnoreCase));
dbUser.Username = user.Username; dbUser.Username = user.Title;
if (localUser != null) if (localUser != null)
{ {
// looks like we have a local user with the same name... // looks like we have a local user with the same name...
@ -133,7 +136,7 @@ namespace Ombi.Services.Jobs
var requestsWithThisUser = requests.Where(x => x.RequestedUsers.Contains(user.Username)).ToList(); var requestsWithThisUser = requests.Where(x => x.RequestedUsers.Contains(user.Username)).ToList();
foreach (var r in requestsWithThisUser) foreach (var r in requestsWithThisUser)
{ {
r.RequestedUsers.Remove(user.Username); // Remove old r.RequestedUsers.Remove(user.Title); // Remove old
r.RequestedUsers.Add(dbUser.Username); // Add new r.RequestedUsers.Add(dbUser.Username); // Add new
} }
@ -157,7 +160,7 @@ namespace Ombi.Services.Jobs
Features = UserManagementHelper.GetFeatures(userManagementSettings), Features = UserManagementHelper.GetFeatures(userManagementSettings),
UserAlias = string.Empty, UserAlias = string.Empty,
EmailAddress = user.Email, EmailAddress = user.Email,
Username = user.Username, Username = user.Title,
LoginId = Guid.NewGuid().ToString() LoginId = Guid.NewGuid().ToString()
}; };

View file

@ -47,21 +47,24 @@ namespace Ombi.Store.Repository
public UsersModel GetUser(string userGuid) public UsersModel GetUser(string userGuid)
{ {
var sql = @"SELECT * FROM Users var sql = @"SELECT * FROM Users
WHERE Userguid = @UserGuid"; WHERE Userguid = @UserGuid
COLLATE NOCASE";
return Db.QueryFirstOrDefault<UsersModel>(sql, new {UserGuid = userGuid}); return Db.QueryFirstOrDefault<UsersModel>(sql, new {UserGuid = userGuid});
} }
public UsersModel GetUserByUsername(string username) public UsersModel GetUserByUsername(string username)
{ {
var sql = @"SELECT * FROM Users var sql = @"SELECT * FROM Users
WHERE UserName = @UserName"; WHERE UserName = @UserName
COLLATE NOCASE";
return Db.QueryFirstOrDefault<UsersModel>(sql, new {UserName = username}); return Db.QueryFirstOrDefault<UsersModel>(sql, new {UserName = username});
} }
public async Task<UsersModel> GetUserAsync(string userguid) public async Task<UsersModel> GetUserAsync(string userguid)
{ {
var sql = @"SELECT * FROM Users var sql = @"SELECT * FROM Users
WHERE UserGuid = @UserGuid"; WHERE UserGuid = @UserGuid
COLLATE NOCASE";
return await Db.QueryFirstOrDefaultAsync<UsersModel>(sql, new {UserGuid = userguid}); return await Db.QueryFirstOrDefaultAsync<UsersModel>(sql, new {UserGuid = userguid});
} }

View file

@ -97,6 +97,8 @@ namespace Ombi.UI
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
ServicePointManager.ServerCertificateValidationCallback += ServicePointManager.ServerCertificateValidationCallback +=
(sender, certificate, chain, sslPolicyErrors) => true; (sender, certificate, chain, sslPolicyErrors) => true;
ServicePointManager.Expect100Continue = false;
} }
#if DEBUG #if DEBUG

View file

@ -39,7 +39,7 @@
</div> </div>
<strong>Email Address</strong> <strong>Email Address</strong>
<div class="form-group"> <div class="form-group">
<input id="emailAddress" type="email" ng-model="selectedUser.emailAddress" ng-disabled="selectedUser.type === 0" class="form-control form-control-custom" /> <input id="emailAddress" type="email" ng-model="selectedUser.emailAddress" ng-disabled="selectedUser.emailDisabled" class="form-control form-control-custom" />
</div> </div>
<strong>Alias</strong> <strong>Alias</strong>

View file

@ -31,6 +31,7 @@
}); });
$scope.selectedUser = user[0]; $scope.selectedUser = user[0];
$scope.selectedUser.emailDisabled = $scope.selectedUser.type === 0 && $scope.selectedUser.managedUser == '';
openSidebar(); openSidebar();
} }

View file

@ -24,6 +24,7 @@ namespace Ombi.UI.Models.UserManagement
public DateTime LastLoggedIn { get; set; } public DateTime LastLoggedIn { get; set; }
public List<CheckBox> Permissions { get; set; } public List<CheckBox> Permissions { get; set; }
public List<CheckBox> Features { get; set; } public List<CheckBox> Features { get; set; }
public bool ManagedUser { get; set; }
} }
public class UserManagementPlexInformation public class UserManagementPlexInformation

View file

@ -565,7 +565,7 @@ namespace Ombi.UI.Modules
}; };
try try
{ {
if (ShouldAutoApprove(RequestType.Movie, settings, Username)) if (ShouldAutoApprove(RequestType.Movie))
{ {
model.Approved = true; model.Approved = true;
@ -885,7 +885,7 @@ namespace Ombi.UI.Modules
try try
{ {
if (ShouldAutoApprove(RequestType.TvShow, settings, Username)) if (ShouldAutoApprove(RequestType.TvShow))
{ {
model.Approved = true; model.Approved = true;
var s = await sonarrSettings; var s = await sonarrSettings;
@ -981,7 +981,7 @@ namespace Ombi.UI.Modules
private bool ShouldSendNotification(RequestType type, PlexRequestSettings prSettings) private bool ShouldSendNotification(RequestType type, PlexRequestSettings prSettings)
{ {
var sendNotification = ShouldAutoApprove(type, prSettings, Username) var sendNotification = ShouldAutoApprove(type)
? !prSettings.IgnoreNotifyForAutoApprovedRequests ? !prSettings.IgnoreNotifyForAutoApprovedRequests
: true; : true;
@ -1089,7 +1089,7 @@ namespace Ombi.UI.Modules
try try
{ {
if (ShouldAutoApprove(RequestType.Album, settings, Username)) if (ShouldAutoApprove(RequestType.Album))
{ {
model.Approved = true; model.Approved = true;
var hpSettings = HeadphonesService.GetSettings(); var hpSettings = HeadphonesService.GetSettings();
@ -1363,7 +1363,7 @@ namespace Ombi.UI.Modules
return diff; return diff;
} }
public bool ShouldAutoApprove(RequestType requestType, PlexRequestSettings prSettings, string username) public bool ShouldAutoApprove(RequestType requestType)
{ {
var admin = Security.HasPermissions(Context.CurrentUser, Permissions.Administrator); var admin = Security.HasPermissions(Context.CurrentUser, Permissions.Administrator);
// if the user is an admin, they go ahead and allow auto-approval // if the user is an admin, they go ahead and allow auto-approval

View file

@ -231,6 +231,7 @@ namespace Ombi.UI.Modules
await UpdateRequests(plexDbUser.Username, plexDbUser.UserAlias, model.Alias); await UpdateRequests(plexDbUser.Username, plexDbUser.UserAlias, model.Alias);
plexDbUser.UserAlias = model.Alias; plexDbUser.UserAlias = model.Alias;
plexDbUser.EmailAddress = model.EmailAddress;
await PlexUsersRepository.UpdateAsync(plexDbUser); await PlexUsersRepository.UpdateAsync(plexDbUser);
@ -266,7 +267,7 @@ namespace Ombi.UI.Modules
UserAlias = model.Alias, UserAlias = model.Alias,
PlexUserId = plexUser.Id, PlexUserId = plexUser.Id,
EmailAddress = plexUser.Email, EmailAddress = plexUser.Email,
Username = plexUser.Username, Username = plexUser.Title,
LoginId = Guid.NewGuid().ToString() LoginId = Guid.NewGuid().ToString()
}; };
@ -417,7 +418,7 @@ namespace Ombi.UI.Modules
Id = plexInfo.Id, Id = plexInfo.Id,
PermissionsFormattedString = newUser ? "Processing..." :( permissions == 0 ? "None" : permissions.ToString()), PermissionsFormattedString = newUser ? "Processing..." :( permissions == 0 ? "None" : permissions.ToString()),
FeaturesFormattedString = newUser ? "Processing..." : features.ToString(), FeaturesFormattedString = newUser ? "Processing..." : features.ToString(),
Username = plexInfo.Username, Username = plexInfo.Title,
Type = UserType.PlexUser, Type = UserType.PlexUser,
EmailAddress = plexInfo.Email, EmailAddress = plexInfo.Email,
Alias = dbUser?.UserAlias ?? string.Empty, Alias = dbUser?.UserAlias ?? string.Empty,
@ -426,6 +427,7 @@ namespace Ombi.UI.Modules
{ {
Thumb = plexInfo.Thumb Thumb = plexInfo.Thumb
}, },
ManagedUser = string.IsNullOrEmpty(plexInfo.Username)
}; };
m.Permissions.AddRange(GetPermissions(permissions)); m.Permissions.AddRange(GetPermissions(permissions));