current user can edit user?

时间:2014-11-19 作者:user1147145

我想知道使用以下方法是否是一种良好的做法:

if ( current_user_can( \'edit_user\', $user_id ) ) {
    // do something
}
因为在Wordpress文档中,a没有看到此功能

3 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

是的,在执行与代码相关的操作之前,检查用户是否能够执行某些操作是一种很好的做法。

例如,如果用户没有保存自定义帖子类型所需的功能,或者没有向没有manage_options 能力(超级管理员和正常管理员)。

在这种情况下,错误的做法是假设用户有必要的角色来做这些事情,并且无论如何都要做。这并不意味着您应该在代码中填充current_user_can 尽管如此,在很多地方(如注册管理菜单),检查都是由WP Core本身执行的

SO网友:SkyShab

它所做的一切就是检查当前用户与相关用户的能力,并返回一个布尔值。我认为,如果不更全面地了解您正在尝试做什么,就无法将“良好实践”应用于此场景。(如果布尔值为真,将执行什么代码?)

尽管如此,我认为简单地使用这个检查没有问题,而且它肯定不是“坏习惯”。所以,努力吧。

SO网友:David

current_user_can( \'edit_user\', $user_id )
该术语检查»元能力«edit_user. 默认情况下,它映射到功能edit_users, 这是管理员角色的典型功能。此外,它还比较了当前用户的ID和作为参数给定的用户ID。如果它们匹配,则语句变为TRUE, 因为每个用户都应该可以编辑自己的配置文件。

这些评估可能会受到map_meta_cap 滤器因此,插件可以向一个用户(或一组用户)授予所有用户子集的权限。考虑一个»主持人«角色或类似的角色。

每当代码更改某些与用户相关的设置或用户数据时,如果当前用户有权编辑此用户数据,则应执行此检查。

结束

相关推荐

Wp.getUsersBlog XMLRPC暴力攻击/漏洞

周末假期过后,我管理的一个较大的网站遭到了暴力攻击。攻击者试图使用wp.getUsersBlogs 函数和常用用户名和密码列表。快速的研究表明,在成功尝试后,此函数将返回用户是否是管理员。我使用IP黑名单云插件作为安全的一部分,因此它记录了攻击,但由于此攻击方法不使用正常的登录方法,因此不会发生实际的黑名单。无论如何,这都不会有什么帮助,因为每次尝试后,攻击者都会使用一个新的IP(到目前为止总共超过15000个IP)(第二次攻击超过20000个)。我确实找到了一个完全禁用XML-RPC(API)的插件,但