Clicky

Skocz do zawartości


Zdjęcie
- - - - -

Auth, ACL dostęp do akcji

1 odpowiedź w tym temacie

  • Zaloguj się, aby dodać odpowiedź

#1 rasgan

rasgan

    Młodszy Mastah

  • Użytkownik
  • PipPip
  • 241 postów
  • Skąd:Kleszczów

Napisano 11 luty 2012 - 00:22

Hej,

czy ktoś może mi w ludzki sposób wyjaśnić jak działa w Fuelu zabezpieczenie kontrolera dla danej roli i jak to zrobić? W kohanej robiło się $_secure_access i $_secure_action a później się sprawdzało tylko w before czy jest dostęp (ja mam tak jak we wklejonym kodzie) ale jak to zrealizować w Fuelu bo chyba mnie przerasta to na dziś.


// pobranie nazwy akcji
            $action_name = $this->request->action();

            // sprawdzenie czy nie admin, jeśli admin, to globalny dostęp
            if (!Auth::instance()->logged_in('admin'))
            {
                // sprawdzenie czy kontroler i akcja potrzebują odpowiedniego dostępu
                if (($this->auth_required !== FALSE AND Auth::instance()->logged_in($this->auth_required) === FALSE)
                    OR (is_array($this->secure_actions) AND array_key_exists($action_name, $this->secure_actions)
                        AND Auth::instance()->logged_in($this->secure_actions[$action_name]) === FALSE)
                )
                {
                    // zapisanie obecnego miejsca w sesji
                    Session::instance()->set('access_link', $this->request->uri());

                    // użytkownik jest zalogowany ale nie ma dostępu
                    if (Auth::instance()->logged_in())
                    {
                        //TODO brak dostępu do kontrolera lub akcji
                        echo 'Brak dostępu';
                    }
                    // użytkownik nie zalogowany, przekieruj na stronę logowania
                    else
                    {
                        //TODO odpowiedni route do strony logowania
                        $this->request->redirect(Route::url('default'));
                    }
                }
            }

Szczęścia w mrokach...

#2 thejw23

thejw23

    Senior Mastah

  • Webmastahy
  • PipPipPip
  • 824 postów

Napisano 12 luty 2012 - 21:13

Możesz zrobić podobnie, tutaj masz funkcje Auth, tutaj podobny temat i kilka podpowiedzi. Przydatne też może być:
Auth::has_access(array($req->route->controller, $req->route->action);
//config
'roles' => array(
        '#'          => array('website' => array('read')), // default rights
        'banned'    => false,
        'user'      => array('comments' => array('create', 'read')),
        'moderator'  => array('comments' => array('update', 'delete')),
        'admin'      => array(
            'website'  => array('create', 'update', 'delete'),
            'admin'    => array('create', 'read', 'update', 'delete'),
        ),
        'super'      => true,
    ),





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych