首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony2分级安全检查

Symfony2分级安全检查
EN

Stack Overflow用户
提问于 2015-08-26 07:25:11
回答 1查看 39关注 0票数 0

我的应用程序架构有一个大问题。我有不同的服务,例如:

PlayerService: - createPlayer (方法将在数据库中创建一个播放器,执行一些api调用并调用ScoreService->createScore)

ScoreService: - createScore (方法将在数据库中创建得分条目,并执行一些api调用。

例如,对于两种服务方法,有两种不同的acl权限。

  • 播放器->写
  • 分数->写

问题是,如果用户有写播放器的权限,但是没有写分数的权限,那么播放器的创建就会失败,而且我的数据状态也不一致,因为一些api调用是在createPlayer方法中完成的。

处理这种情况的最佳方法是什么?可能,我必须在任何方法调用开始时预先检查所有必要的权限。

第二个问题是,事件是什么?如果事件被触发,而侦听器执行一些需要权限的操作,则请求也将失败。

EN

回答 1

Stack Overflow用户

发布于 2015-08-27 11:40:11

当然,在进行任何更改之前,您必须完成所有必需的检查。

但还有别的事。

您说用户可能拥有创建球员的权限,但没有创建分数的权限。如果这是一个有效的情况,"createPlayer“和"createScore”应该在两个不同的步骤中调用。即在您的控制器中(伪代码):

代码语言:javascript
复制
if ($this->userHasCreatePlayerRights($user)) {
    $player = $this->container->get('app.player')->createPlayer($user);
}
if ($this->userHasCreateScoreRights($user)) {
    $score = $this->container->get('app.score')->createScore($player);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32220385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档