WordPress多个用户角色在一个网站上访问他们的信息?

时间:2013-01-16 作者:David Karigithu

我打算使用Wordpress来验证我正在构建的基于云的SaaS应用程序的概念。我对多租户和Wordpress的研究只是深入了解了共享同一后端的多个网站,然而,我希望有一个网站,但管理部门应该有不同的用户角色,只能访问其相关内容和仪表板来管理和或请求特定数据。3个用户角色的仪表板将有所不同,因此他们可以有效地实现自己想要的功能。

我是否可以以任何方式创建新的用户角色,并将上述权限分配给特定权限(例如供应商、代理、旅行社)?

1 个回复
SO网友:brasofilo

您需要结合一些插件和几个挂钩。

除了角色管理,我建议Adminimize: 根据用户角色清理仪表板非常强大。

然后:

/** 
 * When a registered user tries to visit a page for which he doesn\'t have access,
 * i.e.: http:/example.com/wp-admin/plugins.php,
 * WordPress displays a standard WP error message.
 * This will redirect instead of displaying the message:
 * "You do not have sufficient permissions to access this page."
 */
add_action( \'admin_page_access_denied\', \'access_denied_wpse_57206\' );

function access_denied_wpse_57206()
{
    wp_redirect( home_url() );
    exit();
}

/**
 * Redirect users of an specific role, if they try to access a URL
 * of an admin page that they would have capability to do
 * i.e.: http:/example.com/wp-admin/tools.php
 */
add_action( \'admin_init\', \'admin_init_wpse_81841\' );

function admin_init_wpse_81841()
{
    global $current_user, $pagenow;
    get_currentuserinfo();
    if ( \'tools.php\' == $pagenow && user_can( $current_user, \'editor\' ) ) 
    {
        wp_redirect( admin_url( \'index.php\' ) );
        exit();
    }
    // Add as many conditions as necessary
}

结束
WordPress多个用户角色在一个网站上访问他们的信息? - 小码农CODE - 行之有效找到问题解决它

WordPress多个用户角色在一个网站上访问他们的信息?

时间:2013-01-16 作者:David Karigithu

我打算使用Wordpress来验证我正在构建的基于云的SaaS应用程序的概念。我对多租户和Wordpress的研究只是深入了解了共享同一后端的多个网站,然而,我希望有一个网站,但管理部门应该有不同的用户角色,只能访问其相关内容和仪表板来管理和或请求特定数据。3个用户角色的仪表板将有所不同,因此他们可以有效地实现自己想要的功能。

我是否可以以任何方式创建新的用户角色,并将上述权限分配给特定权限(例如供应商、代理、旅行社)?

1 个回复
SO网友:brasofilo

您需要结合一些插件和几个挂钩。

除了角色管理,我建议Adminimize: 根据用户角色清理仪表板非常强大。

然后:

/** 
 * When a registered user tries to visit a page for which he doesn\'t have access,
 * i.e.: http:/example.com/wp-admin/plugins.php,
 * WordPress displays a standard WP error message.
 * This will redirect instead of displaying the message:
 * "You do not have sufficient permissions to access this page."
 */
add_action( \'admin_page_access_denied\', \'access_denied_wpse_57206\' );

function access_denied_wpse_57206()
{
    wp_redirect( home_url() );
    exit();
}

/**
 * Redirect users of an specific role, if they try to access a URL
 * of an admin page that they would have capability to do
 * i.e.: http:/example.com/wp-admin/tools.php
 */
add_action( \'admin_init\', \'admin_init_wpse_81841\' );

function admin_init_wpse_81841()
{
    global $current_user, $pagenow;
    get_currentuserinfo();
    if ( \'tools.php\' == $pagenow && user_can( $current_user, \'editor\' ) ) 
    {
        wp_redirect( admin_url( \'index.php\' ) );
        exit();
    }
    // Add as many conditions as necessary
}