Log in

wordpress的角色和权限控制的实现

Auteur:neo yang Tijd:2021/11/09 Lezen: 7755
一、wordpress系统角色和权限的配置 这个配置存储在wp_options表的中。 通过以下方式可以获取到 […]

一、wordpress系统角色和权限的配置

这个配置存储在wp_options表的中。

通过以下方式可以获取到:

$roles= new WP_Roles();

或者

get_option(wp_user_roles);

二、role和cap

role是角色,cap是能力。

一个角色有多项能力。当一个用户成为这个角色,便会将角色和相应的能力的配置写到这个用户的meta数据中(wp_usermetas表)。

User对象中会有相关数据。

用$user->roles可以取到相关角色数据。

用$user->allcaps可以取到相关能力。

三、三个函数

set_role()

设置用户的角色,会删除用户之前所有的角色,设置新的角色。

remove_role()

两种用法:

remove_role(role1):表示从系统角色配置(wp_option)中删除role1。

$user->remove_role(role1):表示从用户所有角色中删除role1。

add_role()

也是两种用法。

add_role(role1):表示向系统角色配置(wp_option)中增加role1。

$user->add_role(role1):表示从给用户增加角色role1,但不会影响用户已有角色。

四、判断权限

通过判断用户角色实现


通过判断能力实现

五、插件角色系统的最佳实践

可以参考bbpress。

wordpress既有的角色作为一个“角色系列”。

插件自己的角色作为另一个“角色系列”。

每一个角色系列,一个用户只能有一个。

插件的角色系统的实现(存储、配置、权限判断)和wordpress一样。



copyright © www.lyustu.com alle rechten voorbehouden.
Thema: TheMoon V3.0. Auteur: neo yang