Initial import of Din Beste Hjelper site
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
This commit is contained in:
@@ -0,0 +1,182 @@
|
||||
<?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");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user