From 39d287fa14796df70a8c639b9354962b5d7b6644 Mon Sep 17 00:00:00 2001 From: Jaime Jimenez Date: Mon, 24 Apr 2023 20:35:28 +0200 Subject: [PATCH] Trabajando sobre unir las reglas de varios grupos --- ci4/app/Controllers/Test.php | 60 ++++++++++++++++--- ci4/app/Controllers/User.php | 27 ++++----- .../themes/backend/focus2/form/user/form.php | 6 +- 3 files changed, 70 insertions(+), 23 deletions(-) diff --git a/ci4/app/Controllers/Test.php b/ci4/app/Controllers/Test.php index d2666a26..916e7cbc 100644 --- a/ci4/app/Controllers/Test.php +++ b/ci4/app/Controllers/Test.php @@ -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; $igroup_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 '
';
+        var_dump($new_rules);
+        echo '
'; + dd(); + + } } diff --git a/ci4/app/Controllers/User.php b/ci4/app/Controllers/User.php index e8c13a4c..467896b5 100644 --- a/ci4/app/Controllers/User.php +++ b/ci4/app/Controllers/User.php @@ -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 "
";
-                var_dump($this->request->getPost()); 
-                echo "
" ; - - 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 "
";
+                    var_dump(json_decode(html_entity_decode($access_rules['rules']))); 
+                    echo "
" ; + + dd();*/ $session->set('rules', html_entity_decode($access_rules['rules'])); } $session->setFlashdata('sweet', ['success',lang("App.user_alert_edit")]); diff --git a/ci4/app/Views/themes/backend/focus2/form/user/form.php b/ci4/app/Views/themes/backend/focus2/form/user/form.php index b9a64b5d..8d36a201 100644 --- a/ci4/app/Views/themes/backend/focus2/form/user/form.php +++ b/ci4/app/Views/themes/backend/focus2/form/user/form.php @@ -91,10 +91,14 @@ - +