allow username to be set by admin, when username is empty
This commit is contained in:
@@ -175,6 +175,14 @@
|
||||
<form name="useredit_form" role="form" ng-submit="useredit.submit()" autocomplete="off">
|
||||
<p class="has-error text-center" ng-show="useredit.error.generic">{{ useredit.error.generic }}</p>
|
||||
|
||||
<!-- when user profiles are locked, this provides a way for the admin to set the username -->
|
||||
<div class="form-group" ng-hide="useredit.source || useredit.userInfo.username" ng-class="{ 'has-error': (useredit_form.username.$dirty && useredit_form.username.$invalid) || (!useredit_form.username.$dirty && useredit.error.username) }">
|
||||
<label class="control-label">{{ 'users.user.username' | tr }}</label>
|
||||
<div class="control-label" ng-show="(!useredit_form.username.$dirty && useredit.error.username) || (useredit_form.username.$dirty && useredit_form.username.$invalid) || (!useredit_form.username.$dirty && useredit.error.username)">
|
||||
<small ng-show="!useredit_form.username.$dirty && useredit.error.username">{{ useredit.error.username }}</small>
|
||||
</div>
|
||||
<input type="text" class="form-control" ng-model="useredit.username" name="username" autocomplete="off">
|
||||
</div>
|
||||
<div class="form-group" ng-hide="useredit.source" ng-class="{ 'has-error': (useredit_form.displayName.$dirty && useredit_form.displayName.$invalid) || (!useredit_form.displayName.$dirty && useredit.error.displayName) }">
|
||||
<label class="control-label">{{ 'users.user.displayName' | tr }}</label>
|
||||
<div class="control-label" ng-show="(!useredit_form.displayName.$dirty && useredit.error.displayName) || (useredit_form.displayName.$dirty && useredit_form.displayName.$invalid) || (!useredit_form.displayName.$dirty && useredit.error.displayName)">
|
||||
|
||||
@@ -228,6 +228,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
userInfo: {},
|
||||
|
||||
// form fields
|
||||
username: '',
|
||||
email: '',
|
||||
fallbackEmail: '',
|
||||
aliases: {},
|
||||
@@ -239,6 +240,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
|
||||
show: function (userInfo) {
|
||||
$scope.useredit.error = {};
|
||||
$scope.useredit.username = userInfo.username;
|
||||
$scope.useredit.email = userInfo.email;
|
||||
$scope.useredit.displayName = userInfo.displayName;
|
||||
$scope.useredit.fallbackEmail = userInfo.fallbackEmail;
|
||||
@@ -271,6 +273,8 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
|
||||
// only change those if it is a local user
|
||||
if (!$scope.useredit.source) {
|
||||
// username is settable only if it was empty previously. it's editable for the "lock" profiles feature
|
||||
if (!$scope.useredit.userInfo.username) data.username = $scope.useredit.username;
|
||||
data.email = $scope.useredit.email;
|
||||
data.displayName = $scope.useredit.displayName;
|
||||
data.fallbackEmail = $scope.useredit.fallbackEmail;
|
||||
@@ -281,7 +285,11 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
$scope.useredit.busy = false;
|
||||
|
||||
if (error.statusCode === 409) {
|
||||
$scope.useredit.error.email = 'Email already taken';
|
||||
if (error.message.toLowerCase().indexOf('email') !== -1) {
|
||||
$scope.useredit.error.email = 'Email already taken';
|
||||
} else if (error.message.toLowerCase().indexOf('username') !== -1) {
|
||||
$scope.useredit.error.username = 'Username already taken';
|
||||
}
|
||||
$scope.useredit_form.email.$setPristine();
|
||||
$('#inputUserEditEmail').focus();
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user