diff options
Diffstat (limited to 'app/Template/user')
-rw-r--r-- | app/Template/user/edit.php | 32 | ||||
-rw-r--r-- | app/Template/user/external.php | 39 | ||||
-rw-r--r-- | app/Template/user/index.php | 72 | ||||
-rw-r--r-- | app/Template/user/last.php | 24 | ||||
-rw-r--r-- | app/Template/user/layout.php | 18 | ||||
-rw-r--r-- | app/Template/user/login.php | 32 | ||||
-rw-r--r-- | app/Template/user/new.php | 39 | ||||
-rw-r--r-- | app/Template/user/notifications.php | 26 | ||||
-rw-r--r-- | app/Template/user/password.php | 26 | ||||
-rw-r--r-- | app/Template/user/remove.php | 13 | ||||
-rw-r--r-- | app/Template/user/sessions.php | 26 | ||||
-rw-r--r-- | app/Template/user/show.php | 12 | ||||
-rw-r--r-- | app/Template/user/sidebar.php | 39 |
13 files changed, 398 insertions, 0 deletions
diff --git a/app/Template/user/edit.php b/app/Template/user/edit.php new file mode 100644 index 00000000..bc942567 --- /dev/null +++ b/app/Template/user/edit.php @@ -0,0 +1,32 @@ +<div class="page-header"> + <h2><?= t('Edit user') ?></h2> +</div> +<form method="post" action="<?= Helper\u('user', 'edit', array('user_id' => $user['id'])) ?>" autocomplete="off"> + + <?= Helper\form_csrf() ?> + + <?= Helper\form_hidden('id', $values) ?> + <?= Helper\form_hidden('is_ldap_user', $values) ?> + + <?= Helper\form_label(t('Username'), 'username') ?> + <?= Helper\form_text('username', $values, $errors, array('required', $values['is_ldap_user'] == 1 ? 'readonly' : '')) ?><br/> + + <?= Helper\form_label(t('Name'), 'name') ?> + <?= Helper\form_text('name', $values, $errors) ?><br/> + + <?= Helper\form_label(t('Email'), 'email') ?> + <?= Helper\form_email('email', $values, $errors) ?><br/> + + <?= Helper\form_label(t('Default project'), 'default_project_id') ?> + <?= Helper\form_select('default_project_id', $projects, $values, $errors) ?><br/> + + <?php if (Helper\is_admin()): ?> + <?= Helper\form_checkbox('is_admin', t('Administrator'), 1, isset($values['is_admin']) && $values['is_admin'] == 1 ? true : false) ?><br/> + <?php endif ?> + + <div class="form-actions"> + <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> + <?= t('or') ?> + <?= Helper\a(t('cancel'), 'user', 'show', array('user_id' => $user['id'])) ?> + </div> +</form>
\ No newline at end of file diff --git a/app/Template/user/external.php b/app/Template/user/external.php new file mode 100644 index 00000000..31ffcb75 --- /dev/null +++ b/app/Template/user/external.php @@ -0,0 +1,39 @@ +<div class="page-header"> + <h2><?= t('External authentications') ?></h2> +</div> + +<?php if (GOOGLE_AUTH): ?> + <h3><i class="fa fa-google"></i> <?= t('Google Account') ?></h3> + + <p class="listing"> + <?php if (Helper\is_current_user($user['id'])): ?> + <?php if (empty($user['google_id'])): ?> + <?= Helper\a(t('Link my Google Account'), 'user', 'google', array(), true) ?> + <?php else: ?> + <?= Helper\a(t('Unlink my Google Account'), 'user', 'unlinkGoogle', array(), true) ?> + <?php endif ?> + <?php else: ?> + <?= empty($user['google_id']) ? t('No account linked.') : t('Account linked.') ?> + <?php endif ?> + </p> +<?php endif ?> + +<?php if (GITHUB_AUTH): ?> + <h3><i class="fa fa-github"></i> <?= t('Github Account') ?></h3> + + <p class="listing"> + <?php if (Helper\is_current_user($user['id'])): ?> + <?php if (empty($user['github_id'])): ?> + <?= Helper\a(t('Link my GitHub Account'), 'user', 'github', array(), true) ?> + <?php else: ?> + <?= Helper\a(t('Unlink my GitHub Account'), 'user', 'unlinkGitHub', array(), true) ?> + <?php endif ?> + <?php else: ?> + <?= empty($user['github_id']) ? t('No account linked.') : t('Account linked.') ?> + <?php endif ?> + </p> +<?php endif ?> + +<?php if (! GOOGLE_AUTH && ! GITHUB_AUTH): ?> + <p class="alert"><?= t('No external authentication enabled.') ?></p> +<?php endif ?> diff --git a/app/Template/user/index.php b/app/Template/user/index.php new file mode 100644 index 00000000..73612b0b --- /dev/null +++ b/app/Template/user/index.php @@ -0,0 +1,72 @@ +<section id="main"> + <div class="page-header"> + <?php if (Helper\is_admin()): ?> + <ul> + <li><i class="fa fa-plus fa-fw"></i><?= Helper\a(t('New user'), 'user', 'create') ?></li> + </ul> + <?php endif ?> + </div> + <section> + <?php if (empty($users)): ?> + <p class="alert"><?= t('No user') ?></p> + <?php else: ?> + <table> + <tr> + <th><?= Helper\order(t('Id'), 'id', $pagination) ?></th> + <th><?= Helper\order(t('Username'), 'username', $pagination) ?></th> + <th><?= Helper\order(t('Name'), 'name', $pagination) ?></th> + <th><?= Helper\order(t('Email'), 'email', $pagination) ?></th> + <th><?= Helper\order(t('Administrator'), 'is_admin', $pagination) ?></th> + <th><?= Helper\order(t('Default project'), 'default_project_id', $pagination) ?></th> + <th><?= Helper\order(t('Notifications'), 'notifications_enabled', $pagination) ?></th> + <th><?= t('External accounts') ?></th> + <th><?= Helper\order(t('Account type'), 'is_ldap_user', $pagination) ?></th> + </tr> + <?php foreach ($users as $user): ?> + <tr> + <td> + <?= Helper\a('#'.$user['id'], 'user', 'show', array('user_id' => $user['id'])) ?> + </td> + <td> + <?= Helper\a(Helper\escape($user['username']), 'user', 'show', array('user_id' => $user['id'])) ?> + </td> + <td> + <?= Helper\escape($user['name']) ?> + </td> + <td> + <a href="mailto:<?= Helper\escape($user['email']) ?>"><?= Helper\escape($user['email']) ?></a> + </td> + <td> + <?= $user['is_admin'] ? t('Yes') : t('No') ?> + </td> + <td> + <?= (isset($user['default_project_id']) && isset($projects[$user['default_project_id']])) ? Helper\escape($projects[$user['default_project_id']]) : t('None'); ?> + </td> + <td> + <?php if ($user['notifications_enabled'] == 1): ?> + <?= t('Enabled') ?> + <?php else: ?> + <?= t('Disabled') ?> + <?php endif ?> + </td> + <td> + <ul class="no-bullet"> + <?php if ($user['google_id']): ?> + <li><i class="fa fa-google fa-fw"></i><?= t('Google account linked') ?></li> + <?php endif ?> + <?php if ($user['github_id']): ?> + <li><i class="fa fa-github fa-fw"></i><?= t('Github account linked') ?></li> + <?php endif ?> + </ul> + </td> + <td> + <?= $user['is_ldap_user'] ? t('Remote') : t('Local') ?> + </td> + </tr> + <?php endforeach ?> + </table> + + <?= Helper\paginate($pagination) ?> + <?php endif ?> + </section> +</section> diff --git a/app/Template/user/last.php b/app/Template/user/last.php new file mode 100644 index 00000000..0b55b0d5 --- /dev/null +++ b/app/Template/user/last.php @@ -0,0 +1,24 @@ +<div class="page-header"> + <h2><?= t('Last logins') ?></h2> +</div> + +<?php if (empty($last_logins)): ?> + <p class="alert"><?= t('Never connected.') ?></p> +<?php else: ?> + <table class="table-small"> + <tr> + <th><?= t('Login date') ?></th> + <th><?= t('Authentication method') ?></th> + <th><?= t('IP address') ?></th> + <th><?= t('User agent') ?></th> + </tr> + <?php foreach($last_logins as $login): ?> + <tr> + <td><?= dt('%B %e, %Y at %k:%M %p', $login['date_creation']) ?></td> + <td><?= Helper\escape($login['auth_type']) ?></td> + <td><?= Helper\escape($login['ip']) ?></td> + <td><?= Helper\escape(Helper\summary($login['user_agent'])) ?></td> + </tr> + <?php endforeach ?> + </table> +<?php endif ?>
\ No newline at end of file diff --git a/app/Template/user/layout.php b/app/Template/user/layout.php new file mode 100644 index 00000000..0778b716 --- /dev/null +++ b/app/Template/user/layout.php @@ -0,0 +1,18 @@ +<section id="main"> + <div class="page-header"> + <?php if (Helper\is_admin()): ?> + <ul> + <li><i class="fa fa-user fa-fw"></i><?= Helper\a(t('All users'), 'user', 'index') ?></li> + <li><i class="fa fa-plus fa-fw"></i><?= Helper\a(t('New user'), 'user', 'create') ?></li> + </ul> + <?php endif ?> + </div> + <section class="sidebar-container" id="user-section"> + + <?= Helper\template('user/sidebar', array('user' => $user)) ?> + + <div class="sidebar-content"> + <?= $user_content_for_layout ?> + </div> + </section> +</section>
\ No newline at end of file diff --git a/app/Template/user/login.php b/app/Template/user/login.php new file mode 100644 index 00000000..fea44a01 --- /dev/null +++ b/app/Template/user/login.php @@ -0,0 +1,32 @@ +<div class="form-login"> + + <?php if (isset($errors['login'])): ?> + <p class="alert alert-error"><?= Helper\escape($errors['login']) ?></p> + <?php endif ?> + + <form method="post" action="<?= Helper\u('user', 'check', array('redirect_query' => urlencode($redirect_query))) ?>"> + + <?= Helper\form_csrf() ?> + + <?= Helper\form_label(t('Username'), 'username') ?> + <?= Helper\form_text('username', $values, $errors, array('autofocus', 'required')) ?><br/> + + <?= Helper\form_label(t('Password'), 'password') ?> + <?= Helper\form_password('password', $values, $errors, array('required')) ?> + + <?= Helper\form_checkbox('remember_me', t('Remember Me'), 1) ?><br/> + + <?php if (GOOGLE_AUTH): ?> + <?= Helper\a(t('Login with my Google Account'), 'user', 'google') ?> + <?php endif ?> + + <?php if (GITHUB_AUTH): ?> + <?= Helper\a(t('Login with my GitHub Account'), 'user', 'gitHub') ?> + <?php endif ?> + + <div class="form-actions"> + <input type="submit" value="<?= t('Sign in') ?>" class="btn btn-blue"/> + </div> + </form> + +</div>
\ No newline at end of file diff --git a/app/Template/user/new.php b/app/Template/user/new.php new file mode 100644 index 00000000..af5824e0 --- /dev/null +++ b/app/Template/user/new.php @@ -0,0 +1,39 @@ +<section id="main"> + <div class="page-header"> + <ul> + <li><i class="fa fa-user fa-fw"></i><?= Helper\a(t('All users'), 'user', 'index') ?></li> + </ul> + </div> + <section> + <form method="post" action="<?= Helper\u('user', 'save') ?>" autocomplete="off"> + + <?= Helper\form_csrf() ?> + + <?= Helper\form_label(t('Username'), 'username') ?> + <?= Helper\form_text('username', $values, $errors, array('autofocus', 'required')) ?><br/> + + <?= Helper\form_label(t('Name'), 'name') ?> + <?= Helper\form_text('name', $values, $errors) ?><br/> + + <?= Helper\form_label(t('Email'), 'email') ?> + <?= Helper\form_email('email', $values, $errors) ?><br/> + + <?= Helper\form_label(t('Password'), 'password') ?> + <?= Helper\form_password('password', $values, $errors, array('required')) ?><br/> + + <?= Helper\form_label(t('Confirmation'), 'confirmation') ?> + <?= Helper\form_password('confirmation', $values, $errors, array('required')) ?><br/> + + <?= Helper\form_label(t('Default project'), 'default_project_id') ?> + <?= Helper\form_select('default_project_id', $projects, $values, $errors) ?><br/> + + <?= Helper\form_checkbox('is_admin', t('Administrator'), 1, isset($values['is_admin']) && $values['is_admin'] == 1 ? true : false) ?> + + <div class="form-actions"> + <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> + <?= t('or') ?> + <?= Helper\a(t('cancel'), 'user', 'index') ?> + </div> + </form> + </section> +</section>
\ No newline at end of file diff --git a/app/Template/user/notifications.php b/app/Template/user/notifications.php new file mode 100644 index 00000000..33da61fb --- /dev/null +++ b/app/Template/user/notifications.php @@ -0,0 +1,26 @@ +<div class="page-header"> + <h2><?= t('Email notifications') ?></h2> +</div> + +<form method="post" action="<?= Helper\u('user', 'notifications', array('user_id' => $user['id'])) ?>" autocomplete="off"> + + <?= Helper\form_csrf() ?> + + <?= Helper\form_checkbox('notifications_enabled', t('Enable email notifications'), '1', $notifications['notifications_enabled'] == 1) ?><br/> + + <?php if (! empty($projects)): ?> + <p><?= t('I want to receive notifications only for those projects:') ?><br/><br/></p> + + <div class="form-checkbox-group"> + <?php foreach ($projects as $project_id => $project_name): ?> + <?= Helper\form_checkbox('projects['.$project_id.']', $project_name, '1', isset($notifications['project_'.$project_id])) ?><br/> + <?php endforeach ?> + </div> + <?php endif ?> + + <div class="form-actions"> + <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> + <?= t('or') ?> + <?= Helper\a(t('cancel'), 'user', 'show', array('user_id' => $user['id'])) ?> + </div> +</form>
\ No newline at end of file diff --git a/app/Template/user/password.php b/app/Template/user/password.php new file mode 100644 index 00000000..76e0ab15 --- /dev/null +++ b/app/Template/user/password.php @@ -0,0 +1,26 @@ +<div class="page-header"> + <h2><?= t('Password modification') ?></h2> +</div> + +<form method="post" action="<?= Helper\u('user', 'password', array('user_id' => $user['id'])) ?>" autocomplete="off"> + + <?= Helper\form_hidden('id', $values) ?> + <?= Helper\form_csrf() ?> + + <div class="alert alert-error"> + <?= Helper\form_label(t('Current password for the user "%s"', Helper\get_username()), 'current_password') ?> + <?= Helper\form_password('current_password', $values, $errors) ?><br/> + </div> + + <?= Helper\form_label(t('New password for the user "%s"', Helper\get_username($user)), 'password') ?> + <?= Helper\form_password('password', $values, $errors) ?><br/> + + <?= Helper\form_label(t('Confirmation'), 'confirmation') ?> + <?= Helper\form_password('confirmation', $values, $errors) ?><br/> + + <div class="form-actions"> + <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> + <?= t('or') ?> + <?= Helper\a(t('cancel'), 'user', 'show', array('user_id' => $user['id'])) ?> + </div> +</form> diff --git a/app/Template/user/remove.php b/app/Template/user/remove.php new file mode 100644 index 00000000..5f58b631 --- /dev/null +++ b/app/Template/user/remove.php @@ -0,0 +1,13 @@ +<div class="page-header"> + <h2><?= t('Remove user') ?></h2> +</div> + +<div class="confirm"> + <p class="alert alert-info"><?= t('Do you really want to remove this user: "%s"?', $user['name'] ?: $user['username']) ?></p> + + <div class="form-actions"> + <?= Helper\a(t('Yes'), 'user', 'remove', array('user_id' => $user['id'], 'confirmation' => 'yes'), true, 'btn btn-red') ?> + <?= t('or') ?> + <?= Helper\a(t('cancel'), 'user', 'show', array('user_id' => $user['id'])) ?> + </div> +</div>
\ No newline at end of file diff --git a/app/Template/user/sessions.php b/app/Template/user/sessions.php new file mode 100644 index 00000000..d05d5b6d --- /dev/null +++ b/app/Template/user/sessions.php @@ -0,0 +1,26 @@ +<div class="page-header"> + <h2><?= t('Persistent connections') ?></h2> +</div> + +<?php if (empty($sessions)): ?> + <p class="alert"><?= t('No session.') ?></p> +<?php else: ?> + <table class="table-small"> + <tr> + <th><?= t('Creation date') ?></th> + <th><?= t('Expiration date') ?></th> + <th><?= t('IP address') ?></th> + <th><?= t('User agent') ?></th> + <th><?= t('Action') ?></th> + </tr> + <?php foreach($sessions as $session): ?> + <tr> + <td><?= dt('%B %e, %Y at %k:%M %p', $session['date_creation']) ?></td> + <td><?= dt('%B %e, %Y at %k:%M %p', $session['expiration']) ?></td> + <td><?= Helper\escape($session['ip']) ?></td> + <td><?= Helper\escape(Helper\summary($session['user_agent'])) ?></td> + <td><?= Helper\a(t('Remove'), 'user', 'removeSession', array('user_id' => $user['id'], 'id' => $session['id']), true) ?></td> + </tr> + <?php endforeach ?> + </table> +<?php endif ?> diff --git a/app/Template/user/show.php b/app/Template/user/show.php new file mode 100644 index 00000000..1c843751 --- /dev/null +++ b/app/Template/user/show.php @@ -0,0 +1,12 @@ +<div class="page-header"> + <h2><?= t('Summary') ?></h2> +</div> +<ul class="listing"> + <li><?= t('Username:') ?> <strong><?= Helper\escape($user['username']) ?></strong></li> + <li><?= t('Name:') ?> <strong><?= Helper\escape($user['name']) ?></strong></li> + <li><?= t('Email:') ?> <strong><?= Helper\escape($user['email']) ?></strong></li> + <li><?= t('Default project:') ?> <strong><?= (isset($user['default_project_id']) && isset($projects[$user['default_project_id']])) ? Helper\escape($projects[$user['default_project_id']]) : t('None'); ?></strong></li> + <li><?= t('Notifications:') ?> <strong><?= $user['notifications_enabled'] == 1 ? t('Enabled') : t('Disabled') ?></strong></li> + <li><?= t('Group:') ?> <strong><?= $user['is_admin'] ? t('Administrator') : t('Regular user') ?></strong></li> + <li><?= t('Account type:') ?> <strong><?= $user['is_ldap_user'] ? t('Remote') : t('Local') ?></strong></li> +</ul> diff --git a/app/Template/user/sidebar.php b/app/Template/user/sidebar.php new file mode 100644 index 00000000..0a1a0764 --- /dev/null +++ b/app/Template/user/sidebar.php @@ -0,0 +1,39 @@ +<div class="sidebar"> + <h2><?= t('Actions') ?></h2> + <ul> + <li> + <?= Helper\a(t('Summary'), 'user', 'show', array('user_id' => $user['id'])) ?> + </li> + + <?php if (Helper\is_admin() || Helper\is_current_user($user['id'])): ?> + <li> + <?= Helper\a(t('Edit profile'), 'user', 'edit', array('user_id' => $user['id'])) ?> + </li> + + <?php if ($user['is_ldap_user'] == 0): ?> + <li> + <?= Helper\a(t('Change password'), 'user', 'password', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + + <li> + <?= Helper\a(t('Email notifications'), 'user', 'notifications', array('user_id' => $user['id'])) ?> + </li> + <li> + <?= Helper\a(t('External accounts'), 'user', 'external', array('user_id' => $user['id'])) ?> + </li> + <li> + <?= Helper\a(t('Last logins'), 'user', 'last', array('user_id' => $user['id'])) ?> + </li> + <li> + <?= Helper\a(t('Persistent connections'), 'user', 'sessions', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + + <?php if (Helper\is_admin() && ! Helper\is_current_user($user['id'])): ?> + <li> + <?= Helper\a(t('Remove'), 'user', 'remove', array('user_id' => $user['id'])) ?> + </li> + <?php endif ?> + </ul> +</div>
\ No newline at end of file |