Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
972 views
in Technique[技术] by (71.8m points)

permissions - Laravel - SuperAdmin can't see other roles

I added this in my User model:

    private $rank;

    public function isSuperAdmin(): bool {

        if ($this->rank >= 3) {
            return true;
        }

        return false;
    }

    public function isAdmin(): bool
    {
        if ($this->rank == 2 || $this->isSuperAdmin()) {
            return true;
        }

        return false;
    }

    public function isCustomer(): bool {
        if ($this->rank == 1|| ($this->isSuperAdmin() || $this->isAdmin())) {
            return true;
        }

        return false;
    }

I have rank '3' which equals the isSuperAdmin() function. So when I do the following:

if (Auth::user()->isSuperAdmin())

This works as expected. However when I, as SuperAdmin, try to do the following:

if (Auth::user()->isAdmin())

It doesn't work at all, Laravel doesn't display whatever is between @if(Auth::user()->isAdmin()) in my views when I have the role SuperAdmin. This is the same for all the roles and I don't understand why.. what am I doing wrong?

Ps. I also tried the following in the isAdmin function, which also doesn't work:

if ($this->rank >= 2 || $this->isSuperAdmin()) {
question from:https://stackoverflow.com/questions/65865346/laravel-superadmin-cant-see-other-roles

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

After I removed private $rank everything worked as expected.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...