Re: setAdminContainers changed to what ?
Dan Rossi <liveuser-zu2dZaOKXTSc5qR/[email protected]> Thu, 26 Jan 2006 07:40:41 +1100
| Newsgroups | gmane.comp.php.pear.liveuser |
|---|---|
| Message-ID | <[email protected]> |
Just to confirm, init() needs to be called before doing anything with
logout or i got the session destroy error.
function Feeds_Admin_LiveUser_Events()
{
parent::Feeds_Admin_LiveUser();
$this->liveuser =& LiveUser::factory($this->conf);
$this->liveuser->dispatcher-
>addObserver(array($this,'get'),null,'LiveUser');
if (!$this->liveuser->init()) {
var_dump($this->liveuser->getErrors());
die();
}
$handle = array_key_exists('handle', $_REQUEST) ? $_REQUEST['handle']
: null;
$password = array_key_exists('password', $_REQUEST) ?
$_REQUEST['password'] : null;
$logout = array_key_exists('logout', $_REQUEST) ?
$_REQUEST['logout'] : null;
$remember = array_key_exists('remember', $_REQUEST) ?
$_REQUEST['remember'] : null;
if ($logout) {
$this->liveuser->logout(true);
}
}
On 26/01/2006, at 7:29 AM, Dan Rossi wrote:
> Ok i finally worked out the init method had to be called on the
> internal pages too, however the perm isnt loading into the session so
> checkrights will always be false :\
>
> array(1) { ["ludata"]=> array(3) { ["auth"]=> array(3) {
> ["propertyValues"]=> array(4) { ["auth_user_id"]=> string(1) "1"
> ["handle"]=> string(12) "electroteque" ["passwd"]=> string(32)
> "634364643466346634466346" ["is_active"]=> bool(true) }
> ["loggedIn"]=> bool(true) ["currentLogin"]=> int(1138218888) }
> ["auth_name"]=> string(2) "DB" ["idle"]=> int(1138219214) } }
>
> here is what i have
>
> For the login page a class is setup with this constructor
>
> function Feeds_Admin_LiveUser_Login()
> {
> parent::Feeds_Admin_LiveUser();
>
> $logconf = array('mode' => 0666, 'timeFormat' => '%X %x');
> $logger = &Log::factory('file', 'logs/liveuser.log', 'ident',
> $logconf);
>
>
> $this->liveuser =& LiveUser::factory($this->conf);
> $this->liveuser->log->addChild($logger);
> $this->liveuser->dispatcher-
> >addObserver(array($this,'get'),null,'LiveUser');
>
>
>
>
> $handle = array_key_exists('handle', $_REQUEST) ? $_REQUEST['handle']
> : null;
> $password = array_key_exists('password', $_REQUEST) ?
> $_REQUEST['password'] : null;
> $logout = array_key_exists('logout', $_REQUEST) ?
> $_REQUEST['logout'] : null;
> $remember = array_key_exists('remember', $_REQUEST) ?
> $_REQUEST['remember'] : null;
> if ($logout) {
> $this->liveuser->logout(true);
> } elseif(!$this->liveuser->isLoggedIn() || ($handle &&
> $this->liveuser->getProperty('handle') != $handle)) {
> if (!$handle) {
> $this->liveuser->login(null, null, true);
> } else {
> $this->liveuser->login($handle, $password, $remember);
> }
> }
>
>
> if (!$this->liveuser->init()) {
> var_dump($this->liveuser->getErrors());
> die();
> }
>
> the observer is set to that class with a method get
>
> function get($notification)
> {
> ob_start();
> if (method_exists($this,$notification->getNotificationName()))
> call_user_func(array($this,$notification-
> >getNotificationName()),$notification);
> ob_end_clean();
> }
>
> which then calls each method set within it ie
>
> function onUnfreeze($notification)
> {
> HTTP::redirect('index.php');
> }
>
>
>
> function onLogin($notification)
> {
> HTTP::redirect('index.php');
> }
>
> In the internal pages a seperate class similar to the login class is
> setup , its constructor is
>
> function Feeds_Admin_LiveUser_Events()
> {
> parent::Feeds_Admin_LiveUser();
> $this->liveuser =& LiveUser::factory($this->conf);
>
> $this->liveuser->dispatcher-
> >addObserver(array($this,'get'),null,'LiveUser');
>
>
> $handle = array_key_exists('handle', $_REQUEST) ?
> $_REQUEST['handle'] : null;
> $password = array_key_exists('password', $_REQUEST) ?
> $_REQUEST['password'] : null;
> $logout = array_key_exists('logout', $_REQUEST) ?
> $_REQUEST['logout'] : null;
> $remember = array_key_exists('remember', $_REQUEST) ?
> $_REQUEST['remember'] : null;
> if ($logout) {
> $this->liveuser->logout(true);
> }
>
> if (!$this->liveuser->init()) {
> var_dump($this->liveuser->getErrors());
> die();
> }
>
>
> }
>
> but the observer methods are
>
> function postLogout()
> {
> HTTP::redirect('login.php');
> }
>
>
> function forceLogin(&$notification)
> {
> $this->liveuser->logout(true);
> }
>
> The baseclass for the admin pages checks the rights like
>
> $lu = new Feeds_Admin_LiveUser_Events();
>
> if (!$lu->liveuser->checkRight(array(4,5,6))) {
> Var_Dump($_SESSION);
> exit;
> $lu->liveuser->logout(true);
> }
>
>
> What have i done wrong then ?
>
>
> _______________________________________________
> LiveUser mailing list
> [email protected]
> http://mailman.21st-hq.de/mailman/listinfo/liveuser
>