- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 Zizaco/entrust在 Laravel 5.1 中。我想通过使用复选框明确授予特定角色的权限。这是我的代码:
获取角色:
fetchRoles: function(){
this.$http.get('api/role',function(data){
this.$set('roles',data);
});
}
获取权限:
fetchPermissions: function(){
this.$http.get('api/permission',function(data){
this.$set('permissions',data);
});
}
这是分配角色和权限的表格:
<table class="table table-bordered table-responsive">
<thead>
<th>Permissions/Roles</th>
<th v-for="role in roles">
@{{ role.display_name }}
</th>
</thead>
<tbody>
<tr v-for="permission in permissions">
<td>@{{ permission.display_name }}</td>
<td v-for="role in roles">
<input type="checkbox" value="@{{ permission.id }}" name="roles[@{{ role.id }}][permissions][]">
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>
<button type="submit" class="btn btn-primary">Alter Permission</button>
</td>
</tr>
</tfoot>
</table>
输出如下: Screenshot of Output
权限也通过以下方法成功分配:
public function changePermission(Request $request){
$input = $request->all();
$roles = Role::all();
foreach($roles as $role)
{
$permissions_sync = isset($input['roles'][$role->id])? $input['roles'][$role->id]['permissions'] : [];
$role->perms()->sync($permissions_sync);
}
Flash::success('Successfully modified permissions!');
return redirect()->back();
}
如果角色具有特定权限,我唯一需要做的就是选中复选框。
如果它在 php 对象中,我可以执行以下操作:
@if(count($permissions)>0)
@foreach($permissions as $permission)
<tr>
<td>{{$permission->display_name}}</td>
@if(count($roles)>0)
@foreach($roles as $role)
<td><input type="checkbox" value="{{$permission->id}}" name="roles[{{$role->id}}][permissions][]" @if($role->hasPermission($permission->name)) checked="checked" @endif></td>@endforeach @endif </tr> @endforeach @endif
如何在 Vue JS 中使用 hasPermission() 方法?
最佳答案
我遇到了同样的问题,经过一段时间的真正寻找答案后,我决定只看 VueJS 文档。具体this part about checkboxes .
所以看起来 vue 将每个复选框的值存储在 'checkedNames' 数组中,该数组绑定(bind)到所有复选框。由于我们有多个权限和分配了这些权限的角色,我们基本上可以创建相同的效果。
这是我用自己的方法所做的一个非常基本的例子。
在我的模板中,我有角色和权限的 Split View:
<div class="roles">
<div v-for="role in roles">
<a v-on:click="update(role)">{{ role.name }}</a>
</div>
</div>
<div class="perms">
<div v-for="perm in permissions">
<input type="checkbox"
v-model="currentPerms"
v-bind:id="perm.id"
v-bind:value="perm.name"> {{perm.display_name}} {{perm.name}}
</div>
</div>
由于复选框绑定(bind)到“currentPerms”数组,我们可以通过选中复选框或设置值来更新该数组,因为它是响应式(Reactive)的。
在这种情况下,我使用 lodash通过单击的角色的值进行映射。
<script>
...
update: function(role) {
this.currentPerms = _.map(role.perms, permission => {
return permission.name;
});
}
...
</script>
我已经做了一个 example on JSFiddle .希望这可以帮助!
关于laravel - 在 Vue JS 和 Laravel 5.1 + Entrust 中检查特定角色的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37936725/
我的角色是,用户必须先获得“批准”,然后才能访问网站的某些部分。 “未批准”的角色 ID 为 5,已批准的角色 ID 为 2。 在我的管理 View 中,我希望获取角色 ID = 5 的所有用户,然后
我正在为角色使用 entrust,我必须进行迁移,但是当我想执行 php artisan entrust:migration 时,我得到了这个错误 [Symfony\Component\Console
我真的不知道出了什么问题,但我无法使用此查询添加外键约束。 alter table `__acc_role_user` add constraint `__acc_role_user_user_id_
我正在安装 laravel 4 包 Entrust。我创建迁移文件。当我尝试运行迁移时,我收到有关外键约束的错误。这是关于某些 PhpMyAdmin 设置的问题吗?我直接从powershell复制下错
作为“批准”流程的一部分,我希望管理员根据需要为用户分配不同的角色。 我想“分离”用户的当前角色并添加一个新角色。 $id = Input::get('submit'); $user = User::
我使用 Laravel 5 和 Entrust 创建了一个基于角色的项目,一切正常,直到我尝试更新用户的角色列表,该血腥的“完整性约束违规”提醒我在调用时 $user->attachRoles($ro
我使用在本地系统上创建的 keystore 文件创建了 CSR。 一旦我收到来自 CA 的 CertificateBundle2.crt 和 ServerCertificate.crt,即 Entru
我在 Laravel 5.3 中使用 Entrust 包来管理用户角色和权限,它运行良好。 问题是我的用户 属于许多 应用,所以我需要检查角色和权限,考虑到应用在哪个应用中他们尝试在每种情况下执行操作
当我使用最新的 Laravel 5.2.2 和 Entrust ("zizaco/entrust": "5.2.x-dev") 时,我遇到了这个错误,不知道如何解决这个问题: Call to unde
我为 User ACL 安装并配置了 Laravel 5.2,它工作正常我安装了zizaco/entrust运行此命令时打包 php artisan migrate (用于创建 roles、permi
为什么当我运行这个时文件 entrust.php 没有被创建: php artisan vendor:publish 我正在关注 this配置,这是我的 composer.json "zizaco/e
我有来自 Entrust 的三个文件:*.csr、*.key 和 *.crt。 到目前为止: 我已使用 OpenSSL 将 *.key 和 *.crt 放入 PKCS12 keystore 我已经使用
我正在开发一个控制面板应用程序,其中我有多个用户角色,例如 globaladmin、编辑器等。现在我想将这些角色与单个 UserController 资源一起使用。 例如,globaladmins 应
我是 Laravel 的新手,我正在开发一个具有用户、角色和权限的应用程序。为此,我使用 Zizaco/Entrust。我几乎完成了所有步骤,但无法显示 403 的自定义页面。我的代码如下: Perm
搜索了所有可能的答案后,我仍然不知道如何解决这个问题。我正在为 Laravel 使用 zizaco/entrust 包,每次我将数据保存到 数据库 时,它都会返回一个错误: BadMethodCall
在 Zizaco/entrust的 Laravel Entrust,如何设置与 Eloquent 的 Entrust 类关系,以便获得角色拥有的权限列表,如下所示: // get admin role
我是 laravel 的新手。我安装了 laravel 5.2 。我已经在 laravel 中完成了 CRUD。现在我想集成 laravel 身份验证包。所以我选择zizaco\entrust。 我遵
我已经安装了 Entrust通过将其添加到我的 composer.json 文件并运行 composer update 并按照信中的所有说明进行操作,将其打包到我的 Laravel 5.1 应用程序中
我正在使用 Laravel 5 开发应用程序,我想使用 Zizaco/Entrust 为用户分配角色和权限。为了更好地理解,让我举个例子: 我的数据库中有 4 个角色: guest 、用户、管理员、所
我不确定如何传递给定的证书来启动 https 服务器。 Entrust 提供了以下文件: 1. 根证书。 (.txt) 2.链根证书文件。 (.txt) 3.链证。 (.txt) 4. 服务器证书。
我是一名优秀的程序员,十分优秀!