我有一个项目,您可以在登录后注册、登录和上传带有描述和名称的照片。我使用了访问控制过滤器,因此只有注册用户才能上传和编辑照片。
问题是每个注册用户都可以更改照片的描述和名称,即使他们没有上传。
如何确保用户只能编辑自己照片的说明?
在 yii2 文档中,我看到了 RBAC,但我不认为我需要 RBAC,因为我不需要很多角色。
我只需要 1 个角色,我的项目对于使用 RBAC 来说太简单了。我还认为我可以执行一个循环,在那里我可以检查用户是否拥有照片,但我认为这不是一个好的做法。
我假设你有一个表格和一个模型,其中包含所有上传的图像数据。我建议您在该模型中添加 BlameableBehavior,并添加created_by
和updated_by
属性(或配置自定义属性)。
之后,在运行任何actionUpdate()
和actionDelete()
之前,您可以检查当前用户的 id 是否与创建者相同。