Mojavi2で“user1とuser2だけに見せたいページ”みたいな認証の仕方ができないかと聞かれました。
デフォルトのPrivilegeAuthorizationHandlerだとできないようなのでこんな感じで複数権限一度に指定できるPrivilegesAuthorizationHandlerを作ってみました。(sが付いている)
class FooAction extend Action {
function getPrivilege(&$controller, &$request, &$user) {
return array(
array("user1", "members"),
array("user2", "members")
);
}
}
PrivilegesAuthorizationHandler.class.php.gz
index.phpで元の奴の変わりに使う。
//require_once(AUTH_DIR . 'PrivilegeAuthorizationHandler.class.php');
require_once(AUTH_DIR . 'PrivilegesAuthorizationHandler.class.php');
require_once(USER_DIR . 'PrivilegeUser.class.php');
//$authHandler =& new PrivilegeAuthorizationHandler;
$authHandler =& new PrivilegesAuthorizationHandler;
$user =& new PrivilegeUser;
$controller->setAuthorizationHandler($authHandler);
$controller->setUser($user);