繁体   English   中英

阻止通过用户ID访问用户个人资料页面

[英]prevent access to user profile page from user id

我有一个具有以下网址的用户个人资料页面:www.XXXXXXX.com/userid/45

当用户将/ userid / 45更改为/ userid / 47时,是否有一种方法可以防止访问其他页面

根据您使用的语言,在用户个人资料页面上类似以下内容:

if url_segment(2) != user_info['userid']
  render no_permission
end

您可能要看一下Zend_Acl。

http://framework.zend.com/manual/zh/zend.acl.introduction.html

这将允许您基于发出请求的角色的分配特权来控制对某些资源(例如,配置文件)的访问。 您还可以使用断言指定更细粒度的访问。

因此,举例来说,您为在您网站上注册的用户指定了“注册”角色,该用户也将拥有个人资料页面。 您的规则可能如下所示:-

“已注册”可以“显示”“个人资料”“如果是他们的个人资料”。

角色:“注册”

权限:“展示”

资源:“个人资料”

断言:检查所有权的代码

我一直在wordpress中寻找这个问题,只有在发布答案后我才意识到您在问wordpress以外的其他问题……哦,对那些犯了同样错误的人来说,这是一样的东西,但是对于wordpress:

您可以通过将==更改为!=并仅输入管理员ID(通常为“ 1”)来修改它,以使其重定向所有用户而不是仅重定向一个用户。

add_action('admin_init', 'redirect_to_forum');
function redirect_to_forum(){
    $current_user=wp_get_current_user();

    if($current_user->user_id == "47"){
        header('Location: http://somewhereelse.com');
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM