用户登录

下面我们在自己的区块插件里使用一下权限 .. 复制一下 BlockBase.php 里面的这个 blockAccess 方法 .. 把它粘贴到我们自己的类里面 ..

这个方法里用到了核心的 AccountInterface .. 还有 AccessResult .. 所以在我们定义的类的一开始去使用一下它们 ..

一个是 AccountInterface .. 它是在 Drupal\Core\Session\AccountInterface .. 还有一个就是 AccessResult .. 它在 Drupal\Core\Access 的下面 ..

在这个 blockAccess 的方法里面,我们可以去做一些判断 .. 然后再决定返回什么东西 .. 比如现在返回的是 AccessResult::allowed() .. 这样这个区块就可以显示 .. 这次我们把它改成 forbidden ..

保存一下 .. 回到前台页面 .. 注意我们自己定义的这个区块的显示 .. 刷新一下 .. 这个区块就不见了 .. 回到这个区块类 .. 再试一下 allowedIf ..

我们可以设置一个条件给这个方法 .. 比如我想判断一下当前用户是不是匿名用户 .. 如果是就允许显示这个区块 .. 在 AcceountInterface 里面有一个 isAnonymous 方法,如果用户是匿名用户,这个方法会返回 TRUE ..

使用一下 $account 的 isAnonymous 方法 .. 因为 $account 是 AccountInterface 的一个实例,所以我们可以使用这个方法 ..

保存 .. 再去重建一下 Drupal 的缓存 .. 回到前台页面 .. 现在登录的用户的身份是管理员 .. 刷新一下 .. 这里仍然没有显示我们自定义的区块 ..

再试一下 .. 用一下匿名用户去访问一下这个页面 .. 在这个页面上会显示我们定义的区块 .. 因为当前用户是一个匿名用户 ...

使用权限《 Drupal 8 开发:区块 》

统计

13679
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点