codeigniter允许的用户操作

时间:2011-02-01 18:14:55

标签: codeigniter

通常,codeigniter mvc控制器接受id作为控制器功能的参数。例如: /照片/编辑/ 1

用户可以从照片控制器编辑图像ID 1。防止用户编辑其他人的图像的最佳做法是什么?例如编辑ID 2?限制必须包括的不仅仅是验证登录用户,因为登录用户仍然可以编辑图像2.

我在想我会写一个实现权限函数的库,在所有控制器函数上调用它。我会将用户ID和url传递给库函数,该库函数将包含验证用户是否可以执行该函数的逻辑,或者在这种情况下编辑图像。

我看到的问题是......为我的网站的所有功能编写逻辑代码将是乏味的,因为每个都是不同的逻辑。是否有更好的通用方法?

1 个答案:

答案 0 :(得分:3)

您通常会在控制器本身处理检查,因此,例如,如果您拥有当前登录的用户,以及数据库中的照片对象,则只需将照片的所有者存储在数据库记录中并进行比较。

真的不是那么乏味,你只是在处理对象之前验证对象的所有权。

...示例

if ($the_user->id == $the_photo->owner_id) {
    //allow their actions
}
else {
    redirect('/');   //if not, kick em out
}