Fix setup issue and refine error messages
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
parent
c3fe8f6cf2
commit
2e88bec14b
|
@ -420,6 +420,11 @@ em {
|
|||
input[type='text'] {
|
||||
width: 93%;
|
||||
}
|
||||
|
||||
.info-text {
|
||||
padding: 5px 0 7px 22px;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
|
||||
#app-settings-header {
|
||||
|
|
|
@ -281,11 +281,9 @@ class Manager extends PublicEmitter implements IUserManager {
|
|||
if (strlen(trim($uid, "\t\n\r\0\x0B\xe2\x80\x8b")) !== strlen(trim($uid))) {
|
||||
throw new \Exception($l->t('Username contains whitespace at the beginning or at the end'));
|
||||
}
|
||||
// if password link is sent use random password; permit empty password
|
||||
if (trim($password) == '' && $this->config->getAppValue('core', 'umgmt_send_passwordlink', 'false') === 'false') {
|
||||
// No empty password
|
||||
if (trim($password) == '') {
|
||||
throw new \Exception($l->t('A valid password must be provided'));
|
||||
} else {
|
||||
$password = \OC::$server->getSecureRandom()->generate(32);
|
||||
}
|
||||
|
||||
// Check if user already exists
|
||||
|
|
|
@ -379,6 +379,21 @@ class UsersController extends Controller {
|
|||
);
|
||||
}
|
||||
|
||||
$generatedPassword = false;
|
||||
if ($password === '') {
|
||||
if ($email === '') {
|
||||
return new DataResponse(
|
||||
array(
|
||||
'message' => (string)$this->l10n->t('To send a password link to the user an email address is required.')
|
||||
),
|
||||
Http::STATUS_UNPROCESSABLE_ENTITY
|
||||
);
|
||||
}
|
||||
|
||||
$password = $this->secureRandom->generate(32);
|
||||
$generatedPassword = true;
|
||||
}
|
||||
|
||||
try {
|
||||
$user = $this->userManager->createUser($username, $password);
|
||||
} catch (\Exception $exception) {
|
||||
|
@ -411,7 +426,7 @@ class UsersController extends Controller {
|
|||
if($email !== '') {
|
||||
$user->setEMailAddress($email);
|
||||
|
||||
if ($this->config->getAppValue('core', 'umgmt_send_passwordlink', 'false') === 'true') {
|
||||
if ($generatedPassword) {
|
||||
$token = $this->secureRandom->generate(
|
||||
21,
|
||||
ISecureRandom::CHAR_DIGITS .
|
||||
|
@ -431,7 +446,7 @@ class UsersController extends Controller {
|
|||
// data for the mail template
|
||||
$mailData = array(
|
||||
'username' => $username,
|
||||
'url' =>$link
|
||||
'url' => $link
|
||||
);
|
||||
|
||||
$mail = new TemplateResponse('settings', 'email.new_user', $mailData, 'blank');
|
||||
|
|
|
@ -918,7 +918,7 @@ $(document).ready(function () {
|
|||
}));
|
||||
return false;
|
||||
}
|
||||
if ($.trim(password) === '' && !$('#CheckboxMailPasswordOnUserCreate').is(':checked')) {
|
||||
if ($.trim(password) === '' && !$('#CheckboxMailOnUserCreate').is(':checked')) {
|
||||
OC.Notification.showTemporary(t('settings', 'Error creating user: {message}', {
|
||||
message: t('settings', 'A valid password must be provided')
|
||||
}));
|
||||
|
@ -1044,37 +1044,15 @@ $(document).ready(function () {
|
|||
|
||||
if ($('#CheckboxMailOnUserCreate').is(':checked')) {
|
||||
$("#newemail").show();
|
||||
$("#MailPasswordOnUserCreateSetting").show();
|
||||
}
|
||||
|
||||
if ($('#CheckboxMailPasswordOnUserCreate').is(':checked')) {
|
||||
$("#newuserpassword").hide();
|
||||
} else {
|
||||
$("#newuserpassword").show();
|
||||
}
|
||||
|
||||
// Option to display/hide the "E-Mail" input field
|
||||
$('#CheckboxMailOnUserCreate').click(function() {
|
||||
if ($('#CheckboxMailOnUserCreate').is(':checked')) {
|
||||
$("#newemail").show();
|
||||
$("#MailPasswordOnUserCreateSetting").show();
|
||||
OCP.AppConfig.setValue('core', 'umgmt_send_email', 'true');
|
||||
} else {
|
||||
$("#newemail").hide();
|
||||
$("#MailPasswordOnUserCreateSetting").hide();
|
||||
OCP.AppConfig.setValue('core', 'umgmt_send_email', 'false');
|
||||
OCP.AppConfig.setValue('core', 'umgmt_send_passwordlink', 'false');
|
||||
$('#CheckboxMailPasswordOnUserCreate').removeAttr('checked');
|
||||
}
|
||||
});
|
||||
|
||||
$('#CheckboxMailPasswordOnUserCreate').click(function() {
|
||||
if ($('#CheckboxMailPasswordOnUserCreate').is(':checked')) {
|
||||
OCP.AppConfig.setValue('core', 'umgmt_send_passwordlink', 'true');
|
||||
$("#newuserpassword").hide();
|
||||
} else {
|
||||
OCP.AppConfig.setValue('core', 'umgmt_send_passwordlink', 'false');
|
||||
$("#newuserpassword").show();
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
@ -72,12 +72,8 @@ translation('settings');
|
|||
<?php p($l->t('Send email to new user')) ?>
|
||||
</label>
|
||||
</p>
|
||||
<p style="padding-left: 20px" id="MailPasswordOnUserCreateSetting">
|
||||
<input type="checkbox" name="MailPasswordOnUserCreate" value="MailPasswordOnUserCreate" id="CheckboxMailPasswordOnUserCreate"
|
||||
class="checkbox" <?php if ($_['send_passwordlink'] === 'true') print_unescaped('checked="checked"'); ?> />
|
||||
<label for="CheckboxMailPasswordOnUserCreate">
|
||||
<?php p($l->t('Send password link')) ?>
|
||||
</label>
|
||||
<p class="info-text">
|
||||
When the password of the new user is left empty an activation email with a link to set the password is send to the user.
|
||||
</p>
|
||||
<p>
|
||||
<input type="checkbox" name="EmailAddress" value="EmailAddress" id="CheckboxEmailAddress"
|
||||
|
|
|
@ -124,6 +124,5 @@ $tmpl->assign('show_last_login', $config->getAppValue('core', 'umgmt_show_last_l
|
|||
$tmpl->assign('show_email', $config->getAppValue('core', 'umgmt_show_email', 'false'));
|
||||
$tmpl->assign('show_backend', $config->getAppValue('core', 'umgmt_show_backend', 'false'));
|
||||
$tmpl->assign('send_email', $config->getAppValue('core', 'umgmt_send_email', 'false'));
|
||||
$tmpl->assign('send_passwordlink', $config->getAppValue('core', 'umgmt_send_passwordlink', 'false'));
|
||||
|
||||
$tmpl->printPage();
|
||||
|
|
Loading…
Reference in New Issue