Welcome Guest, Not a member yet? Register   Sign In
Redirection issues
#5

(07-10-2020, 01:24 AM)marcogmonteiro Wrote: Can you paste your entire controller?
Hi friend, thanks for replying.


Permission.php


PHP Code:
<?php

/**
 * @package Permission Controller
 * @author Wickfield <Boris#8779>
 **/

namespace App\Controllers;

use 
App\Models\PermissionModel;

use 
App\Helpers\Utils;

class 
Permission extends BaseController
{
    private $exception = ["/""/authenticate""/logout"];

    public function __construct()
    {
        $this->model = new PermissionModel;
    }

    public function getMenu()
    {
        return $this->model->constructMenu();
    }

    public function getSubMenu(string $id)
    {
        return $this->model->getSubMenu($id);
    }

    public function getModules(string $code)
    {
        return $this->model->getModules($code);
    }

    public function getAllowedRoutes(string $username)
    {
        $permissions = [];

        $data $this->model->getAllowedRoutes($username)->getResult();

        if ($data) :

            foreach ($data as $key => $value) :
                array_push($permissions$value->route);
            endforeach;

        endif;

        return $permissions;
    }

    public function isAllowed()
    {
       if(!empty(Utils::getDataSession('username'))) :

        $isAllowed false;

        $routeName Utils::getDataMachine('REQUEST_URI');
        $getPermission Utils::getDataSession('permission');
        
            
if (in_array($routeName$this->exception)) :
                $isAllowed true;
            else :

                foreach ($getPermission as $key => $value) :

                    if ($value == $routeName) :
                        $isAllowed true;
                    endif;

                endforeach;

                $permission = new Permission;

                if (!$isAllowed) :
                    return redirect()->route('dashboard');
                endif;

            endif;

        return $isAllowed;

        else :
            return redirect()->route('/');
        endif;
    }




BaseController:

PHP Code:
<?php

namespace App\Controllers;

use 
CodeIgniter\Controller;

use 
App\Libraries\Template;
use 
App\Helpers\Ajax;
use 
App\Controllers\Permission;

class 
BaseController extends Controller
{
    protected 
$helpers = [];
    protected 
$template;
    protected 
$ajax;
    protected 
$permission;

    public function 
initController(\CodeIgniter\HTTP\RequestInterface $request, \CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger)
    {
        
// Do Not Edit This Line
        parent::initController($request$response$logger);

        
$this->template = new Template;
        
$this->ajax = new Ajax;
        
$this->permission = new Permission;
    }



Since the Permission class is in autoload, I only call $this->permission->isAllowed() in the other methods.
Reply


Messages In This Thread
Redirection issues - by Wickfield - 07-09-2020, 11:13 AM
RE: Redirection issues - by Wickfield - 07-09-2020, 11:22 AM
RE: Redirection issues - by marcogmonteiro - 07-10-2020, 01:24 AM
RE: Redirection issues - by Wickfield - 07-10-2020, 10:05 AM
RE: Redirection issues - by InsiteFX - 07-10-2020, 06:37 AM
RE: Redirection issues - by Wickfield - 07-10-2020, 10:06 AM
RE: Redirection issues - by InsiteFX - 07-10-2020, 11:51 AM
RE: Redirection issues - by Wickfield - 07-10-2020, 01:34 PM
RE: Redirection issues - by InsiteFX - 07-11-2020, 03:16 AM
RE: Redirection issues - by Wickfield - 07-11-2020, 07:57 AM
RE: Redirection issues - by InsiteFX - 07-11-2020, 09:40 AM
RE: Redirection issues - by Wickfield - 07-13-2020, 07:59 AM



Theme © iAndrew 2016 - Forum software by © MyBB