Rewrite component to change user/group role
This commit is contained in:
@@ -132,7 +132,7 @@ class ProjectPermissionController extends BaseController
|
||||
if (! empty($project) && ! empty($values) && $this->projectUserRoleModel->changeUserRole($project['id'], $values['id'], $values['role'])) {
|
||||
$this->response->json(array('status' => 'ok'));
|
||||
} else {
|
||||
$this->response->json(array('status' => 'error'));
|
||||
$this->response->json(array('status' => 'error'), 500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
61
app/Template/project_permission/groups.php
Normal file
61
app/Template/project_permission/groups.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<div class="page-header">
|
||||
<h2><?= t('Allowed Groups') ?></h2>
|
||||
</div>
|
||||
|
||||
<?php if (empty($groups)): ?>
|
||||
<div class="alert"><?= t('No group have been allowed specifically.') ?></div>
|
||||
<?php else: ?>
|
||||
<table class="table-scrolling">
|
||||
<tr>
|
||||
<th class="column-50"><?= t('Group') ?></th>
|
||||
<th><?= t('Role') ?></th>
|
||||
<?php if ($project['is_private'] == 0): ?>
|
||||
<th class="column-15"><?= t('Actions') ?></th>
|
||||
<?php endif ?>
|
||||
</tr>
|
||||
<?php foreach ($groups as $group): ?>
|
||||
<tr>
|
||||
<td><?= $this->text->e($group['name']) ?></td>
|
||||
<td>
|
||||
<?= $this->app->component('project-select-role', array(
|
||||
'roles' => $roles,
|
||||
'role' => $group['role'],
|
||||
'id' => $group['id'],
|
||||
'url' => $this->url->to('ProjectPermissionController', 'changeGroupRole', array('project_id' => $project['id'])),
|
||||
)) ?>
|
||||
</td>
|
||||
<td>
|
||||
<i class="fa fa-trash-o" aria-hidden="true"></i>
|
||||
<?= $this->url->link(t('Remove'), 'ProjectPermissionController', 'removeGroup', array('project_id' => $project['id'], 'group_id' => $group['id']), true) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($project['is_private'] == 0): ?>
|
||||
<div class="listing">
|
||||
<form method="post" action="<?= $this->url->href('ProjectPermissionController', 'addGroup', array('project_id' => $project['id'])) ?>" autocomplete="off" class="form-inline">
|
||||
<?= $this->form->csrf() ?>
|
||||
<?= $this->form->hidden('project_id', array('project_id' => $project['id'])) ?>
|
||||
<?= $this->form->hidden('group_id', $values) ?>
|
||||
<?= $this->form->hidden('external_id', $values) ?>
|
||||
|
||||
<?= $this->form->label(t('Group Name'), 'name') ?>
|
||||
<?= $this->form->text('name', $values, $errors, array(
|
||||
'required',
|
||||
'placeholder="'.t('Enter group name...').'"',
|
||||
'title="'.t('Enter group name...').'"',
|
||||
'data-dst-field="group_id"',
|
||||
'data-dst-extra-field="external_id"',
|
||||
'data-search-url="'.$this->url->href('GroupAjaxController', 'autocomplete').'"',
|
||||
),
|
||||
'autocomplete') ?>
|
||||
|
||||
<?= $this->form->select('role', $roles, $values, $errors) ?>
|
||||
|
||||
<button type="submit" class="btn btn-blue"><?= t('Add') ?></button>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
@@ -5,125 +5,21 @@
|
||||
<?php if ($project['is_everybody_allowed']): ?>
|
||||
<div class="alert"><?= t('Everybody have access to this project.') ?></div>
|
||||
<?php else: ?>
|
||||
<?= $this->render('project_permission/users', array(
|
||||
'project' => $project,
|
||||
'roles' => $roles,
|
||||
'users' => $users,
|
||||
'errors' => $errors,
|
||||
'values' => $values,
|
||||
)) ?>
|
||||
|
||||
<?php if (empty($users)): ?>
|
||||
<div class="alert"><?= t('No user have been allowed specifically.') ?></div>
|
||||
<?php else: ?>
|
||||
<table class="table-scrolling">
|
||||
<tr>
|
||||
<th class="column-50"><?= t('User') ?></th>
|
||||
<th><?= t('Role') ?></th>
|
||||
<?php if ($project['is_private'] == 0): ?>
|
||||
<th class="column-15"><?= t('Actions') ?></th>
|
||||
<?php endif ?>
|
||||
</tr>
|
||||
<?php foreach ($users as $user): ?>
|
||||
<tr>
|
||||
<td><?= $this->text->e($user['name'] ?: $user['username']) ?></td>
|
||||
<td>
|
||||
<?= $this->form->select(
|
||||
'role-'.$user['id'],
|
||||
$roles,
|
||||
array('role-'.$user['id'] => $user['role']),
|
||||
array(),
|
||||
array('data-url="'.$this->url->href('ProjectPermissionController', 'changeUserRole', array('project_id' => $project['id'])).'"', 'data-id="'.$user['id'].'"'),
|
||||
'project-change-role'
|
||||
) ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $this->url->link(t('Remove'), 'ProjectPermissionController', 'removeUser', array('project_id' => $project['id'], 'user_id' => $user['id']), true) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($project['is_private'] == 0): ?>
|
||||
<div class="listing">
|
||||
<form method="post" action="<?= $this->url->href('ProjectPermissionController', 'addUser', array('project_id' => $project['id'])) ?>" autocomplete="off" class="form-inline">
|
||||
<?= $this->form->csrf() ?>
|
||||
<?= $this->form->hidden('project_id', array('project_id' => $project['id'])) ?>
|
||||
<?= $this->form->hidden('user_id', $values) ?>
|
||||
|
||||
<?= $this->form->label(t('Name'), 'name') ?>
|
||||
<?= $this->form->text('name', $values, $errors, array(
|
||||
'required',
|
||||
'placeholder="'.t('Enter user name...').'"',
|
||||
'title="'.t('Enter user name...').'"',
|
||||
'data-dst-field="user_id"',
|
||||
'data-search-url="'.$this->url->href('UserAjaxController', 'autocomplete').'"',
|
||||
),
|
||||
'autocomplete') ?>
|
||||
|
||||
<?= $this->form->select('role', $roles, $values, $errors) ?>
|
||||
|
||||
<button type="submit" class="btn btn-blue"><?= t('Add') ?></button>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<div class="page-header">
|
||||
<h2><?= t('Allowed Groups') ?></h2>
|
||||
</div>
|
||||
|
||||
<?php if (empty($groups)): ?>
|
||||
<div class="alert"><?= t('No group have been allowed specifically.') ?></div>
|
||||
<?php else: ?>
|
||||
<table class="table-scrolling">
|
||||
<tr>
|
||||
<th class="column-50"><?= t('Group') ?></th>
|
||||
<th><?= t('Role') ?></th>
|
||||
<?php if ($project['is_private'] == 0): ?>
|
||||
<th class="column-15"><?= t('Actions') ?></th>
|
||||
<?php endif ?>
|
||||
</tr>
|
||||
<?php foreach ($groups as $group): ?>
|
||||
<tr>
|
||||
<td><?= $this->text->e($group['name']) ?></td>
|
||||
<td>
|
||||
<?= $this->form->select(
|
||||
'role-'.$group['id'],
|
||||
$roles,
|
||||
array('role-'.$group['id'] => $group['role']),
|
||||
array(),
|
||||
array('data-url="'.$this->url->href('ProjectPermissionController', 'changeGroupRole', array('project_id' => $project['id'])).'"', 'data-id="'.$group['id'].'"'),
|
||||
'project-change-role'
|
||||
) ?>
|
||||
</td>
|
||||
<td>
|
||||
<?= $this->url->link(t('Remove'), 'ProjectPermissionController', 'removeGroup', array('project_id' => $project['id'], 'group_id' => $group['id']), true) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($project['is_private'] == 0): ?>
|
||||
<div class="listing">
|
||||
<form method="post" action="<?= $this->url->href('ProjectPermissionController', 'addGroup', array('project_id' => $project['id'])) ?>" autocomplete="off" class="form-inline">
|
||||
<?= $this->form->csrf() ?>
|
||||
<?= $this->form->hidden('project_id', array('project_id' => $project['id'])) ?>
|
||||
<?= $this->form->hidden('group_id', $values) ?>
|
||||
<?= $this->form->hidden('external_id', $values) ?>
|
||||
|
||||
<?= $this->form->label(t('Group Name'), 'name') ?>
|
||||
<?= $this->form->text('name', $values, $errors, array(
|
||||
'required',
|
||||
'placeholder="'.t('Enter group name...').'"',
|
||||
'title="'.t('Enter group name...').'"',
|
||||
'data-dst-field="group_id"',
|
||||
'data-dst-extra-field="external_id"',
|
||||
'data-search-url="'.$this->url->href('GroupAjaxController', 'autocomplete').'"',
|
||||
),
|
||||
'autocomplete') ?>
|
||||
|
||||
<?= $this->form->select('role', $roles, $values, $errors) ?>
|
||||
|
||||
<button type="submit" class="btn btn-blue"><?= t('Add') ?></button>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?= $this->render('project_permission/groups', array(
|
||||
'project' => $project,
|
||||
'roles' => $roles,
|
||||
'groups' => $groups,
|
||||
'errors' => $errors,
|
||||
'values' => $values,
|
||||
)) ?>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($project['is_private'] == 0): ?>
|
||||
|
||||
54
app/Template/project_permission/users.php
Normal file
54
app/Template/project_permission/users.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php if (empty($users)): ?>
|
||||
<div class="alert"><?= t('No user have been allowed specifically.') ?></div>
|
||||
<?php else: ?>
|
||||
<table class="table-scrolling">
|
||||
<tr>
|
||||
<th class="column-50"><?= t('User') ?></th>
|
||||
<th><?= t('Role') ?></th>
|
||||
<?php if ($project['is_private'] == 0): ?>
|
||||
<th class="column-15"><?= t('Actions') ?></th>
|
||||
<?php endif ?>
|
||||
</tr>
|
||||
<?php foreach ($users as $user): ?>
|
||||
<tr>
|
||||
<td><?= $this->text->e($user['name'] ?: $user['username']) ?></td>
|
||||
<td>
|
||||
<?= $this->app->component('project-select-role', array(
|
||||
'roles' => $roles,
|
||||
'role' => $user['role'],
|
||||
'id' => $user['id'],
|
||||
'url' => $this->url->to('ProjectPermissionController', 'changeUserRole', array('project_id' => $project['id'])),
|
||||
)) ?>
|
||||
</td>
|
||||
<td>
|
||||
<i class="fa fa-trash-o" aria-hidden="true"></i>
|
||||
<?= $this->url->link(t('Remove'), 'ProjectPermissionController', 'removeUser', array('project_id' => $project['id'], 'user_id' => $user['id']), true) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if ($project['is_private'] == 0): ?>
|
||||
<div class="listing">
|
||||
<form method="post" action="<?= $this->url->href('ProjectPermissionController', 'addUser', array('project_id' => $project['id'])) ?>" autocomplete="off" class="form-inline">
|
||||
<?= $this->form->csrf() ?>
|
||||
<?= $this->form->hidden('project_id', array('project_id' => $project['id'])) ?>
|
||||
<?= $this->form->hidden('user_id', $values) ?>
|
||||
|
||||
<?= $this->form->label(t('Name'), 'name') ?>
|
||||
<?= $this->form->text('name', $values, $errors, array(
|
||||
'required',
|
||||
'placeholder="'.t('Enter user name...').'"',
|
||||
'title="'.t('Enter user name...').'"',
|
||||
'data-dst-field="user_id"',
|
||||
'data-search-url="'.$this->url->href('UserAjaxController', 'autocomplete').'"',
|
||||
),
|
||||
'autocomplete') ?>
|
||||
|
||||
<?= $this->form->select('role', $roles, $values, $errors) ?>
|
||||
|
||||
<button type="submit" class="btn btn-blue"><?= t('Add') ?></button>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
Reference in New Issue
Block a user