Your IP : 216.73.217.77


Current Path : /home/users/unlimited/www/admin.ondemand.codeskitter.site/app/Controllers/admin/
Upload File :
Current File : /home/users/unlimited/www/admin.ondemand.codeskitter.site/app/Controllers/admin/System_users.php

<?php

namespace App\Controllers\admin;

use App\Models\System_user_model;
use App\Models\user_permissions_model;
use App\Models\Users_model;
use IonAuth\Models\IonAuthModel;

class system_users extends Admin
{
    public   $validation, $system_users, $db,  $ionAuth, $user_permissions, $users;
    protected $superadmin;

    public function __construct()
    {
        parent::__construct();
        helper(['form', 'url', 'ResponceServices']);
        $this->system_users = new System_user_model();
        $this->validation = \Config\Services::validation();
        $this->db      = \Config\Database::connect();
        $this->ionAuth = new \IonAuth\Libraries\IonAuth();
        $this->user_permissions = new user_permissions_model();
        $this->users = new Users_model();
        $this->superadmin = $this->session->get('email');
    }
    public function index()
    {
        if ($this->isLoggedIn && $this->userIsAdmin) {
            setPageInfo($this->data, labels('system_users', 'System Users') . ' | ' . labels('admin_panel', 'Admin Panel'), 'system_users');
            $this->data['categories_name'] = fetch_details('categories', [], ['id', 'name']);
            $this->data['users'] = fetch_details('users', [], ['id', 'username']);
            $this->data['notification'] = fetch_details('notifications');
            $edemand = new \Config\Edemand;
            $permissions = $edemand->permissions;
            $this->data['permissions'] =  $permissions;

            return view('backend/admin/template', $this->data);
        } else {
            return redirect('unauthorised');
        }
    }
    public function list()
    {
        $limit = (isset($_GET['limit']) && !empty($_GET['limit'])) ? $_GET['limit'] : 10;
        $offset = (isset($_GET['offset']) && !empty($_GET['offset'])) ? $_GET['offset'] : 0;
        $sort = (isset($_GET['sort']) && !empty($_GET['sort'])) ? $_GET['sort'] : 'id';
        $order = (isset($_GET['order']) && !empty($_GET['order'])) ? $_GET['order'] : 'ASC';
        $search = (isset($_GET['search']) && !empty($_GET['search'])) ? $_GET['search'] : '';
        $data = $this->system_users->list(false, $search, $limit, $offset, $sort, $order);
        return $this->system_users->list(false, $search, $limit, $offset, $sort, $order);
    }
    public function deactivate_user()
    {
        try {


            if ($this->isLoggedIn && $this->userIsAdmin) {
                $result = checkModificationInDemoMode($this->superadmin);
                if ($result !== true) {
                    return $this->response->setJSON($result);
                }
                $user_id = $this->request->getPost('user_id');
                $operation =  $this->ionAuth->deactivate($user_id);
                delete_details(['user_id' => $user_id], 'users_tokens');

                if ($operation) {
                    return successResponse("Successfully Deactivated", false, [], [], 200, csrf_token(), csrf_hash());
                } else {
                    return ErrorResponse("Unsuccessful attempt to disable the user", true, [], [], 200, csrf_token(), csrf_hash());
                }
            } else {
                return redirect('unauthorised');
            }
        } catch (\Throwable $th) {
            log_the_responce($th, date("Y-m-d H:i:s") . '--> app/Controllers/admin/System_users.php - deactivate_user()');
            return ErrorResponse("Something Went Wrong", true, [], [], 200, csrf_token(), csrf_hash());
        }
    }
    public function activate_user()
    {
        try {
            if ($this->isLoggedIn && $this->userIsAdmin) {
                $result = checkModificationInDemoMode($this->superadmin);
                if ($result !== true) {
                    return $this->response->setJSON($result);
                }
                $user_id = $this->request->getPost('user_id');
                $operation =  $this->ionAuth->activate($user_id);
                if ($operation) {
                    return successResponse("Successfully activated", false, [], [], 200, csrf_token(), csrf_hash());
                } else {
                    return ErrorResponse("Unsuccessful attempt to disable the user", true, [], [], 200, csrf_token(), csrf_hash());
                }
            } else {
                return redirect('unauthorised');
            }
        } catch (\Throwable $th) {
            log_the_responce($th, date("Y-m-d H:i:s") . '--> app/Controllers/admin/System_users.php - activate_user()');
            return ErrorResponse("Something Went Wrong", true, [], [], 200, csrf_token(), csrf_hash());
        }
    }
    public function delete_user()
    {
        try {
            if ($this->isLoggedIn && $this->userIsAdmin) {
                $result = checkModificationInDemoMode($this->superadmin);
                if ($result !== true) {
                    return $this->response->setJSON($result);
                }
                $user_id = $this->request->getPost('user_id');
                if ($user_id == $this->userId) {
                    return ErrorResponse("Cannot delete", true, [], [], 200, csrf_token(), csrf_hash());
                }
                $builder_user_permisison = $this->db->table('user_permissions');
                $delete_user_permisison =  $builder_user_permisison->delete(['user_id' => $user_id]);
                $builder_user = $this->db->table('users');
                $delete_user =  $builder_user->delete(['id' => $user_id]);
                if ($delete_user_permisison && $delete_user) {
                    return successResponse("Success in deleting user", false, [], [], 200, csrf_token(), csrf_hash());
                    if ($user_id == $this->userId) {
                        $this->ionAuth->logout();
                        return redirect()->to('/admin/login')->withCookies();
                    }
                } else {
                    return ErrorResponse("Unsuccessful attempt to delete the user", true, [], [], 200, csrf_token(), csrf_hash());
                }
            } else {
                return redirect('unauthorised');
            }
        } catch (\Throwable $th) {
            log_the_responce($th, date("Y-m-d H:i:s") . '--> app/Controllers/admin/System_users.php - activate_user()');
            return ErrorResponse("Something Went Wrong", true, [], [], 200, csrf_token(), csrf_hash());
        }
    }
    public function add_user()
    {
        try {

            if ($this->isLoggedIn && $this->userIsAdmin) {
                $edemand = new \Config\Edemand;
                $permissions = $edemand->permissions;
                setPageInfo($this->data, labels('add_system_user', 'Add System User') . ' | ' . labels('admin_panel', 'Admin Panel'), 'add_system_user');
                $builder = $this->db->table('users u')->select('u.id, username, ug.group_id')->join('users_groups ug', 'ug.user_id = u.id')->where('ug.group_id', 1)->get()->getResultArray();
                $users = $builder;
                $this->data['permissions'] =  $permissions;
                $this->data['users'] = $users;
                $this->data['notification'] = fetch_details('notifications');
              
                return view('backend/admin/template', $this->data);
            } else {
                return redirect('unauthorised');
            }
        } catch (\Throwable $th) {
            log_the_responce($th, date("Y-m-d H:i:s") . '--> app/Controllers/admin/System_users.php - add_user()');
            return ErrorResponse("Something Went Wrong", true, [], [], 200, csrf_token(), csrf_hash());
        }
    }
    public function permit()
    {

        try {
            if ($this->isLoggedIn && $this->userIsAdmin) {
                $result = checkModificationInDemoMode($this->superadmin);
                if ($result !== true) {
                    return $this->response->setJSON($result);
                }
                if ($this->request->getPost('user_type') == 'existing_user') {
                    $this->validation->setRules(
                        [
                            'user' => 'required',
                            'role' => 'required',
                        ]
                    );
                    if (!$this->validation->withRequest($this->request)->run()) {
                        $errors  = $this->validation->getErrors();
                        return ErrorResponse($errors, true, [], [], 200, csrf_token(), csrf_hash());
                    }
                    $user_id = $this->request->getPost('user');
                    $check_user  = exists(['user_id' => $user_id], 'user_permissions');
                    if ($check_user) {
                        return ErrorResponse("This user was already selected for permissions", true, [], [], 200, csrf_token(), csrf_hash());
                    }
                    if ($this->request->getPost('user') == "default") {
                        return ErrorResponse("Please select user", true, [], [], 200, csrf_token(), csrf_hash());
                    }
                    if ($this->request->getPost('role') == "default") {
                        return ErrorResponse("Please select role", true, [], [], 200, csrf_token(), csrf_hash());
                    }
                } else {
                    $user_name = $this->request->getPost('new_user_name');
                    $mobile = $this->request->getPost('phone');
                    $email = $this->request->getPost('mail');
                    $password  = $this->request->getPost('password');
                    $confirm_password  = $this->request->getPost('confirm_password');
                    $mobile_data  = fetch_details('users', ['phone' => $mobile]);
                    $email_data = fetch_details('users', ['email' => $email]);
                    if (!empty($mobile_data) && $mobile_data[0]['phone']) {
                        return ErrorResponse("Phone number already exists please use another one", true, [], [], 200, csrf_token(), csrf_hash());
                    }
                    if (!empty($email_data) && $email_data[0]['email']) {
                        return ErrorResponse("Email already exists please use another one", true, [], [], 200, csrf_token(), csrf_hash());
                    }
                    $ion_auth = new IonAuthModel();
                    $data = [
                        'username' => $user_name,
                        'phone' => $mobile,
                        'email' => $email,
                        'active' => isset($_POST['is_approved']) ? 1 : 0,
                        'password' => $ion_auth->hashPassword($password)
                    ];
                    $insert_id =  $this->users->save($data);
                    $user_id = $this->users->getInsertID();
                    $user_group = [
                        'user_id' => $user_id,
                        'group_id' => 1,
                    ];
                    insert_details($user_group, 'users_groups');
                }

                $orders = ($this->request->getPost('orders_create') == "true") ? 1 : 0;
                $category = ($this->request->getPost('categories_create') == "true") ? 1 : 0;
                $subscription = ($this->request->getPost('subscription_create') == "true") ? 1 : 0;
                $sliders = ($this->request->getPost('sliders_create') == "true") ? 1 : 0;
                $tax = ($this->request->getPost('tax_create') == "true") ? 1 : 0;
                $service = ($this->request->getPost('services_create') == "true") ? 1 : 0;
                $promo_code = ($this->request->getPost('promo_code_create') == "true") ? 1 : 0;
                $featured_section = ($this->request->getPost('featured_section_create') == "true") ? 1 : 0;
                $partner = ($this->request->getPost('partner_create') == "true") ? 1 : 0;
                $customer = ($this->request->getPost('customers_create') == "true") ? 1 : 0;
                $notification = ($this->request->getPost('send_notification_create') == "true") ? 1 : 0;
                $faq = ($this->request->getPost('faq_create') == "true") ? 1 : 0;
                $settings = ($this->request->getPost('settings_create') == "true") ? 1 : 0;
                $system_users = ($this->request->getPost('system_user_create') == "true") ? 1 : 0;
                $create = [
                    "order" => $orders,
                    "categories" => $category,
                    "subscription" => $subscription,
                    "sliders" => $sliders,
                    "tax" => $tax,
                    "services" => $service,
                    "promo_code" => $promo_code,
                    "featured_section" => $featured_section,
                    "partner" => $partner,
                    "customers" => $customer,
                    "send_notification" => $notification,
                    "faq" => $faq,
                    "settings" => $settings,
                    "system_user" => $system_users,
                ];

                $orders = ($this->request->getPost('orders_read') == "true") ? 1 : 0;
                $category = ($this->request->getPost('categories_read') == "true") ? 1 : 0;
                $subscription = ($this->request->getPost('subscription_read') == "true") ? 1 : 0;
                $sliders = ($this->request->getPost('sliders_read') == "true") ? 1 : 0;
                $tax = ($this->request->getPost('tax_read') == "true") ? 1 : 0;
                $service = ($this->request->getPost('services_read') == "true") ? 1 : 0;
                $promo_code = ($this->request->getPost('promo_code_read') == "true") ? 1 : 0;
                $featured_section = ($this->request->getPost('featured_section_read') == "true") ? 1 : 0;
                $partner = ($this->request->getPost('partner_read') == "true") ? 1 : 0;
                $customer = ($this->request->getPost('customers_read') == "true") ? 1 : 0;
                $notification = ($this->request->getPost('send_notification_read') == "true") ? 1 : 0;
                $faq = ($this->request->getPost('faq_read') == "true") ? 1 : 0;
                $settings = ($this->request->getPost('settings_read') == "true") ? 1 : 0;
                $system_users = ($this->request->getPost('system_user_read') == "true") ? 1 : 0;
                $read = [
                    "orders" => $orders,
                    "categories" => $category,
                    "subscription" => $subscription,
                    "sliders" => $sliders,
                    "tax" => $tax,
                    "services" => $service,
                    "promo_code" => $promo_code,
                    "featured_section" => $featured_section,
                    "partner" => $partner,
                    "customers" => $customer,
                    "send_notification" => $notification,
                    "faq" => $faq,
                    "settings" => $settings,
                    "system_user" => $system_users,
                ];

                $orders = ($this->request->getPost('orders_update') == "true") ? 1 : 0;
                $category = ($this->request->getPost('categories_update') == "true") ? 1 : 0;
                $subscription = ($this->request->getPost('subscription_update') == "true") ? 1 : 0;
                $sliders = ($this->request->getPost('sliders_update') == "true") ? 1 : 0;
                $tax = ($this->request->getPost('tax_update') == "true") ? 1 : 0;
                $service = ($this->request->getPost('services_update') == "true") ? 1 : 0;
                $promo_code = ($this->request->getPost('promo_code_update') == "true") ? 1 : 0;
                $featured_section = ($this->request->getPost('featured_section_update') == "true") ? 1 : 0;
                $partner = ($this->request->getPost('partner_update') == "true") ? 1 : 0;
                $customer = ($this->request->getPost('customers_update') == "true") ? 1 : 0;
                $notification = ($this->request->getPost('send_notification_read') == "true") ? 1 : 0;
                $faq = ($this->request->getPost('faq_update') == "true") ? 1 : 0;
                $system = ($this->request->getPost('system_update_update') == "true") ? 1 : 0;
                $settings = ($this->request->getPost('settings_update') == "true") ? 1 : 0;
                $system_users = ($this->request->getPost('system_user_update') == "true") ? 1 : 0;
                $update = [
                    "orders" => $orders,
                    "categories" => $category,
                    "subscription" => $subscription,
                    "sliders" => $sliders,
                    "tax" => $tax,
                    "services" => $service,
                    "promo_code" => $promo_code,
                    "featured_section" => $featured_section,
                    "partner" => $partner,
                    "customers" => $customer,
                    "faq" => $faq,
                    "system_update" => $system,
                    "settings" => $settings,
                    "system_user" => $system_users,
                ];

                $orders = ($this->request->getPost('orders_delete') == "true") ? 1 : 0;
                $category = ($this->request->getPost('categories_delete') == "true") ? 1 : 0;
                $subscription = ($this->request->getPost('subscription_delete') == "true") ? 1 : 0;
                $sliders = ($this->request->getPost('sliders_delete') == "true") ? 1 : 0;
                $tax = ($this->request->getPost('tax_delete') == "true") ? 1 : 0;
                $service = ($this->request->getPost('services_delete') == "true") ? 1 : 0;
                $promo_code = ($this->request->getPost('promo_code_delete') == "true") ? 1 : 0;
                $featured_section = ($this->request->getPost('featured_section_delete') == "true") ? 1 : 0;
                $partner = ($this->request->getPost('partner_delete') == "true") ? 1 : 0;
                $customer = ($this->request->getPost('customers_update') == "true") ? 1 : 0;
                $notification = ($this->request->getPost('send_notification_delete') == "true") ? 1 : 0;
                $faq = ($this->request->getPost('faq_delete') == "true") ? 1 : 0;
                $system_users = ($this->request->getPost('system_user_delete') == "true") ? 1 : 0;
                $delete = [
                    "orders" => $orders,
                    "categories" => $category,
                    "subscription" => $subscription,
                    "sliders" => $sliders,
                    "tax" => $tax,
                    "services" => $service,
                    "promo_code" => $promo_code,
                    "featured_section" => $featured_section,
                    "partner" => $partner,
                    "customers" => $customer,
                    "faq" => $faq,
                    "send_notification" => $notification,
                    "system_user" => $system_users,
                ];
                $permissions = ["create" => $create, "read" => $read, "update" => $update, "delete" => $delete];
                $permission = json_encode($permissions);
                $role = $this->request->getPost('role');
                $data = [
                    'user_id' => $user_id,
                    'role' => $this->request->getPost('role'),
                    'permissions' => ($role == "1") ? NULL : $permission,
                ];
                $save_perms =  $this->user_permissions->save($data);
                if ($role == "1") {
                    $operation =  $this->ionAuth->activate($user_id);
                }
                if ($save_perms) {
                    return successResponse("Added Permissions", false, [], [], 200, csrf_token(), csrf_hash());
                } else {
                    return ErrorResponse("Could not add permission", true, [], [], 200, csrf_token(), csrf_hash());
                }
            } else {
                return redirect('unauthorised');
            }
        } catch (\Throwable $th) {
            log_the_responce($th, date("Y-m-d H:i:s") . '--> app/Controllers/admin/System_users.php - permit()');
            return ErrorResponse("Something Went Wrong", true, [], [], 200, csrf_token(), csrf_hash());
        }
    }
    public function edit_permit()
    {
        try {

            if ($this->isLoggedIn && $this->userIsAdmin) {
                $result = checkModificationInDemoMode($this->superadmin);
                if ($result !== true) {
                    return $this->response->setJSON($result);
                }

                $order = ($this->request->getPost('orders_create_edit') == "true") ? 1 : 0;
                $category = ($this->request->getPost('categories_create_edit') == "true") ? 1 : 0;
                $subscription = ($this->request->getPost('subscription_create_edit') == "true") ? 1 : 0;
                $sliders = ($this->request->getPost('sliders_create_edit') == "true") ? 1 : 0;
                $tax = ($this->request->getPost('tax_create_edit') == "true") ? 1 : 0;
                $service = ($this->request->getPost('services_create_edit') == "true") ? 1 : 0;
                $promo_code = ($this->request->getPost('promo_code_create_edit') == "true") ? 1 : 0;
                $featured_section = ($this->request->getPost('featured_section_create_edit') == "true") ? 1 : 0;
                $partner = ($this->request->getPost('partner_create_edit') == "true") ? 1 : 0;
                $customer = ($this->request->getPost('customers_create_edit') == "true") ? 1 : 0;
                $notification = ($this->request->getPost('send_notification_create_edit') == "true") ? 1 : 0;
                $faq = ($this->request->getPost('faq_create_edit') == "true") ? 1 : 0;
                $system = ($this->request->getPost('system_update_create_edit') == "true") ? 1 : 0;
                $settings = ($this->request->getPost('settings_create_edit') == "true") ? 1 : 0;
                $system_users = ($this->request->getPost('system_user_create_edit') == "true") ? 1 : 0;
                $create = [
                    "order" => $order,
                    "categories" => $category,
                    "subscription" => $subscription,
                    "sliders" => $sliders,
                    "tax" => $tax,
                    "services" => $service,
                    "promo_code" => $promo_code,
                    "featured_section" => $featured_section,
                    "partner" => $partner,
                    "customers" => $customer,
                    "send_notification" => $notification,
                    "faq" => $faq,
                    "settings" => $settings,
                    "system_user" => $system_users,
                ];

                $orders = ($this->request->getPost('orders_read_edit') == "true") ? 1 : 0;
                $category = ($this->request->getPost('categories_read_edit') == "true") ? 1 : 0;
                $subscription = ($this->request->getPost('subscription_read_edit') == "true") ? 1 : 0;
                $sliders = ($this->request->getPost('sliders_read_edit') == "true") ? 1 : 0;
                $tax = ($this->request->getPost('tax_read_edit') == "true") ? 1 : 0;
                $service = ($this->request->getPost('services_read_edit') == "true") ? 1 : 0;
                $promo_code = ($this->request->getPost('promo_code_read_edit') == "true") ? 1 : 0;
                $featured_section = ($this->request->getPost('featured_section_read_edit') == "true") ? 1 : 0;
                $partner = ($this->request->getPost('partner_read_edit') == "true") ? 1 : "";
                $customer = ($this->request->getPost('customers_read_edit') == "true") ? 1 : "";
                $notification = ($this->request->getPost('send_notification_read_edit') == "true") ? 1 : 0;
                $faq = ($this->request->getPost('faq_read_edit') == "true") ? 1 : 0;
                $settings = ($this->request->getPost('settings_read_edit') == "true") ? 1 : 0;
                $system = ($this->request->getPost('system_update_read_edit') == "true") ? 1 : 0;
                $system_users = ($this->request->getPost('system_user_read_edit') == "true") ? 1 : 0;
                $read = [
                    "orders" => $orders,
                    "categories" => $category,
                    "subscription" => $subscription,
                    "sliders" => $sliders,
                    "tax" => $tax,
                    "services" => $service,
                    "promo_code" => $promo_code,
                    "featured_section" => $featured_section,
                    "partner" => $partner,
                    "customers" => $customer,
                    "send_notification" => $notification,
                    "faq" => $faq,
                    "settings" => $settings,
                    "system_user" => $system_users,
                ];

                $orders = ($this->request->getPost('orders_update_edit') == "true") ? 1 : 0;
                $category = ($this->request->getPost('categories_update_edit') == "true") ? 1 : 0;
                $subscription = ($this->request->getPost('subscription_update_edit') == "true") ? 1 : 0;
                $sliders = ($this->request->getPost('sliders_update_edit') == "true") ? 1 : 0;
                $tax = ($this->request->getPost('tax_update_edit') == "true") ? 1 : 0;
                $service = ($this->request->getPost('services_update_edit') == "true") ? 1 : 0;
                $promo_code = ($this->request->getPost('promo_code_update_edit') == "true") ? 1 : 0;
                $featured_section = ($this->request->getPost('featured_section_update_edit') == "true") ? 1 : 0;
                $partner = ($this->request->getPost('partner_update_edit') == "true") ? 1 : "";
                $customer = ($this->request->getPost('customers_update_edit') == "true") ? 1 : "";
                $notification = ($this->request->getPost('send_notification_update_edit') == "true") ? 1 : 0;
                $faq = ($this->request->getPost('faq_update_edit') == "true") ? 1 : 0;
                $system = ($this->request->getPost('system_update_update_edit') == "true") ? 1 : 0;
                $settings = ($this->request->getPost('settings_update_edit') == "true") ? 1 : 0;
                $system_users = ($this->request->getPost('system_user_update_edit') == "true") ? 1 : 0;
                $update = [
                    "orders" => $orders,
                    "categories" => $category,
                    "subscription" => $subscription,
                    "sliders" => $sliders,
                    "tax" => $tax,
                    "services" => $service,
                    "promo_code" => $promo_code,
                    "featured_section" => $featured_section,
                    "partner" => $partner,
                    "customers" => $customer,
                    "faq" => $faq,
                    "system_update" => $system,
                    "settings" => $settings,
                    "system_user" => $system_users,
                ];

                $orders = ($this->request->getPost('orders_delete_edit') == "true") ? 1 : 0;
                $category = ($this->request->getPost('categories_delete_edit') == "true") ? 1 : 0;
                $subscription = ($this->request->getPost('subscription_delete_edit') == "true") ? 1 : 0;
                $sliders = ($this->request->getPost('sliders_delete_edit') == "true") ? 1 : 0;
                $tax = ($this->request->getPost('tax_delete_edit') == "true") ? 1 : 0;
                $service = ($this->request->getPost('services_delete_edit') == "true") ? 1 : 0;
                $promo_code = ($this->request->getPost('promo_code_delete_edit') == "true") ? 1 : 0;
                $featured_section = ($this->request->getPost('featured_section_delete_edit') == "true") ? 1 : 0;
                $partner = ($this->request->getPost('partner_delete_edit') == "true") ? 1 : "";
                $customer = ($this->request->getPost('customers_delete_edit') == "true") ? 1 : "";
                $notification = ($this->request->getPost('send_notification_delete_edit') == "true") ? 1 : 0;
                $faq = ($this->request->getPost('faq_delete_edit') == "true") ? 1 : 0;
                $system = ($this->request->getPost('system_update_delete_edit') == "true") ? 1 : 0;
                $settings = ($this->request->getPost('settings_delete_edit') == "true") ? 1 : 0;
                $system_users = ($this->request->getPost('system_user_delete_edit') == "true") ? 1 : 0;
                $delete = [
                    "orders" => $orders,
                    "categories" => $category,
                    "subscription" => $subscription,
                    "sliders" => $sliders,
                    "tax" => $tax,
                    "services" => $service,
                    "promo_code" => $promo_code,
                    "featured_section" => $featured_section,
                    "partner" => $partner,
                    "customers" => $customer,
                    "faq" => $faq,
                    "send_notification" => $notification,
                    "system_user" => $system_users,
                ];
                $permissions = ["create" => $create, "read" => $read, "update" => $update, "delete" => $delete];
                $permission = json_encode($permissions);
                $role = $this->request->getPost('edit_role');
                if ($this->request->getPost('edit_role') == '2') {
                    $role = "2";
                } else if ($this->request->getPost('edit_role') == '1') {
                    $role = "1";
                } else {
                    $role = "3";
                }
                $user_id = $this->request->getPost('id');
                $data = [
                    'role' => $role,
                    'permissions' => ($role == "1") ? NULL : $permission,
                ];
                $builder = $this->db->table('user_permissions');
                $save_perms = $builder->update($data, ['user_id' => $user_id]);
                if ($save_perms) {
                    return successResponse("Permissions updated", false, [], [], 200, csrf_token(), csrf_hash());
                } else {
                    return ErrorResponse("Could not update permission", true, [], [], 200, csrf_token(), csrf_hash());
                }
            } else {
                return redirect('unauthorised');
            }
        } catch (\Throwable $th) {
            log_the_responce($th, date("Y-m-d H:i:s") . '--> app/Controllers/admin/System_users.php - edit_permit()');
            return ErrorResponse("Something Went Wrong", true, [], [], 200, csrf_token(), csrf_hash());
        }
    }
}