Welcome Guest, Not a member yet? Register   Sign In
Using shield, How i can redirect to separate url if the user not in admin group
#14

If I understand well, here is my solution to handle admin and portal namespaces.
Here is before method from my Admin filter:
PHP Code:
    public function before(RequestInterface $request$arguments null)
    {
        if (! $request instanceof IncomingRequest) {
            return;
        }

        if (auth()->user()->inGroup('superadmin''admin')) {
            return;
        }

        return redirect()->to('login');
    

And here is before method from my Portal filter:

PHP Code:
    public function before(RequestInterface $request$arguments null)
    {
        if (! $request instanceof IncomingRequest) {
            return;
        }

        if (auth()->user()->inGroup('customer')) {
            return;
        }

        return redirect()->to('login');
    

As you can see I'm using group customer for my portal users. 
Here is updated redirects, loginRedirect and registerRedirect methods in Shield auth config.

PHP Code:
    public array $redirects = [
        'register'    => 'portal',
        'login'      => 'portal',
        'logout'      => 'login',
        'force_reset' => '/',
    ]; 

PHP Code:
    public function loginRedirect(): string
    
{
        $url auth()->user()->inGroup('customer')
            setting('Auth.redirects')['login']
            site_url(ADMIN_AREA);

        return $this->getUrl($url);
    

PHP Code:
    public function registerRedirect(): string
    
{
        $url auth()->user()->inGroup('customer')
            setting('Auth.redirects')['register']
            site_url(ADMIN_AREA);

        return $this->getUrl($url);
    
Reply


Messages In This Thread
RE: Using shield, How i can redirect to separate url if the user not in admin group - by jozefrebjak - 08-17-2023, 11:27 PM



Theme © iAndrew 2016 - Forum software by © MyBB