Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
codeigniter允许的用户操作_Codeigniter - Fatal编程技术网

codeigniter允许的用户操作

codeigniter允许的用户操作,codeigniter,Codeigniter,通常,codeigniter mvc控制器接受id作为控制器功能的参数。例如: /照片/编辑/1 用户将从照片控制器编辑图像id 1。防止用户编辑其他人的图像的最佳做法是什么?例如,编辑id 2?限制必须包括不仅仅是验证登录用户,因为登录用户仍然能够编辑图像2 我想我会编写一个实现权限函数的库,该函数在所有控制器函数上都被调用。我将把用户id和url传递给库函数,库函数将包含验证用户是否可以执行该函数或在本例中编辑图像的逻辑 我看到的问题是..为我的站点的所有功能编写逻辑代码会很枯燥,因为每个功

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

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

我想我会编写一个实现权限函数的库,该函数在所有控制器函数上都被调用。我将把用户id和url传递给库函数,库函数将包含验证用户是否可以执行该函数或在本例中编辑图像的逻辑


我看到的问题是..为我的站点的所有功能编写逻辑代码会很枯燥,因为每个功能都有不同的逻辑。是否有更好的普遍做法?

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

这并不是那么乏味,您只是在处理对象上的操作之前验证对象的所有权

例如

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

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

这并不是那么乏味,您只是在处理对象上的操作之前验证对象的所有权

例如

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