Files
Astral04andClaude Opus 4.8 4e1a69c8d4 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
2026-08-04 12:52:43 +00:00

234 lines
8.1 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class UserManagement 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']);
$data['activeModules'] = $this->Module_model->getModulesByPermissionSlug($data['currentUser']->permission_slug);
$data['message'] = '';
$data['message_class'] = '';
$data['pageTitle'] = 'Felhasználó kezelése';
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);
}
$selectedModule = $this->Module_model->getModuleBySlug('user-management');
if($this->Module_model->user_can_access_this_module($selectedModule->module_slug, $data['currentUser']->user_id) || $data['currentUser']->permission_slug == 'admin'){
//delete user
if(isset($_GET['delete-user'])){
$selectedUser = $this->User_model->getUserById($_GET['delete-user']);
$this->Log_model->addLog('users', $data['currentUser']->username.' törölte a(z) '.$selectedUser->username.' felhasználót', $data['currentUser']->username);
$this->User_model->deleteUser($_GET['delete-user']);
header('Location:'.site_url().'user-management');
}
$data['users'] = $this->User_model->getAllUser();
$this->load->view('pages/user-management',$data);
}
else{
header("Location:".SITEURL."dashboard");
}
}
else{
header("Location:".SITEURL."login");
}
}
public function add_new_user(){
$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']);
$data['activeModules'] = $this->Module_model->getModulesByPermissionSlug($data['currentUser']->permission_slug);
$data['message'] = '';
$data['message_class'] = '';
$data['pageTitle'] = 'Felhasználó létrehozása';
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);
}
$selectedModule = $this->Module_model->getModuleBySlug('user-management');
if($this->Module_model->user_can_access_this_module($selectedModule->module_slug, $data['currentUser']->user_id) || $data['currentUser']->permission_slug == 'admin'){
$data['permissions'] = $this->User_model->getAllUserPermission();
$this->load->view('pages/add-new-user',$data);
}
else{
header("Location:".SITEURL."home");
}
}
else{
header("Location:".SITEURL."login");
}
}
public function modify_user($user_id=''){
$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']);
$data['activeModules'] = $this->Module_model->getModulesByPermissionSlug($data['currentUser']->permission_slug);
$data['message'] = '';
$data['message_class'] = '';
$data['pageTitle'] = 'Felhasználók';
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);
}
$selectedModule = $this->Module_model->getModuleBySlug('user-management');
if($this->Module_model->user_can_access_this_module($selectedModule->module_slug, $data['currentUser']->user_id) || $data['currentUser']->permission_slug == 'admin'){
$data['selectedUser'] = $this->User_model->getUserById($user_id);
$data['permissions'] = $this->User_model->getAllUserPermission();
$this->load->view('pages/modify-user',$data);
}
else{
header("Location:".SITEURL."home");
}
}
else{
header("Location:".SITEURL."login");
}
}
public function user_process(){
$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']);
$data['activeModules'] = $this->Module_model->getModulesByPermissionSlug($data['currentUser']->permission_slug);
$data['message'] = '';
$data['message_class'] = '';
$data['pageTitle'] = 'Felhasználók';
$selectedModule = $this->Module_model->getModuleBySlug('user-management');
if($this->Module_model->user_can_access_this_module($selectedModule->module_slug, $data['currentUser']->user_id) || $data['currentUser']->permission_slug == 'admin'){
//update user
if(isset($_POST['updateUser'])){
$userArray = array(
'username' => $_POST['username'],
'fullname' => $_POST['fullname'],
'permission_slug' => $_POST['permission_slug'],
'is_enabled' => $_POST['is_enabled'],
'user_notes' => $_POST['user_notes']
);
if($_POST['password'] != ''){
$userArray['password'] = $_POST['password'];
}
$this->User_model->updateUser($_POST['user_id'], $userArray);
$userArray['permission_slug'] = $this->User_model->getPermissionBySlug($userArray['permission_slug'])->permission_name;
if($_POST['password'] != ''){
$userArray['password'] = '****';
}
$userArray['is_enabled'] = $userArray['is_enabled']?'aktív':'letiltva';
$userArray['user_notes'] = $userArray['user_notes'] != ''?$userArray['user_notes']:'nincs megjegyzés';
$this->Log_model->addLog('users', $data['currentUser']->username.' módosította a(z) '.$_POST['username'].' adatait ('.implode(', ', $userArray).')', $data['currentUser']->username);
}
//add new user
if(isset($_POST['addNewUser'])){
$userArray = array(
'username' => $_POST['username'],
'password' => $_POST['password'],
'fullname' => $_POST['fullname'],
'permission_slug' => $_POST['permission_slug'],
'is_enabled' => $_POST['is_enabled'],
'user_notes' => $_POST['user_notes']
);
$this->User_model->addNewUser($userArray);
$userArray['permission_id'] = $this->User_model->getpermissionBySlug($userArray['permission_slug'])->permission_slug;
$userArray['is_enabled'] = $userArray['is_enabled']?'aktív':'letiltva';
$userArray['user_notes'] = $userArray['user_notes'] != ''?$userArray['user_notes']:'nincs megjegyzés';
$userArray['password'] = '****';
$this->Log_model->addLog('users', $data['currentUser']->username.' létrehoza a(z) '.$_POST['username'].' felhasználót ('.implode(', ', $userArray).')', $data['currentUser']->username);
}
header("Location:".SITEURL."user-management");
//$this->load->view('pages/user-process',$data);
}
else{
header("Location:".SITEURL."home");
}
}
else{
header("Location:".SITEURL."login");
}
}
}