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);

Comments


Option