这是一个简单的类,它将 WordPress 的 API 包装到 Yii 的基于角色的身份验证管理器中 - 在您的控制器中,您将指定要检查的“角色”(也称为 WordPress 功能)。
<?php public function accessRules()
{
return array(
array('allow',
'actions'=>array('index','view'),
'roles'=>array('publish_posts')
//WordPress capability check.
// See @link http://codex.wordpress.org/Roles_and_Capabilities
),
}
?>
这是您的新 User 类,需要在您的 Yii 配置文件中的 components => user => class = 'wpUser' 部分中添加。这将替换 Yii 的默认 CWebUser(未在配置数组中指定 - 默认加载)。另外-您需要从数组中删除“allowAutoLogin”=> true。
<?php
class wpUser extends CApplicationComponent implements IWebUser, IApplicationComponent {
public function init ()
{
parent::init();
}
function checkAccess ($operation, $params = array()) {
return current_user_can($operation);
}
function getId() {
return get_current_user_id();
}
function getIsGuest () {
$is_user_logged_in = is_user_logged_in();
return ! $is_user_logged_in;
}
function getName () {
$name = wp_get_current_user()->user_login;
return $name;
}
public function loginRequired()
{
wp_login_form(array('redirect' => Yii::app()->getRequest()->getUrl()));
}
}
?>
发表在 Yii 的 Wiki 上