Skip to content

Commit

Permalink
User and Admin event separations
Browse files Browse the repository at this point in the history
  • Loading branch information
catdesu committed Mar 12, 2024
1 parent a6dec34 commit 216ad80
Show file tree
Hide file tree
Showing 7 changed files with 74 additions and 68 deletions.
7 changes: 7 additions & 0 deletions orif/timbreuse/Config/Routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,13 @@
$routes->group('event-plannings', function($routes) {
$routes->get('', '\Timbreuse\Controllers\PersonalEventPlannings::index');
$routes->get('(:num)', '\Timbreuse\Controllers\PersonalEventPlannings::index/$1');

$routes->get('personal/create', '\Timbreuse\Controllers\PersonalEventPlannings::createPersonal');
$routes->post('personal/create', '\Timbreuse\Controllers\PersonalEventPlannings::createPersonal');
$routes->get('personal/create/(:num)', '\Timbreuse\Controllers\PersonalEventPlannings::createPersonal/$1');

$routes->get('delete/(:num)', '\Timbreuse\Controllers\PersonalEventPlannings::delete/$1');
$routes->post('delete/(:num)/(:num)', '\Timbreuse\Controllers\PersonalEventPlannings::delete/$1/$2');
});

// Event series routes
Expand Down
37 changes: 0 additions & 37 deletions orif/timbreuse/Controllers/EventPlannings.php
Original file line number Diff line number Diff line change
Expand Up @@ -117,41 +117,4 @@ public function createGroup(?int $userGroupId = null) : string|RedirectResponse
'Timbreuse\Views\eventPlannings\group\save_form',
'Timbreuse\Views\eventPlannings\get_event_series_form'], $data);
}

/**
* Display the delete form and delete the corresponding event planning
*
* @param int $id
* @param int $action
* @return string|RedirectResponse
*/
public function delete(int $id, int $action = 0) : string|RedirectResponse {
$eventPlanning = $this->eventPlanningsModel->find($id);

if (!$eventPlanning) {
return redirect()->to(base_url('admin/event-plannings'));
}

$data = [
'title' => lang('tim_lang.delete_event_planning'),
'eventPlanning' => $eventPlanning
];

switch ($action) {
case 0:
return $this->display_view('Timbreuse\Views\eventPlannings\confirm_delete', $data);

case 1:
// In case soft delete is implemented
break;

case 2:
if (isset($_POST) && !empty($_POST) && !is_null($_POST['confirmation'])) {
$this->eventPlanningsModel->delete($id, true);
}
break;
}

return redirect()->to(base_url('admin/event-plannings'));
}
}
74 changes: 51 additions & 23 deletions orif/timbreuse/Controllers/PersonalEventPlannings.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
use Psr\Log\LoggerInterface;
use Timbreuse\Models\EventPlanningsModel;
use Timbreuse\Models\EventTypesModel;
use Timbreuse\Models\UserGroupsModel;
use Timbreuse\Models\UsersModel;
use User\Models\User_model;

Expand Down Expand Up @@ -40,7 +39,6 @@ public function initController(
// Load required models
$this->eventPlanningsModel = new EventPlanningsModel();
$this->eventTypesModel = new EventTypesModel();
$this->userGroupsModel = new UserGroupsModel();
$this->userSyncModel = new UsersModel();
$this->userModel = new User_model();
}
Expand All @@ -51,18 +49,16 @@ public function initController(
* @return string
*/
public function index(?int $timUserId = null) : string {
if (is_null($timUserId) && !url_is('*admin*')) {
$user = $this->userModel
->join('access_tim_user', 'access_tim_user.id_ci_user = user.id', 'left')
->find($_SESSION['user_id']);
$isAdminView = $_SESSION['user_access'] === config('\User\Config\UserConfig')->access_lvl_admin;

$timUserId = $user['id_user'] ?? null;
if (is_null($timUserId)) {
$timUserId = $this->getConnectedTimuserId();
}

$data['title'] = lang('tim_lang.event_plannings_list');
$data['list_title'] = ucfirst(lang('tim_lang.event_plannings_list'));
$data['isVisible'] = true;
$data['route'] = '';
$data['route'] = $isAdminView ? "AdminLogs/time_list/{$timUserId}" : 'PersoLogs/perso_time';

$data['columns'] = [
'event_date' => ucfirst(lang('tim_lang.field_event_date')),
Expand All @@ -83,8 +79,8 @@ public function index(?int $timUserId = null) : string {
];
}, $eventPlannings);

$data['url_create'] = "event-plannings/group/create";
$data['url_update'] = 'event-plannings/update/';
$data['url_create'] = 'event-plannings/personal/create/' . ($isAdminView ? $timUserId : '');
$data['url_update'] = 'event-plannings/personal/update/';
$data['url_delete'] = 'event-plannings/delete/';

return $this->display_view([
Expand All @@ -98,19 +94,31 @@ public function index(?int $timUserId = null) : string {
* @return string|RedirectResponse
*/
public function createPersonal(?int $userId = null) : string|RedirectResponse {
$views = [
'Timbreuse\Views\eventPlannings\personal\save_form',
'Timbreuse\Views\eventPlannings\get_event_series_form'
];
$isAdminView = url_is('*admin*');
$route = $_SESSION['user_access'] === config('\User\Config\UserConfig')->access_lvl_admin ?
"event-plannings/{$userId}" :
'event-plannings';

$eventTypes = $this->eventTypesModel->where('is_personal_event_type', true)->findAll();
$user = null;

if (!is_null($userId)) {
$user = $this->userSyncModel->find($userId);
if (is_null($userId) && !$isAdminView) {
$userId = $this->getConnectedTimuserId();
} else if (is_null($userId)) {
$userId = 0;
}

$user = $this->userSyncModel->find($userId);

$data = [
'title' => lang('tim_lang.create_event_planning_title'),
'eventPlanning' => null,
'sessionEventPlanning' => session()->get('eventPlanningPostData'),
'eventTypes' => $this->mapForSelectForm($eventTypes),
'user' => $user
'user' => $user,
'route' => $route
];

session()->remove('eventPlanningPostData');
Expand All @@ -123,14 +131,15 @@ public function createPersonal(?int $userId = null) : string|RedirectResponse {
$data['errors'] = $this->getPostDataAndSaveEventPlanning();

if (empty($data['errors'])) {
return redirect()->to(base_url('admin/event-plannings'));
return redirect()->to(base_url($route));
}
}

return $this->display_view([
'Timbreuse\Views\eventPlannings\event_tabs',
'Timbreuse\Views\eventPlannings\personal\save_form',
'Timbreuse\Views\eventPlannings\get_event_series_form'], $data);
if ($isAdminView) {
array_unshift($views, 'Timbreuse\Views\eventPlannings\event_tabs');
}

return $this->display_view($views, $data);
}

/**
Expand All @@ -141,15 +150,26 @@ public function createPersonal(?int $userId = null) : string|RedirectResponse {
* @return string|RedirectResponse
*/
public function delete(int $id, int $action = 0) : string|RedirectResponse {
$isAdminView = url_is('*admin*');
$route = $isAdminView ?
"admin/event-plannings" :
'event-plannings';

$eventPlanning = $this->eventPlanningsModel->find($id);

if (!$eventPlanning) {
return redirect()->to(base_url('admin/event-plannings'));
return redirect()->to(base_url($route));
}

if (!((int)$eventPlanning['fk_user_sync_id'] != $this->getConnectedTimuserId()
|| $_SESSION['user_access'] >= config('\User\Config\UserConfig')->access_lvl_admin)) {
return redirect()->to(base_url($route));
}

$data = [
'title' => lang('tim_lang.delete_event_planning'),
'eventPlanning' => $eventPlanning
'eventPlanning' => $eventPlanning,
'route' => $route
];

switch ($action) {
Expand All @@ -167,7 +187,7 @@ public function delete(int $id, int $action = 0) : string|RedirectResponse {
break;
}

return redirect()->to(base_url('admin/event-plannings'));
return redirect()->to(base_url($route));
}

/**
Expand Down Expand Up @@ -223,4 +243,12 @@ protected function checkButtonClicked(string $buttonName) : bool {
protected function savePostDataToSession(string $key) : void {
session()->set($key, $this->request->getPost());
}

protected function getConnectedTimuserId() : int|null {
$user = $this->userModel
->join('access_tim_user', 'id_ci_user = id', 'left')
->find($_SESSION['user_id']);

return $user['id_user'] ?? null;
}
}
3 changes: 2 additions & 1 deletion orif/timbreuse/Controllers/UserGroups.php
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,7 @@ public function delete(int $id, int $action = 0) : string|RedirectResponse {
public function selectUserGroup(?int $id = null) : string {
$filters = $_GET;

$data['route'] = $filters['path'];
$data['title'] = lang('tim_lang.user_group_list');
$data['list_title'] = ucfirst(lang('tim_lang.user_group_list'));

Expand All @@ -207,7 +208,7 @@ public function selectUserGroup(?int $id = null) : string {

$data['url_update'] = $filters['path'];

return $this->display_view('Common\Views\items_list', $data);
return $this->display_view(['Timbreuse\Views\common\return_button', 'Common\Views\items_list'], $data);
}

/**
Expand Down
3 changes: 2 additions & 1 deletion orif/timbreuse/Controllers/Users.php
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,7 @@ public function selectUser() : string {
$model = model(UsersModel::class);
$filters = $_GET;

$data['route'] = $filters['path'];
$data['title'] = lang('tim_lang.select_user');
$data['list_title'] = ucfirst(lang('tim_lang.select_user'));

Expand All @@ -357,7 +358,7 @@ public function selectUser() : string {

$data['url_update'] = $filters['path'];

return $this->display_view('Common\Views\items_list', $data);
return $this->display_view(['Timbreuse\Views\common\return_button', 'Common\Views\items_list'], $data);
}

public function getLinkedUserList(int $groupId) : array {
Expand Down
2 changes: 1 addition & 1 deletion orif/timbreuse/Views/eventPlannings/confirm_delete.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<h4><?= lang('user_lang.what_to_do') ?></h4>
</div>
<div class="text-right">
<a href="<?= base_url('admin/event-plannings'); ?>" class="btn btn-secondary">
<a href="<?= base_url($route); ?>" class="btn btn-secondary">
<?= lang('common_lang.btn_cancel'); ?>
</a>
<button class="btn btn-danger" data-toggle="modal" data-target="#confirmDeleteEventType">
Expand Down
16 changes: 11 additions & 5 deletions orif/timbreuse/Views/eventPlannings/personal/save_form.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
<?php $update = boolval(isset($eventPlanning)); ?>
<?php
$update = isset($eventPlanning);
$eventPlanningId = $eventPlanning['id'] ?? 0;
?>

<div class="container">
<!-- TITLE -->
<div class="row mt-3">
Expand All @@ -8,8 +12,8 @@
</div>

<!-- FORM OPEN -->
<?= form_open('admin/event-plannings/personal/' . ($update ? "update/{$eventPlanning['id']}" : 'create'), [], [
'id' => $eventPlanning['id'] ?? 0
<?= form_open('event-plannings/personal/' . ($update ? "update/{$eventPlanningId}" : "create"), [], [
'id' => $eventPlanningId
]);
?>
<!-- FORM FIELDS -->
Expand All @@ -31,7 +35,9 @@
'class' => 'form-control', 'id' => 'linked_user', 'disabled' => ''
]); ?>
<span class="text-danger"><?= isset($errors['end_time']) ? esc($errors['end_time']) : ''; ?></span>
<?= form_submit('select_linked_user', lang('tim_lang.btn_select_linked_user'), ['class' => 'mt-3 w-100 btn btn-secondary']); ?>
<?php if (url_is('*admin*')) : ?>
<?= form_submit('select_linked_user', lang('tim_lang.btn_select_linked_user'), ['class' => 'mt-3 w-100 btn btn-secondary']); ?>
<?php endif; ?>
</div>
</div>
</div>
Expand Down Expand Up @@ -108,7 +114,7 @@
<!-- FORM BUTTONS -->
<div class="row mb-3 mt-3">
<div class="col text-right">
<a class="btn btn-secondary" href="<?= base_url('admin/event-plannings'); ?>"><?= lang('common_lang.btn_cancel'); ?></a>
<a class="btn btn-secondary" href="<?= base_url($route); ?>"><?= lang('common_lang.btn_cancel'); ?></a>
<?= form_submit('save', lang('common_lang.btn_save'), ['class' => 'btn btn-primary']); ?>
</div>
</div>
Expand Down

0 comments on commit 216ad80

Please sign in to comment.