2020-06-21 21:31:30 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Controller;
|
|
|
|
|
|
|
|
use App\Controller\AppController;
|
|
|
|
use Cake\Utility\Hash;
|
|
|
|
use Cake\Utility\Text;
|
|
|
|
use \Cake\Database\Expression\QueryExpression;
|
|
|
|
use Cake\Http\Exception\NotFoundException;
|
|
|
|
use Cake\Http\Exception\MethodNotAllowedException;
|
|
|
|
use Cake\Http\Exception\ForbiddenException;
|
|
|
|
use Cake\Http\Exception\NotAcceptableException;
|
|
|
|
use Cake\Error\Debugger;
|
|
|
|
|
|
|
|
class AuthKeysController extends AppController
|
|
|
|
{
|
2021-09-10 11:55:54 +02:00
|
|
|
public $filterFields = ['Users.username', 'authkey', 'comment', 'Users.id'];
|
|
|
|
public $quickFilterFields = ['authkey', ['comment' => true]];
|
2021-11-24 01:32:05 +01:00
|
|
|
public $containFields = ['Users' => ['fields' => ['id', 'username']]];
|
2021-09-10 11:55:54 +02:00
|
|
|
|
2020-06-21 21:31:30 +02:00
|
|
|
public function index()
|
|
|
|
{
|
2021-11-24 01:32:05 +01:00
|
|
|
$currentUser = $this->ACL->getUser();
|
|
|
|
$conditions = [];
|
|
|
|
if (empty($currentUser['role']['perm_admin'])) {
|
|
|
|
$conditions['Users.organisation_id'] = $currentUser['organisation_id'];
|
|
|
|
if (empty($currentUser['role']['perm_org_admin'])) {
|
|
|
|
$conditions['Users.id'] = $currentUser['id'];
|
|
|
|
}
|
|
|
|
}
|
2020-06-21 21:31:30 +02:00
|
|
|
$this->CRUD->index([
|
2021-09-10 11:55:54 +02:00
|
|
|
'filters' => $this->filterFields,
|
|
|
|
'quickFilters' => $this->quickFilterFields,
|
|
|
|
'contain' => $this->containFields,
|
2021-11-24 01:32:05 +01:00
|
|
|
'exclude_fields' => ['authkey'],
|
|
|
|
'conditions' => $conditions,
|
|
|
|
'hidden' => []
|
2020-06-21 21:31:30 +02:00
|
|
|
]);
|
2021-01-11 16:28:07 +01:00
|
|
|
$responsePayload = $this->CRUD->getResponsePayload();
|
|
|
|
if (!empty($responsePayload)) {
|
|
|
|
return $responsePayload;
|
2020-06-21 21:31:30 +02:00
|
|
|
}
|
2020-08-07 21:47:04 +02:00
|
|
|
$this->set('metaGroup', $this->isAdmin ? 'Administration' : 'Cerebrate');
|
2020-06-21 21:31:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function delete($id)
|
|
|
|
{
|
2021-11-24 01:32:05 +01:00
|
|
|
$currentUser = $this->ACL->getUser();
|
|
|
|
$conditions = [];
|
|
|
|
if (empty($currentUser['role']['perm_admin'])) {
|
|
|
|
$conditions['Users.organisation_id'] = $currentUser['organisation_id'];
|
|
|
|
if (empty($currentUser['role']['perm_org_admin'])) {
|
|
|
|
$conditions['Users.id'] = $currentUser['id'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$this->CRUD->delete($id, ['conditions' => $conditions, 'contain' => 'Users']);
|
2021-01-11 16:28:07 +01:00
|
|
|
$responsePayload = $this->CRUD->getResponsePayload();
|
|
|
|
if (!empty($responsePayload)) {
|
|
|
|
return $responsePayload;
|
2020-06-21 21:31:30 +02:00
|
|
|
}
|
2020-08-07 21:47:04 +02:00
|
|
|
$this->set('metaGroup', $this->isAdmin ? 'Administration' : 'Cerebrate');
|
2020-06-21 21:31:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public function add()
|
|
|
|
{
|
2020-08-07 21:47:04 +02:00
|
|
|
$this->set('metaGroup', $this->isAdmin ? 'Administration' : 'Cerebrate');
|
|
|
|
$this->CRUD->add([
|
|
|
|
'displayOnSuccess' => 'authkey_display'
|
|
|
|
]);
|
2021-01-14 11:33:51 +01:00
|
|
|
$responsePayload = $this->CRUD->getResponsePayload([
|
|
|
|
'displayOnSuccess' => 'authkey_display'
|
|
|
|
]);
|
2021-01-11 16:28:07 +01:00
|
|
|
if (!empty($responsePayload)) {
|
|
|
|
return $responsePayload;
|
2020-06-21 21:31:30 +02:00
|
|
|
}
|
|
|
|
$this->loadModel('Users');
|
|
|
|
$dropdownData = [
|
|
|
|
'user' => $this->Users->find('list', [
|
|
|
|
'sort' => ['username' => 'asc']
|
|
|
|
])
|
|
|
|
];
|
|
|
|
$this->set(compact('dropdownData'));
|
|
|
|
}
|
|
|
|
}
|