Add form to create remote user

This commit is contained in:
Frederic Guillot
2015-07-18 10:02:29 -04:00
parent 536c6964aa
commit 5369c74ec0
23 changed files with 106 additions and 4 deletions

View File

@@ -60,7 +60,9 @@ class User extends Base
*/ */
public function create(array $values = array(), array $errors = array()) public function create(array $values = array(), array $errors = array())
{ {
$this->response->html($this->template->layout('user/new', array( $is_remote = $this->request->getIntegerParam('remote') == 1 || (isset($values['is_ldap_user']) && $values['is_ldap_user'] == 1);
$this->response->html($this->template->layout($is_remote ? 'user/create_remote' : 'user/create_local', array(
'timezones' => $this->config->getTimezones(true), 'timezones' => $this->config->getTimezones(true),
'languages' => $this->config->getLanguages(true), 'languages' => $this->config->getLanguages(true),
'board_selector' => $this->projectPermission->getAllowedProjects($this->userSession->getId()), 'board_selector' => $this->projectPermission->getAllowedProjects($this->userSession->getId()),

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -998,4 +998,6 @@ return array(
'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => 'Si vous cochez la case « Interdir le formulaire d\'authentification », les identifiants entrés dans le formulaire d\'authentification seront ignorés.', 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => 'Si vous cochez la case « Interdir le formulaire d\'authentification », les identifiants entrés dans le formulaire d\'authentification seront ignorés.',
'By @%s on Gitlab' => 'Par @%s sur Gitlab', 'By @%s on Gitlab' => 'Par @%s sur Gitlab',
'Gitlab issue comment created' => 'Commentaire créé sur un ticket Gitlab', 'Gitlab issue comment created' => 'Commentaire créé sur un ticket Gitlab',
'New remote user' => 'Créer un utilisateur distant',
'New local user' => 'Créer un utilisateur local',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -996,4 +996,6 @@ return array(
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '', // 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
// 'By @%s on Gitlab' => '', // 'By @%s on Gitlab' => '',
// 'Gitlab issue comment created' => '', // 'Gitlab issue comment created' => '',
// 'New remote user' => '',
// 'New local user' => '',
); );

View File

@@ -377,6 +377,7 @@ class User extends Base
new Validators\Unique('username', t('The username must be unique'), $this->db->getConnection(), self::TABLE, 'id'), new Validators\Unique('username', t('The username must be unique'), $this->db->getConnection(), self::TABLE, 'id'),
new Validators\Email('email', t('Email address invalid')), new Validators\Email('email', t('Email address invalid')),
new Validators\Integer('is_admin', t('This value must be an integer')), new Validators\Integer('is_admin', t('This value must be an integer')),
new Validators\Integer('is_ldap_user', t('This value must be an integer')),
); );
} }
@@ -409,7 +410,12 @@ class User extends Base
new Validators\Required('username', t('The username is required')), new Validators\Required('username', t('The username is required')),
); );
$v = new Validator($values, array_merge($rules, $this->commonValidationRules(), $this->commonPasswordValidationRules())); if (isset($values['is_ldap_user']) && $values['is_ldap_user'] == 1) {
$v = new Validator($values, array_merge($rules, $this->commonValidationRules()));
}
else {
$v = new Validator($values, array_merge($rules, $this->commonValidationRules(), $this->commonPasswordValidationRules()));
}
return array( return array(
$v->execute(), $v->execute(),

View File

@@ -2,6 +2,7 @@
<div class="page-header"> <div class="page-header">
<ul> <ul>
<li><i class="fa fa-user fa-fw"></i><?= $this->url->link(t('All users'), 'user', 'index') ?></li> <li><i class="fa fa-user fa-fw"></i><?= $this->url->link(t('All users'), 'user', 'index') ?></li>
<li><i class="fa fa-plus fa-fw"></i><?= $this->url->link(t('New remote user'), 'user', 'create', array('remote' => 1)) ?></li>
</ul> </ul>
</div> </div>
<section> <section>

View File

@@ -0,0 +1,57 @@
<section id="main">
<div class="page-header">
<ul>
<li><i class="fa fa-user fa-fw"></i><?= $this->url->link(t('All users'), 'user', 'index') ?></li>
<li><i class="fa fa-plus fa-fw"></i><?= $this->url->link(t('New local user'), 'user', 'create') ?></li>
</ul>
</div>
<form method="post" action="<?= $this->url->href('user', 'save') ?>" autocomplete="off">
<?= $this->form->csrf() ?>
<?= $this->form->hidden('is_ldap_user', array('is_ldap_user' => 1)) ?>
<div class="form-column">
<?= $this->form->label(t('Username'), 'username') ?>
<?= $this->form->text('username', $values, $errors, array('autofocus', 'required', 'maxlength="50"')) ?><br/>
<?= $this->form->label(t('Name'), 'name') ?>
<?= $this->form->text('name', $values, $errors) ?><br/>
<?= $this->form->label(t('Email'), 'email') ?>
<?= $this->form->email('email', $values, $errors) ?><br/>
<?= $this->form->label(t('Google Id'), 'google_id') ?>
<?= $this->form->password('google_id', $values, $errors) ?><br/>
<?= $this->form->label(t('Github Id'), 'github_id') ?>
<?= $this->form->password('github_id', $values, $errors) ?><br/>
</div>
<div class="form-column">
<?= $this->form->label(t('Add project member'), 'project_id') ?>
<?= $this->form->select('project_id', $projects, $values, $errors) ?><br/>
<?= $this->form->label(t('Timezone'), 'timezone') ?>
<?= $this->form->select('timezone', $timezones, $values, $errors) ?><br/>
<?= $this->form->label(t('Language'), 'language') ?>
<?= $this->form->select('language', $languages, $values, $errors) ?><br/>
<?= $this->form->checkbox('notifications_enabled', t('Enable notifications'), 1, isset($values['notifications_enabled']) && $values['notifications_enabled'] == 1 ? true : false) ?>
<?= $this->form->checkbox('is_admin', t('Administrator'), 1, isset($values['is_admin']) && $values['is_admin'] == 1 ? true : false) ?>
<?= $this->form->checkbox('disable_login_form', t('Disallow login form'), 1, isset($values['disable_login_form']) && $values['disable_login_form'] == 1) ?>
</div>
<div class="form-actions">
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
<?= t('or') ?>
<?= $this->url->link(t('cancel'), 'user', 'index') ?>
</div>
</form>
<div class="alert alert-info">
<ul>
<li><?= t('Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.') ?></li>
<li><?= t('If you check the box "Disallow login form", credentials entered in the login form will be ignored.') ?></li>
</ul>
</div>
</section>

View File

@@ -2,7 +2,8 @@
<div class="page-header"> <div class="page-header">
<?php if ($this->user->isAdmin()): ?> <?php if ($this->user->isAdmin()): ?>
<ul> <ul>
<li><i class="fa fa-plus fa-fw"></i><?= $this->url->link(t('New user'), 'user', 'create') ?></li> <li><i class="fa fa-plus fa-fw"></i><?= $this->url->link(t('New local user'), 'user', 'create') ?></li>
<li><i class="fa fa-plus fa-fw"></i><?= $this->url->link(t('New remote user'), 'user', 'create', array('remote' => 1)) ?></li>
</ul> </ul>
<?php endif ?> <?php endif ?>
</div> </div>

View File

@@ -3,7 +3,8 @@
<?php if ($this->user->isAdmin()): ?> <?php if ($this->user->isAdmin()): ?>
<ul> <ul>
<li><i class="fa fa-user fa-fw"></i><?= $this->url->link(t('All users'), 'user', 'index') ?></li> <li><i class="fa fa-user fa-fw"></i><?= $this->url->link(t('All users'), 'user', 'index') ?></li>
<li><i class="fa fa-plus fa-fw"></i><?= $this->url->link(t('New user'), 'user', 'create') ?></li> <li><i class="fa fa-plus fa-fw"></i><?= $this->url->link(t('New local user'), 'user', 'create') ?></li>
<li><i class="fa fa-plus fa-fw"></i><?= $this->url->link(t('New remote user'), 'user', 'create', array('remote' => 1)) ?></li>
</ul> </ul>
<?php endif ?> <?php endif ?>
</div> </div>