For 1) I'm not sure if we should be doing that either but I know I'm doing 
it for the same reason you are... :-)

----- Original Message ----- 
From: "BeanDog" <[EMAIL PROTECTED]>
To: "CakePHP" <cake-php@googlegroups.com>
Sent: Thursday, September 25, 2008 7:33 PM
Subject: Auth component - enforcing password strength and password 
confirmation entry


>
> I've figured out a pretty clean way to make a user registration form
> that validates a password confirmation and password strength, without
> extending the Auth component or any other trickery.
>
> I wanted some feedback.  First, should I be using value=>'' on the
> password and password2 form elements?  If I don't it seems to fill in
> those boxes with the hash and plaintext password (respectively).
> Second, how do my validation functions look?  They're my first attempt
> at custom validation.  They seem to work OK.
>
> Here's my register view:
>
> <h1>Register</h1>
> <?php
> echo $form->create('User', array('action' => 'register'));
> echo $form->input('username');
> echo $form->input('password', array('value'=>''));
> echo $form->input('password2', array('label'=>'Repeat Password',
> 'type'=>'password', 'value'=>''));
>
> echo $form->input('first_name');
> echo $form->input('last_name');
> echo $form->input('email');
>
> echo $form->end('Register');
> ?>
>
>
>
> Here's my user model:
>
> <?php
> App::import(array('Security'));
>
> class User extends AppModel {
> var $validate = array(
> 'email' => 'email',
> 'first_name' => array(
> 'rule' => array('minLength', 1)
> ),
> 'last_name' => array(
> 'rule' => array('minLength', 1)
> ),
> 'username' => array(
> 'rule' => array('minLength', 4)
> ),
> 'password' => array(
> 'rule' => array('CheckPassword'),
> 'message' => 'At least 6 characters'
> ),
> 'password2' => array(
> 'rule' => array('CheckPasswordMatch'),
> 'message' => 'Passwords did not match'
> )
> );
>
> function CheckPassword($data) {
> if(!isset($this->data['User']['password2']))
> return true; //Only confirm password strength if we're collecting a
> new password (i.e. password2 is set).
> return strlen($this->data['User']['password2']) >= 6;
> }
> function CheckPasswordMatch($data) {
> return $this->data['User']['password'] == Security::hash($this-
>>data['User']['password2'], null, true);
> }
> }
> ?>
>
>
>
> And my user controller:
>
> <?php
> class UsersController extends AppController {
> var $components = array('Auth');
>
> function beforeFilter() {
> $this->Auth->allow('register');
>    }
>
>    /**
>     *  The AuthComponent provides the needed functionality
>     *  for login, so you can leave this function blank.
>     */
>    function login() {
>    }
>
>    function logout() {
>        $this->redirect($this->Auth->logout());
>    }
>
>
> function register() {
> if($this->data) {
> if ($this->User->save($this->data)) {
> $this->flash('Your account has been created.', '/users/login');
> }
> }
> }
> }
> ?>
>
> > 


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to