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,252 @@
|
||||
<?php
|
||||
class Module_model extends CI_Model {
|
||||
|
||||
function __construct(){
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function getAllModule(){
|
||||
$this->load->database();
|
||||
$query = $this->db->query('SELECT * FROM modules ORDER BY module_name ASC');
|
||||
return $query->result();
|
||||
}
|
||||
|
||||
public function getModuleById($module_id){
|
||||
$this->load->database();
|
||||
$query = $this->db->query('SELECT * FROM modules WHERE module_id = "'.$module_id.'" LIMIT 1;');
|
||||
return $query->result()[0];
|
||||
}
|
||||
|
||||
public function getModuleBySlug($module_slug){
|
||||
$this->load->database();
|
||||
$query = $this->db->query('SELECT * FROM modules WHERE module_slug = "'.$module_slug.'" LIMIT 1;');
|
||||
return $query->result()[0];
|
||||
}
|
||||
|
||||
public function getUserModules($userId){
|
||||
$this->load->database();
|
||||
$this->load->model('User_model');
|
||||
|
||||
$currentUser = $this->User_model->getUserById($userId);
|
||||
|
||||
$query = $this->db->query('SELECT * FROM modules');
|
||||
$all_module = $query->result();
|
||||
$activeModules = array();
|
||||
$activeModuleIds = array();
|
||||
|
||||
foreach($all_module as $moduleItem){
|
||||
|
||||
//check groupmodules
|
||||
$moduleGroupIds = unserialize($moduleItem->permission_group_ids);
|
||||
$moduleUserIds = unserialize($moduleItem->permission_ids);
|
||||
|
||||
if(!empty($moduleItem->permission_ids)){
|
||||
}
|
||||
|
||||
//check group ids
|
||||
if(is_array($moduleGroupIds)){
|
||||
if(in_array($currentUser->permission_id, $moduleGroupIds)){
|
||||
if(!in_array($moduleItem->module_id, $activeModuleIds)){
|
||||
|
||||
$activeModules[] = $moduleItem;
|
||||
$activeModuleIds[] = $moduleItem->module_id;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//check user_ids
|
||||
|
||||
if(is_array($moduleUserIds)){
|
||||
if(in_array($currentUser->user_id, $moduleUserIds)){
|
||||
|
||||
if(!in_array($moduleItem->module_id, $activeModuleIds)){
|
||||
$activeModules[] = $moduleItem;
|
||||
$activeModuleIds[] = $moduleItem->module_id;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return $activeModules;
|
||||
}
|
||||
|
||||
|
||||
public function is_module_available($module_id, $userId){
|
||||
$this->load->database();
|
||||
$this->load->model('User_model');
|
||||
|
||||
$currentModule = $this->getModuleById($module_id);
|
||||
$currentUser = $this->User_model->getUserById($userId);
|
||||
$moduleGroupIds = unserialize($currentModule->permission_group_ids);
|
||||
$moduleUserIds = unserialize($currentModule->permission_ids);
|
||||
$moduleIsOk = 0;
|
||||
|
||||
//if($currentUser->permission_slug == 'admin' && $module_id != '5'){
|
||||
if($currentUser->permission_slug == 'admin'){
|
||||
$moduleIsOk = 1;
|
||||
}
|
||||
|
||||
//check groupmodules
|
||||
if(is_array($moduleGroupIds)){
|
||||
if(in_array($currentUser->permission_id, $moduleGroupIds)){
|
||||
$moduleIsOk = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//check user_ids
|
||||
if(is_array($moduleUserIds)){
|
||||
if(in_array($currentUser->user_id, $moduleUserIds)){
|
||||
$moduleIsOk = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if($moduleIsOk){
|
||||
return 1;
|
||||
}
|
||||
else{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function is_userId_available_in_module($module_id, $userId){
|
||||
$this->load->database();
|
||||
$this->load->model('User_model');
|
||||
|
||||
$currentModule = $this->getModuleById($module_id);
|
||||
$userIds = unserialize($currentModule->permission_ids);
|
||||
|
||||
|
||||
if(is_array($userIds)){
|
||||
if(in_array($userId, $userIds)){
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function is_groupId_available_in_module($module_id, $groupId){
|
||||
$this->load->database();
|
||||
$this->load->model('User_model');
|
||||
|
||||
$currentModule = $this->getModuleById($module_id);
|
||||
$moduleGroupIds = unserialize($currentModule->permission_group_ids);
|
||||
|
||||
if(is_array($moduleGroupIds)){
|
||||
if(in_array($groupId, $moduleGroupIds)){
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function updateModule($fieldName, $module_id, $moduleUserArray){
|
||||
$this->load->database();
|
||||
|
||||
if(!empty($moduleUserArray)){
|
||||
$query = $this->db->query("UPDATE modules SET ".$fieldName." ='".serialize($moduleUserArray)."' WHERE module_id = '".$module_id."';");
|
||||
}
|
||||
else{
|
||||
$query = $this->db->query("UPDATE modules SET ".$fieldName." ='' WHERE module_id = '".$module_id."';");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function getModulesByPermissionSlug($permissionSlug){
|
||||
$this->load->database();
|
||||
$this->load->model('Module_model');
|
||||
$selectedPermission = $this->Module_model->getPermissionBySlug($permissionSlug);
|
||||
|
||||
$query = $this->db->query('SELECT * FROM modules;');
|
||||
$results = $query->result();
|
||||
$resultArray = array();
|
||||
foreach($results as $resultItem){
|
||||
$permissionIdsArray = explode(',', $resultItem->permission_ids);
|
||||
if(in_array($selectedPermission->permission_id, $permissionIdsArray)){
|
||||
$resultArray[] = $resultItem;
|
||||
}
|
||||
}
|
||||
return $resultArray;
|
||||
}
|
||||
|
||||
public function getPermissionBySlug($permissionSlug){
|
||||
$this->load->database();
|
||||
|
||||
$query = $this->db->query('SELECT * FROM permissions WHERE permission_slug = "'.$permissionSlug.'";');
|
||||
if($query->num_rows() == 1){
|
||||
return $query->result()[0];
|
||||
}
|
||||
else{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public function user_can_access_this_module($moduleSlug, $userId){
|
||||
$this->load->database();
|
||||
$this->load->model('User_model');
|
||||
$selectedUser = $this->User_model->getUserById($userId);
|
||||
|
||||
$query = $this->db->query('SELECT * FROM modules WHERE module_slug = "'.$moduleSlug.'" LIMIT 1;');
|
||||
|
||||
if($query->num_rows() == 1){
|
||||
$result = $query->result()[0];
|
||||
$permissionArray = explode(',', $result->permission_ids);
|
||||
if(in_array($selectedUser->permission_id, $permissionArray)){
|
||||
return 1;
|
||||
}
|
||||
else{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
else{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user