当前位置: 首页 > 知识库问答 >
问题:

Laravel自定义用户角色

廉高邈
2023-03-14

我已经基于命名的路由为Laravel(4.2)创建了自定义角色管理器,例如:

users.index, customers.create, vendors.update, orders.store, users.edit, customers.update, etc.

基本上,任何注册为Route::resource(…) 在路由中。php文件(带有一些自定义命名路由)

我正在使用此方法检查权限:


namespace Acme\Users;

...

class User extends \Eloquent implements UserInterface, RemindableInterface {

    ...

    public function hasPermissions($route)
    {
        $actions = ['users.index', 'users.create', 'users.edit', 'users.delete']; // fake data
        if ( ! in_array($route, $actions))
        {
            return false;
        }
        return true;
    }
}

然后,在应用程序/过滤器中。php,我正在根据用户检查当前路由。


Route::filter('auth', function()
{
    if (Auth::guest())
    {
        if (Request::ajax())
        {
            return Response::make('Unauthorized', 401);
        }
        else
        {
            return Redirect::guest('login');
        }
    }

    // check if the current authenticated User has permissions to access this route
    if ( ! Auth::user()->hasPermissions(Route::current()->getName())) 
    {   
        return Redirect::route('dashboard.index');
    }
});

使用GET方法,任何路由都可以正常工作,但是当涉及到PUT、PATCH、POST时,请删除route::current()-

有没有更好的方法?我希望一切都自动发生,我有一个解决这个问题的方法,但是它非常复杂。有没有办法在PUT、PATCH、POST或DELETE请求期间获取路由名称?

非常感谢。


共有1个答案

邰棋
2023-03-14

试着把你的验证码放在过滤器后面。

App::after(function($request, $response)
{
    if ( ! Auth::user()->hasPermissions(Route::current()->getName())) 
    {   
        return Redirect::route('dashboard.index');
    }
});
 类似资料:
  • 自定义角色:只有团队负责人、团队管理员和地图管理员三个角色可以创建自定义角色,可以自定义角色的名称和权限。 自定义角色分为: 自定义地图角色:对地图级别进行权限设置 自定义图层角色:对图层级别进行权限设置 自定义子图层角色:对子图层级别进行权限设置 自定义业务流角色:对业务流层级进行权限设置 1.创建自定义角色: 以地图角色创建为例,点击“创建新角色”,出现创建创建新角色的弹框。点击“地图角色”。

  • 现在,我正在使用类似的方法来验证我的基本站点上的用户: 如何修改使用自定义列作为用户名的代码?https://laravel.com/docs/5.3/passport#password-grant-tokens

  • 我有3个用户角色:管理员、客户和员工。 登录后,每个角色将重定向到特定的仪表板,例如:-管理员:网站。com/admin-客户:网站。com/客户-员工:网站。通讯员/雇员 此时,无论我使用哪个用户角色,都可以通过这些网址访问所有内容。 限制客户打开admin的最简单方法是什么 Laravel版本5.2.45 PHP版本7.2我正在使用共享托管提供商。谢谢你们

  • 用户自定义 本章讲介绍一些开发过程中常用需要自定义的东西。 一、自定义404页面 一般比较完整的站点,都会有自定义的404页面,既美观统一、又能保持访问者不至于因为错误页面而退出网站。 比如说duowan.com的404页面,是一个坦克大战的小游戏,可以在线玩并且成绩还会进入排行榜,和其他网友一较高下。 对404错误页面的建议: 建议不要使用PHP动态页面,纯HTML页面会比较好。 具特色,但不能

  • 我们目前正在与社交名媛Laravel的谷歌登录应用程序。我们有一个获得许可号ex的Auth用户。264.我们做了一个函数,它返回一个包含所有二进制数的数组,这个权限号被取消了。 由于每次加载页面时调用此函数可能会有点繁重,因此我们考虑在创建Auth::user()时添加此函数一次。我们曾考虑在模型中添加一个自定义构造函数,但我们无法使其工作。 但是我们不能让它工作,在调用这个函数时没有值。 太长,

  • 本文向大家介绍Android自定义圆角ImageView,包括了Android自定义圆角ImageView的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了。 java类如下: 定义一个attr.xml的文件,放在values目录下面,内容如下: 使用示例如下: 先要声明属性的名字空间: 然后再写跟一般定义View一样: 效果如图: 以上代码简单介绍了Android自定义圆