Editar usuario hecho. Control del acceso hecho. Falta add

This commit is contained in:
Jaime Jiménez
2023-04-25 15:36:53 +02:00
parent 39d287fa14
commit 92bf19f2d5
4 changed files with 104 additions and 20 deletions

View File

@ -11,6 +11,7 @@ use App\Models\SettingsModel;
use App\Models\TemplateModel;
use App\Models\UserModel;
use App\Models\UserGroupModel;
use App\Models\GroupUserModel;
class login extends BaseController
{
@ -23,6 +24,7 @@ class login extends BaseController
private $template_model;
private $confirmation_model;
private $integration;
private $group_user_model;
function __construct()
{
@ -38,6 +40,8 @@ class login extends BaseController
// Get Settings
$loginAuthFilter = new \App\Filters\LoginAuthFilter();
$loginAuthFilter->getSettings();
$this->group_user_model = new GroupUserModel();
}
public function index()
@ -184,7 +188,39 @@ class login extends BaseController
}
// Get access rules
$rules = $this->group_model->where('token', $login['group'])->first();
#$rules = $this->group_model->where('token', $login['group'])->first();
$groups = $this->group_user_model
->select('token_group')
->where('token_user',$login['token'])->findAll();
if (sizeof($groups)>1){
$rules = $this->group_model->select('rules')->where('token',$groups[0])->first()['rules'];
$rules = json_decode(html_entity_decode($rules), true);
for ($i=1; $i<sizeof($groups); $i++){
$temp_rules = $this->group_model->select('rules')->where('token',$groups[$i])->first()['rules'];
foreach ($rules as $key => $value){
if (array_key_exists($key, json_decode(html_entity_decode($temp_rules), true))){
$value2 = json_decode(html_entity_decode($temp_rules), true)[$key];
$rules[$key] = array_unique(array_merge($value, $value2));
}
else{
$rules[$key]= $value;
}
}
foreach (json_decode(html_entity_decode($temp_rules), true) as $key2 => $value2){
if (!array_key_exists($key2, $rules)){
$rules[$key2] = $value2;
}
}
}
}
else{
$rules = $this->group_model->select('rules')->where('token',$groups[0])->first();
}
// Save data in session
$session->set('id_user', $login['id_user']);
@ -193,7 +229,14 @@ class login extends BaseController
$session->set('last_name', $login['last_name']);
$session->set('email', $login['email']);
$session->set('token', $login['token']);
$session->set('dashboard', $rules['dashboard']);
// JJO
$dashboard = 'user';
foreach ($groups as $group){
if($this->group_model->select('dashboard')->where('token',$group)->first()['dashboard'] == 'admin')
$dashboard = 'admin';
}
$session->set('dashboard', $dashboard);
$session->set('rules', html_entity_decode($rules['rules']));
$session->set('picture', $login['picture']);
$session->set('tfa', $login['tfa']);