CodeIgniter 3 app for dinbestehjelper.no. Excludes vendor/, local backup folders (new/, archive/, archived/) and DB dumps (*.sql) via .gitignore. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P16ttGUge8zj91dm6WrmEb
183 lines
9.7 KiB
PHP
183 lines
9.7 KiB
PHP
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
class ModuleManagement extends CI_Controller {
|
|
|
|
/**
|
|
* Index Page for this controller.
|
|
*
|
|
* Maps to the following URL
|
|
* http://example.com/index.php/welcome
|
|
* - or -
|
|
* http://example.com/index.php/welcome/index
|
|
* - or -
|
|
* Since this controller is set as the default controller in
|
|
* config/routes.php, it's displayed at http://example.com/
|
|
*
|
|
* So any other public methods not prefixed with an underscore will
|
|
* map to /index.php/welcome/<method_name>
|
|
* @see https://codeigniter.com/user_guide/general/urls.html
|
|
*/
|
|
public function index()
|
|
{
|
|
$this->load->helper('url');
|
|
$this->load->model('User_model');
|
|
$this->load->model('Log_model');
|
|
$this->load->model('Module_model');
|
|
|
|
if(isset($_SESSION['username'])){
|
|
$data['currentUser'] = $this->User_model->getUserByUsername($_SESSION['username']);
|
|
|
|
//check module is available for user
|
|
$currentModule = $this->Module_model->getModuleBySlug('module-management');
|
|
|
|
if($this->User_model->is_user_admin($_SESSION['username']) || $this->Module_model->is_module_available($currentModule->module_id, $data['currentUser']->user_id)){
|
|
$data['users'] = $this->User_model->getAllUser();
|
|
$data['modules'] = $this->Module_model->getAllModule();
|
|
$data['privileges'] = $this->User_model->getAllUserGroup();
|
|
|
|
if(isset($_POST['updatePermission'])){
|
|
|
|
//set user privileges
|
|
foreach($data['modules'] as $moduleItem){
|
|
$moduleUserArray = array();
|
|
foreach($data['users'] as $userItem){
|
|
if($_POST['module_'.$moduleItem->module_id.'_user_'.$userItem->user_id]){
|
|
$moduleUserArray[] = $userItem->user_id;
|
|
}
|
|
}
|
|
|
|
if(is_array($moduleUserArray)){
|
|
$this->Module_model->updateModule('permission_ids', $moduleItem->module_id, $moduleUserArray);
|
|
$usernames = array();
|
|
foreach($moduleUserArray as $moduleUserItem){
|
|
$usernames[] = $this->User_model->getUserById($moduleUserItem)->username;
|
|
}
|
|
|
|
if(!empty($usernames)){
|
|
$this->Log_model->addLog('change_module_privileges', 'Módosult a '.$moduleItem->module_name.' felhasználó szintű jogosultság kiosztás('.implode(', ', $usernames).') felhasználókra', $_SESSION['username']);
|
|
}
|
|
else{
|
|
$this->Log_model->addLog('change_module_privileges', 'Módosult a '.$moduleItem->module_name.' felhasználó szintű jogosultság kiosztása, jelenleg nincs megosztva', $_SESSION['username']);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
//set group privilegies
|
|
foreach($data['modules'] as $moduleItem){
|
|
$moduleGroupArray = array();
|
|
foreach($data['privileges'] as $groupItem){
|
|
|
|
if($_POST['module_'.$moduleItem->module_id.'_group_'.$groupItem->permission_id]){
|
|
$moduleGroupArray[] = $groupItem->permission_id;
|
|
}
|
|
}
|
|
|
|
if(is_array($moduleGroupArray)){
|
|
$this->Module_model->updateModule('permission_group_ids',$moduleItem->module_id, $moduleGroupArray);
|
|
$groupNames = array();
|
|
foreach($moduleGroupArray as $moduleGroupItem){
|
|
$groupNames[] = $this->User_model->getpermissionById($moduleGroupItem)->permission_name;
|
|
}
|
|
if(!empty($groupNames)){
|
|
$this->Log_model->addLog('change_module_privileges', 'Módosult a '.$moduleItem->module_name.' csoport szintű jogosultság kiosztás ('.(implode(', ',$groupNames)).') csoportokra', $_SESSION['username']);
|
|
}
|
|
else{
|
|
$this->Log_model->addLog('change_module_privileges', 'Módosult a '.$moduleItem->module_name.' csoport szintű jogosultság kiosztása, jelenleg nincs megosztva', $_SESSION['username']);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
//usersPrivilegesView
|
|
$userIndex = 1;
|
|
if(is_array($data['users'])){
|
|
$data['usersPrivilegesView'] = '';
|
|
foreach($data['users'] as $userItem){
|
|
|
|
$data['usersPrivilegesView'] .= '<tr>';
|
|
$data['usersPrivilegesView'] .= '<td>'.$userIndex.'.</td>';
|
|
$data['usersPrivilegesView'] .= '<td style="text-align:left;max-width:auto;">'.$userItem->fullname.'</td>';
|
|
$data['usersPrivilegesView'] .= '<td style="text-align:left;max-width:auto;">'.$userItem->username.'</td>';
|
|
|
|
if(is_array($data['modules'])){
|
|
foreach($data['modules'] as $moduleItem){
|
|
if($userItem->permission_slug == 'admin'){
|
|
$data['usersPrivilegesView'] .= '<td><input type="hidden" name="module_'.$moduleItem->module_id.'_user_'.$userItem->user_id.'" value="0"><input type="checkbox" name="module_'.$moduleItem->module_id.'_user_'.$userItem->user_id.'" value="1" checked disabled/></td>';
|
|
|
|
}
|
|
else{
|
|
$data['usersPrivilegesView'] .= '<td><input type="hidden" name="module_'.$moduleItem->module_id.'_user_'.$userItem->user_id.'" value="0"><input type="checkbox" name="module_'.$moduleItem->module_id.'_user_'.$userItem->user_id.'" value="1" ';
|
|
$data['usersPrivilegesView'] .= $this->Module_model->is_userId_available_in_module($moduleItem->module_id, $userItem->user_id)?'checked':'';
|
|
$data['usersPrivilegesView'] .= '/></td>';
|
|
|
|
}
|
|
}
|
|
}
|
|
$userIndex++;
|
|
$data['usersPrivilegesView'] .= '</tr>';
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//groupModuleView
|
|
$groupIndex = 1;
|
|
foreach($data['privileges'] as $privilegeItem){
|
|
if($privilegeItem->permission_slug == 'admin'){
|
|
$data['groupModuleView'] = '<tr>';
|
|
$data['groupModuleView'] .= '<td>'.$groupIndex.'.</td>';
|
|
$data['groupModuleView'] .= '<td style="text-align:left;max-width:auto;">'.$privilegeItem->permission_name.'</td>';
|
|
|
|
if(is_array($data['modules'])){
|
|
foreach($data['modules'] as $moduleItem){
|
|
$data['groupModuleView'] .= '<td><input type="hidden" name="module_'.$moduleItem->module_id.'_group_'.$privilegeItem->permission_id.'" value="0"><input type="checkbox" name="module_'.$moduleItem->module_id.'_group_'.$privilegeItem->permission_id.'" value="1" checked disabled/></td>';
|
|
}
|
|
}
|
|
$groupIndex++;
|
|
$data['groupModuleView'] .= '</tr>';
|
|
}
|
|
else{
|
|
$data['groupModuleView'] .= '<tr>';
|
|
$data['groupModuleView'] .= '<td>'.$groupIndex.'.</td>';
|
|
$data['groupModuleView'] .= '<td style="text-align:left;max-width:auto;">'.$privilegeItem->permission_name.'</td>';
|
|
if(is_array($data['modules'])){
|
|
foreach($data['modules'] as $moduleItem){
|
|
$data['groupModuleView'] .= '<td><input type="hidden" name="module_'.$moduleItem->module_id.'_group_'.$privilegeItem->permission_id.'" value="0"><input type="checkbox" name="module_'.$moduleItem->module_id.'_group_'.$privilegeItem->permission_id.'" value="1" ';
|
|
$data['groupModuleView'] .= $this->Module_model->is_groupId_available_in_module($moduleItem->module_id,$privilegeItem->permission_id)?' checked':'';
|
|
$data['groupModuleView'] .= '/></td>';
|
|
}
|
|
}
|
|
$groupIndex++;
|
|
$data['groupModuleView'] .= '</tr>';
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//get available modules for menu
|
|
if($this->User_model->is_user_admin($_SESSION['username'])){
|
|
$data['activeModules'] = $this->Module_model->getAllModule();
|
|
}
|
|
else{
|
|
$data['activeModules'] = $this->Module_model->getUserModules($data['currentUser']->user_id);
|
|
}
|
|
|
|
$this->load->view('modules/module-management/module-management', $data);
|
|
}
|
|
else{
|
|
header('Location:'.site_url().'404-page-not-found');
|
|
}
|
|
|
|
|
|
}
|
|
else{
|
|
header("Location:".SITEURL."login");
|
|
|
|
}
|
|
}
|
|
|
|
}
|