mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Trabajando sobre unir las reglas de varios grupos
This commit is contained in:
@ -3,22 +3,68 @@
|
||||
namespace App\Controllers;
|
||||
|
||||
|
||||
use App\Models\UserModel;
|
||||
use App\Models\UserGroupModel;
|
||||
use App\Models\GroupUserModel;
|
||||
|
||||
class Test extends BaseController
|
||||
{
|
||||
|
||||
private $user_model;
|
||||
private $group_user_model;
|
||||
private $group_model;
|
||||
|
||||
function __construct()
|
||||
{
|
||||
$this->user_model = new UserModel();
|
||||
$this->group_user_model = new GroupUserModel();
|
||||
$this->group_model = new UserGroupModel();
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
["id_user"]=>
|
||||
string(1) "1"
|
||||
$test = [
|
||||
"115b5ad39b853084209caf6824224f6b",
|
||||
"fff26488a4249d76a8de5c0426acb8f7",
|
||||
"72f5e898a67bb2fb72b185d9138585b2"];
|
||||
/////////////////////////////////7
|
||||
// Join groups access rules
|
||||
/*$user_token = "a4a60f9f064218b09cf108418e585507";
|
||||
$groups = $this->group_user_model
|
||||
->select('token_group')
|
||||
->where('token_user', $user_token)->findAll();
|
||||
|
||||
if(sizeof($groups)>0){
|
||||
$rules = html_entity_decode($this->group_model->select('rules')->where('token',$groups[0]['token_group'])->first()['rules']);
|
||||
}
|
||||
for ($i = 1; $i<sizeof($groups); $i++) {
|
||||
echo var_dump($this->group_model->select('rules')->where('token',$groups[$i]['token_group'])->first()['rules']);
|
||||
$rules = json_encode(
|
||||
array_merge(
|
||||
json_decode($rules, true),
|
||||
json_decode($this->group_model->select('rules')->where('token',$groups[$i]['token_group'])->first()['rules'], true)
|
||||
)
|
||||
);
|
||||
} */
|
||||
|
||||
|
||||
$rules1 = '{"token":["token"],"Activity":["index","all"],"Group":["index","add","edit","store","delete"],"My":["index","notification_view"],"Notification":["index","add","store","delete"],"Profile":["index","store"],"Settings":["index","store","oauth","oauth_store","template","template_store"],"User":["index","add","edit","store","delete"]}';
|
||||
|
||||
$rules2 = '{"token":["token"],"Activity":["index"],"Group":["edit"],"My":["notification"]}';
|
||||
$new_rules = [];
|
||||
foreach (json_decode($rules1, true) as $key => $value){
|
||||
if (array_key_exists($key, json_decode($rules1, true))){
|
||||
$value2 = json_decode($rules1, true)[$key];
|
||||
$new_rules[$key] = array_unique(array_push($value, $value2));
|
||||
}
|
||||
else{
|
||||
$new_rules[$key]= $value;
|
||||
}
|
||||
|
||||
|
||||
echo "Hola";
|
||||
}
|
||||
|
||||
echo '<pre>';
|
||||
var_dump($new_rules);
|
||||
echo '</pre>';
|
||||
dd();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -132,6 +132,7 @@ class User extends BaseController
|
||||
}
|
||||
|
||||
$data['selected_groups'] = $this->group_user_model->select('token_group')->where('token_user', $token)->findAll();
|
||||
|
||||
$data['group'] = $this->group_model->select('token,title')->findAll();
|
||||
$data['country'] = $this->countries_model->select('code,name')->where('data_lang',session()->get('lang')??'en')->findAll();
|
||||
|
||||
@ -223,12 +224,6 @@ class User extends BaseController
|
||||
|
||||
}else{
|
||||
|
||||
echo "<pre>";
|
||||
var_dump($this->request->getPost());
|
||||
echo "</pre>" ;
|
||||
|
||||
dd();
|
||||
|
||||
$this->user_model->save([
|
||||
'id_user' => $this->request->getPost('id_user'),
|
||||
//'group' => $this->request->getPost('group'),
|
||||
@ -254,22 +249,19 @@ class User extends BaseController
|
||||
]);
|
||||
}
|
||||
|
||||
// Update group_user pivot table
|
||||
$user_token = $this->user_model
|
||||
->select('token')
|
||||
->where('id_user',$this->request->getPost('id_user'))->first();
|
||||
|
||||
|
||||
$this->group_user_model->delete(['user_token' => $user_token]);
|
||||
$groups = implode(",",$this->request->getPost('group')??[]);
|
||||
->where('id_user',$this->request->getPost('id_user'))->first()['token'];
|
||||
$this->group_user_model->where('token_user', $user_token)->delete();
|
||||
$groups = $this->request->getPost('group');
|
||||
foreach ($groups as $group){
|
||||
$group_user_data = [
|
||||
'token_user' => $this->request->getPost('id_user'),
|
||||
'token_user' => $user_token,
|
||||
'token_group' => $group
|
||||
];
|
||||
$this->group_user_model->insert($group_user_data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -278,7 +270,12 @@ class User extends BaseController
|
||||
return redirect()->to('/user');
|
||||
}else{
|
||||
if($session->get('id_user') == $this->request->getPost('id_user')){
|
||||
$access_rules = $this->group_model->select('rules')->where('token',$this->request->getPost('group'))->first();
|
||||
$access_rules = $this->group_model->select('rules')->where('token',$this->request->getPost('group')[0])->first();
|
||||
/*echo "<pre>";
|
||||
var_dump(json_decode(html_entity_decode($access_rules['rules'])));
|
||||
echo "</pre>" ;
|
||||
|
||||
dd();*/
|
||||
$session->set('rules', html_entity_decode($access_rules['rules']));
|
||||
}
|
||||
$session->setFlashdata('sweet', ['success',lang("App.user_alert_edit")]);
|
||||
|
||||
@ -91,10 +91,14 @@
|
||||
<?php
|
||||
if ($id_select['token_group'] == $item['token']){
|
||||
$selItem = 'selected';
|
||||
break;
|
||||
}
|
||||
else{
|
||||
$selItem = '';
|
||||
}
|
||||
?>
|
||||
<?php endforeach; ?>
|
||||
<option value="<?=$item['token']??''?>" <?= (isset($selItem))?'selected':'' ?>> <?=$item['title']??''?></option>
|
||||
<option value="<?=$item['token']??''?>" <?= $selItem ?>> <?=$item['title']??''?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user