Changeset 2015

Show
Ignore:
Timestamp:
02/10/2008 12:23:00 AM (11 months ago)
Author:
Shadowhand
Message:

Updated Auth demo controller to use Forge.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/modules/auth/controllers/auth.php

    r2010 r2015  
    22 
    33class Auth_Controller extends Controller { 
    4  
    5         protected $inputs = array 
    6         ( 
    7                 'email' => array 
    8                 ( 
    9                         'label' => 'Email Address', 
    10                         'rules' => 'required[6,127]|valid_email' 
    11                 ), 
    12                 'username' => array 
    13                 ( 
    14                         'label' => 'Username', 
    15                         'rules' => 'required[4,32]' 
    16                 ), 
    17                 'password' => array 
    18                 ( 
    19                         'label' => 'Password', 
    20                         'type'  => 'password', 
    21                         'rules' => 'required[5,40]' 
    22                 ), 
    23                 'submit' => array 
    24                 ( 
    25                         'type' => 'submit', 
    26                         'value' => 'Create New User' 
    27                 ) 
    28         ); 
    294 
    305        public function __construct() 
     
    338 
    349                // Load some libraries 
    35                 foreach(array('profiler', 'auth', 'session') as $lib) 
     10                foreach(array('auth', 'session') as $lib) 
    3611                { 
    3712                        $class = ucfirst($lib); 
     
    4823        function create() 
    4924        { 
    50                 $form = new Form_Model; 
    51                 $form->title('Create User') 
    52                          ->action('auth/create') 
    53                          ->inputs($this->inputs); 
     25                $form = new Forge(NULL, 'Create User'); 
     26 
     27                $form->input('email')->label(TRUE)->rules('required|length[4,32]'); 
     28                $form->input('username')->label(TRUE)->rules('required|length[4,32]'); 
     29                $form->password('password')->label(TRUE)->rules('required|length[5,40]'); 
     30                $form->submit('Create New User'); 
    5431 
    5532                if ($form->validate()) 
     
    6037                        if ( ! $user->username_exists($this->input->post('username'))) 
    6138                        { 
    62                                 foreach($form->data() as $key => $val) 
     39                                foreach($form->as_array() as $key => $val) 
    6340                                { 
    6441                                        // Set user data 
     
    7552 
    7653                // Display the form 
    77                 echo $form->build(); 
     54                echo $form->render(); 
    7855        } 
    7956 
    8057        function login() 
    8158        { 
    82                 // Get inputs 
    83                 $inputs = $this->inputs; 
     59                if ($this->session->get('user_id')) 
     60                { 
     61                        $form = new Forge('auth/logout', 'Log Out'); 
    8462 
    85                 // Change the submit button 
    86                 $inputs['submit']['value'] = 'Attempt Login'; 
     63                        $form->submit('Logout Now'); 
     64                } 
     65                else 
     66                { 
     67                        $form = new Forge(NULL, 'User Login'); 
    8768 
    88                 // Remove email, we don't need it 
    89                 unset($inputs['email']); 
    90  
    91                 if ( ! $this->session->get('user_id')) 
    92                 { 
    93                         // Create the login form 
    94                         $form = new Form_Model; 
    95                         $form->title('Test Login') 
    96                                  ->action('auth/login') 
    97                                  ->inputs($inputs); 
     69                        $form->input('username')->label(TRUE)->rules('required|length[4,32]'); 
     70                        $form->password('password')->label(TRUE)->rules('required|length[5,40]'); 
     71                        $form->submit('Attempt Login'); 
    9872 
    9973                        if ($form->validate()) 
    10074                        { 
    10175                                // Load the user 
    102                                 $user = new User_Model($form->data('username')); 
     76                                $user = ORM::factory('user', $form->username->value); 
    10377 
    10478                                // Attempt a login 
    105                                 if ($this->auth->login($user, $form->data('password'))) 
     79                                if ($this->auth->login($user, $form->password->value)) 
    10680                                { 
    10781                                        echo "<h4>Login Success!</h4>"; 
    10882                                        echo "<p>Your roles are:</p>"; 
    10983                                        echo Kohana::debug($this->session->get('roles')); 
     84                                        return; 
    11085                                } 
    11186                                else 
    11287                                { 
    113                                         echo "<h4>Login Failed!</h4>"; 
     88                                        $form->password->add_error('login_failed', 'Invalid username or password.'); 
    11489                                } 
    11590                        } 
    11691                } 
    11792 
    118                 if ($this->session->get('user_id')) 
    119                 { 
    120                         $form = new Form_Model; 
    121                         $form->title('Logout') 
    122                                  ->action('auth/logout') 
    123                                  ->inputs(array 
    124                                  ( 
    125                                         'logout' => array 
    126                                         ( 
    127                                                 'type' => 'submit', 
    128                                                 'value' => 'Logout' 
    129                                         ) 
    130                                  )); 
    131                 } 
    132  
    13393                // Display the form 
    134                 echo $form->build(); 
     94                echo $form->render(); 
    13595        } 
    13696