Author: ornicar2
Date: 2010-02-08 10:59:40 +0100 (Mon, 08 Feb 2010)
New Revision: 27698

Added:
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmSigninAdminForm.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmSigninFrontForm.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/base/DmSigninBaseForm.php
   plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/actions/
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/actions/actions.class.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/actions/components.class.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/lib/
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/lib/BasedmUserActions.class.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/lib/BasedmUserComponents.class.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_form.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_list.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_show.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_signin.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/config/view.yml
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/layout.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/secureSuccess.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/signinBrowser.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/signinSuccess.php
Removed:
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmFormSignin.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/base/BaseDmFormSignin.class.php
Modified:
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/config/dm/modules.yml
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/config/doctrine/schema.yml
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/doctrine/PluginDmUserForm.class.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/model/doctrine/PluginDmUserTable.class.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/user/dmSecurityUser.class.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/config/security.yml
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/lib/BasedmUserAdminActions.class.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/lib/base/BaseDmUserAdminForm.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/web/css/adminAuth.css
Log:
[Diem]
- removed dmAuth and dmAuthAdmin modules
- improved user integration for social websites where each user has a page and 
can self register
- added unit and functional tests for user integration
- added default user widgets: form and signin
- made password required when creating a new user
- refactored user actions
- improved admin secure page style

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/config/dm/modules.yml
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/config/dm/modules.yml
    2010-02-08 09:59:34 UTC (rev 27697)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/config/dm/modules.yml
    2010-02-08 09:59:40 UTC (rev 27698)
@@ -5,6 +5,9 @@
     dmUser:
       name:         User
       credentials:  security_user
+      components:
+        signin:
+        form:       { name: "Register" }
 
     dmPermission:
       name:         Permission

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/config/doctrine/schema.yml
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/config/doctrine/schema.yml
       2010-02-08 09:59:34 UTC (rev 27697)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/config/doctrine/schema.yml
       2010-02-08 09:59:40 UTC (rev 27698)
@@ -136,6 +136,10 @@
       onDelete: CASCADE
 
 DmRememberKey:
+  actAs:
+    Timestampable:
+      updated:
+        disabled: true
   options:
     symfony:
       form:   false

Deleted: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmFormSignin.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmFormSignin.php
        2010-02-08 09:59:34 UTC (rev 27697)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmFormSignin.php
        2010-02-08 09:59:40 UTC (rev 27698)
@@ -1,11 +0,0 @@
-<?php
-
-class DmFormSignin extends BaseDmFormSignin
-{
-  /**
-   * @see sfForm
-   */
-  public function configure()
-  {
-  }
-}

Copied: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmSigninAdminForm.php
 (from rev 27414, 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmFormSignin.php)
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmSigninAdminForm.php
                           (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmSigninAdminForm.php
   2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,14 @@
+<?php
+
+class DmSigninAdminForm extends DmSigninBaseForm
+{
+  /**
+   * @see sfForm
+   */
+  public function configure()
+  {
+    $this
+    ->changeToHidden('remember')
+    ->setDefault('remember', true);
+  }
+}

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmSigninFrontForm.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmSigninFrontForm.php
                           (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/DmSigninFrontForm.php
   2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,11 @@
+<?php
+
+class DmSigninFrontForm extends DmSigninBaseForm
+{
+  /**
+   * @see sfForm
+   */
+  public function configure()
+  {
+  }
+}

Deleted: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/base/BaseDmFormSignin.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/base/BaseDmFormSignin.class.php
 2010-02-08 09:59:34 UTC (rev 27697)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/base/BaseDmFormSignin.class.php
 2010-02-08 09:59:40 UTC (rev 27698)
@@ -1,28 +0,0 @@
-<?php
-
-class BaseDmFormSignin extends BaseForm
-{
-  /**
-   * @see sfForm
-   */
-  public function setup()
-  {
-    parent::setup();
-    
-    $this->setWidgets(array(
-      'username' => new sfWidgetFormInputText(),
-      'password' => new sfWidgetFormInputPassword(),
-      'remember' => new sfWidgetFormInputCheckbox(),
-    ));
-
-    $this->setValidators(array(
-      'username' => new sfValidatorString(),
-      'password' => new sfValidatorString(),
-      'remember' => new sfValidatorBoolean(),
-    ));
-    
-    $this->setName('signin');
-
-    $this->validatorSchema->setPostValidator(new dmValidatorUser());
-  }
-}

Copied: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/base/DmSigninBaseForm.php
 (from rev 27414, 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/base/BaseDmFormSignin.class.php)
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/base/DmSigninBaseForm.php
                               (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/base/DmSigninBaseForm.php
       2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,28 @@
+<?php
+
+class DmSigninBaseForm extends BaseForm
+{
+  /**
+   * @see sfForm
+   */
+  public function setup()
+  {
+    parent::setup();
+    
+    $this->setWidgets(array(
+      'username' => new sfWidgetFormInputText(),
+      'password' => new sfWidgetFormInputPassword(),
+      'remember' => new sfWidgetFormInputCheckbox(),
+    ));
+
+    $this->setValidators(array(
+      'username' => new sfValidatorString(),
+      'password' => new sfValidatorString(),
+      'remember' => new sfValidatorBoolean(),
+    ));
+
+    $this->setName('signin');
+
+    $this->validatorSchema->setPostValidator(new dmValidatorUser());
+  }
+}

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/doctrine/PluginDmUserForm.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/doctrine/PluginDmUserForm.class.php
     2010-02-08 09:59:34 UTC (rev 27697)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/form/doctrine/PluginDmUserForm.class.php
     2010-02-08 09:59:40 UTC (rev 27698)
@@ -10,4 +10,39 @@
  */
 abstract class PluginDmUserForm extends BaseDmUserForm
 {
+  /**
+   * @see sfForm
+   */
+  public function setup()
+  {
+    parent::setup();
+
+    unset(
+      $this['last_login'],
+      $this['created_at'],
+      $this['updated_at'],
+      $this['salt'],
+      $this['algorithm'],
+      $this['groups_list'],
+      $this['permissions_list'],
+      $this['is_active'],
+      $this['is_super_admin']
+    );
+
+    $this->widgetSchema['password'] = new sfWidgetFormInputPassword();
+    $this->validatorSchema['password']->setOption('required', 
$this->object->isNew());
+    $this->widgetSchema['password_again'] = new sfWidgetFormInputPassword();
+    $this->validatorSchema['password_again'] = clone 
$this->validatorSchema['password'];
+
+    $this->widgetSchema->moveField('password_again', 'after', 'password');
+
+    $this->validatorSchema['username'] = new sfValidatorAnd(array(
+      $this->validatorSchema['username'],
+      new sfValidatorRegex(array('pattern' => '/^[\w\d\...@\.]+$/')),
+    ));
+
+    $this->changeToEmail('email');
+
+    $this->mergePostValidator(new sfValidatorSchemaCompare('password', 
sfValidatorSchemaCompare::EQUAL, 'password_again', array(), array('invalid' => 
'The two passwords must be the same.')));
+  }
 }

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/model/doctrine/PluginDmUserTable.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/model/doctrine/PluginDmUserTable.class.php
   2010-02-08 09:59:34 UTC (rev 27697)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/model/doctrine/PluginDmUserTable.class.php
   2010-02-08 09:59:40 UTC (rev 27698)
@@ -35,4 +35,9 @@
     
     return $columns;
   }
+
+  public function getIdentifierColumnName()
+  {
+    return 'username';
+  }
 }

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/user/dmSecurityUser.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/user/dmSecurityUser.class.php
        2010-02-08 09:59:34 UTC (rev 27697)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/user/dmSecurityUser.class.php
        2010-02-08 09:59:40 UTC (rev 27698)
@@ -167,38 +167,44 @@
     $user->set('last_login', date('Y-m-d H:i:s'));
     $user->save($con);
 
-    // remember?
     if ($remember)
     {
-      $expirationAge = $this->getRememberKeyExpirationAge();
+      try
+      {
+        $expirationAge = $this->getRememberKeyExpirationAge();
 
-      // remove old keys
-      Doctrine_Core::getTable('DmRememberKey')->createQuery()
-        ->delete()
-        ->where('created_at < ?', date('Y-m-d H:i:s', time() - $expirationAge))
-        ->execute();
+        // remove old keys
+        Doctrine_Core::getTable('DmRememberKey')->createQuery()
+          ->delete()
+          ->where('created_at < ?', date('Y-m-d H:i:s', time() - 
$expirationAge))
+          ->execute();
 
-      // remove other keys from this user
-      Doctrine_Core::getTable('DmRememberKey')->createQuery()
-        ->delete()
-        ->where('dm_user_id = ?', $user->getId())
-        ->orWhere('ip_address = ?', $_SERVER['REMOTE_ADDR'])
-        ->execute();
+        // remove other keys from this user
+        Doctrine_Core::getTable('DmRememberKey')->createQuery()
+          ->delete()
+          ->where('dm_user_id = ?', $user->getId())
+          ->orWhere('ip_address = ?', $_SERVER['REMOTE_ADDR'])
+          ->execute();
 
-      // generate new keys
-      $key = md5(dmString::random(20));
+        // generate new keys
+        $key = md5(dmString::random(20));
 
-      // save key
-      $rk = new DmRememberKey();
-      $rk->setRememberKey($key);
-      $rk->setUser($user);
-      $rk->setIpAddress($_SERVER['REMOTE_ADDR']);
-      $rk->save($con);
+        // save key
+        $rk = new DmRememberKey();
+        $rk->setRememberKey($key);
+        $rk->setUser($user);
+        $rk->setIpAddress($_SERVER['REMOTE_ADDR']);
+        $rk->save($con);
 
-      $this->dispatcher->notify(new sfEvent($this, 'user.remember_me', array(
-        'remember_key'    => $key,
-        'expiration_age'  => $expirationAge
-      )));
+        $this->dispatcher->notify(new sfEvent($this, 'user.remember_me', array(
+          'remember_key'    => $key,
+          'expiration_age'  => $expirationAge
+        )));
+      }
+      catch(Exception $e)
+      {
+        
+      }
     }
     
     $this->dispatcher->notify(new sfEvent($this, 'user.sign_in'));
@@ -244,7 +250,6 @@
         $this->signOut();
 
         return null;
-        throw new sfException('The user does not exist anymore in the 
database.');
       }
     }
 

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/actions/actions.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/actions/actions.class.php
                         (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/actions/actions.class.php
 2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,8 @@
+<?php
+
+require_once dirname(__FILE__).'/../lib/BasedmUserActions.class.php';
+
+class dmUserActions extends BasedmUserActions
+{
+  
+}
\ No newline at end of file

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/actions/components.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/actions/components.class.php
                              (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/actions/components.class.php
      2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,8 @@
+<?php
+
+require_once dirname(__FILE__).'/../lib/BasedmUserComponents.class.php';
+
+class dmUserComponents extends BasedmUserComponents
+{
+  
+}
\ No newline at end of file

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/lib/BasedmUserActions.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/lib/BasedmUserActions.class.php
                           (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/lib/BasedmUserActions.class.php
   2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,64 @@
+<?php
+
+class BasedmUserActions extends myFrontModuleActions
+{
+
+  public function executeSignin(dmWebRequest $request)
+  {
+    $request->setParameter('dm_page', dmDb::table('DmPage')->fetchSignin());
+
+    $this->getResponse()->setStatusCode(401);
+
+    return $this->forward('dmFront', 'page');
+  }
+
+  public function executeSecure(dmWebRequest $request)
+  {
+    $request->setParameter('dm_page', dmDb::table('DmPage')->fetchSignin());
+    
+    $this->getResponse()->setStatusCode(403);
+
+    return $this->forward('dmFront', 'page');
+  }
+
+  public function executeSignout($request)
+  {
+    $this->getUser()->signOut();
+
+    $signoutUrl = sfConfig::get('dm_security_success_signout_url', 
$request->getReferer());
+
+    $this->redirect('' != $signoutUrl ? $signoutUrl : '@homepage');
+  }
+  
+  public function executeSigninWidget(dmWebRequest $request)
+  {
+    $form = $this->forms['DmSigninFront'];
+
+    if ($request->isMethod('post') && $request->hasParameter($form->getName()))
+    {
+      if ($form->bindAndValid($request))
+      {
+        $this->getUser()->signin($form->getValue('user'), 
$form->getValue('remember'));
+
+        return $this->redirect($request->getReferer());
+      }
+    }
+  }
+
+  public function executeFormWidget(dmWebRequest $request)
+  {
+    $form = $this->forms['DmUser'];
+
+    if ($request->isMethod('post') && $request->hasParameter($form->getName()))
+    {
+      if ($form->bindAndValid($request))
+      {
+        $user = $form->save();
+        
+        $this->getUser()->signin($user);
+
+        return $this->redirect($request->getReferer());
+      }
+    }
+  }
+}
\ No newline at end of file

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/lib/BasedmUserComponents.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/lib/BasedmUserComponents.class.php
                                (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/lib/BasedmUserComponents.class.php
        2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,29 @@
+<?php
+
+class BasedmUserComponents extends myFrontModuleComponents
+{
+
+  public function executeSignin()
+  {
+    $this->form = $this->forms['DmSigninFront'];
+  }
+
+  public function executeForm()
+  {
+    $this->form = $this->forms['DmUser'];
+  }
+
+  public function executeList()
+  {
+    $query = $this->getListQuery();
+
+    $this->dmUserPager = $this->getPager($query);
+  }
+
+  public function executeShow()
+  {
+    $query = $this->getShowQuery();
+
+    $this->dmUser = $this->getRecord($query);
+  }
+}
\ No newline at end of file

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_form.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_form.php
                               (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_form.php
       2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,21 @@
+<?php
+
+echo $form->open('.dm_register_form');
+
+echo _tag('ul',
+
+  _tag('li', $form['username']->label()->field()->error()).
+
+  _tag('li', $form['email']->label()->field()->error()).
+
+  _tag('li', $form['password']->label()->field()->error()).
+
+  _tag('li', $form['password_again']->label()->field()->error())
+
+);
+
+echo $form->renderHiddenFields();
+
+echo $form->submit('Register');
+
+echo $form->close();
\ No newline at end of file

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_list.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_list.php
                               (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_list.php
       2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,18 @@
+<?php // Vars: $articlePager
+
+echo $dmUserPager->renderNavigationTop();
+
+echo _open('ul.elements');
+
+foreach ($dmUserPager as $dmUser)
+{
+  echo _open('li.element');
+
+    echo $dmUser->username;
+
+  echo _close('li');
+}
+
+echo _close('ul');
+
+echo $dmUserPager->renderNavigationBottom();
\ No newline at end of file

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_show.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_show.php
                               (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_show.php
       2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,3 @@
+<?php // Vars: $article
+
+echo £('h1', $dmUser->username);
\ No newline at end of file

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_signin.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_signin.php
                             (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUser/templates/_signin.php
     2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,19 @@
+<?php
+
+echo $form->open('.dm_signin_form');
+
+echo _tag('ul',
+
+  _tag('li', $form['username']->label()->field()->error()).
+
+  _tag('li', $form['password']->label()->field()->error()).
+
+  _tag('li', $form['remember']->label()->field()->error())
+
+);
+
+echo $form->renderHiddenFields();
+
+echo $form->submit('Signin');
+
+echo $form->close();
\ No newline at end of file

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/config/security.yml
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/config/security.yml
  2010-02-08 09:59:34 UTC (rev 27697)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/config/security.yml
  2010-02-08 09:59:40 UTC (rev 27698)
@@ -1,2 +1,11 @@
 all:
-  credentials: security_user
\ No newline at end of file
+  credentials: security_user
+
+secure:
+  is_secure: false
+
+signin:
+  is_secure: false
+
+signout:
+  is_secure: false
\ No newline at end of file

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/config/view.yml
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/config/view.yml
                              (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/config/view.yml
      2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,11 @@
+signinSuccess:
+
+  stylesheets:  [ dmUserPlugin.adminAuth ]
+
+signinBrowser:
+
+  stylesheets:  [ dmUserPlugin.adminAuth ]
+
+secureSuccess:
+
+  stylesheets:  [ dmUserPlugin.adminAuth ]
\ No newline at end of file

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/lib/BasedmUserAdminActions.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/lib/BasedmUserAdminActions.class.php
 2010-02-08 09:59:34 UTC (rev 27697)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/lib/BasedmUserAdminActions.class.php
 2010-02-08 09:59:40 UTC (rev 27698)
@@ -1,25 +1,104 @@
 <?php
 
-/*
- * This file is part of the symfony package.
- * (c) 2004-2006 Fabien Potencier <[email protected]>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-/**
- *
- * @package    symfony
- * @subpackage plugin
- * @author     Fabien Potencier <[email protected]>
- * @version    SVN: $Id: BasedmUserActions.class.php 23319 2009-10-25 
12:22:23Z Kris.Wallsmith $
- */
 class BasedmUserAdminActions extends autodmUserAdminActions
 {
+
+  public function executeSignin(dmWebRequest $request)
+  {
+    if ($this->getUser()->isAuthenticated())
+    {
+      return $this->redirect('@homepage');
+    }
+
+    $this->setLayout(realpath(dirname(__FILE__).'/..').'/templates/layout');
+
+    if($request->getParameter('skip_browser_detection'))
+    {
+      $this->getService('browser_check')->markAsChecked();
+    }
+    elseif(!$this->getService('browser_check')->check())
+    {
+      return 'Browser';
+    }
+
+    $this->form = new DmSigninAdminForm();
+
+    if ($request->isMethod('post'))
+    {
+      $this->form->bindRequest($request);
+
+      if ($this->form->isValid())
+      {
+        $this->getUser()->signin($this->form->getValue('user'), 
$this->form->getValue('remember'));
+
+        if ($this->getUser()->can('admin'))
+        {
+          $redirectUrl = $this->getUser()->getReferer($request->getReferer());
+          
+          $this->redirect($redirectUrl ? $redirectUrl : '@homepage');
+        }
+        else
+        {
+          try
+          {
+            
$this->redirect($this->getService('script_name_resolver')->get('front'));
+          }
+          catch(dmException $e)
+          {
+            // user can't go in admin, and front script_name can't be found.
+            $this->redirect('@homepage');
+          }
+        }
+      }
+    }
+    else
+    {
+      if ($request->isXmlHttpRequest())
+      {
+        $this->getResponse()->setHeaderOnly(true);
+        $this->getResponse()->setStatusCode(401);
+
+        return sfView::NONE;
+      }
+
+      // if we have been forwarded, then the referer is the current URL
+      // if not, this is the referer of the current request
+      
$this->getUser()->setReferer($this->getContext()->getActionStack()->getSize() > 
1 ? $request->getUri() : $request->getReferer());
+
+      $module = sfConfig::get('sf_login_module');
+      if ($this->getModuleName() != $module)
+      {
+        return $this->redirect($module.'/'.sfConfig::get('sf_login_action'));
+      }
+
+      $this->getResponse()->setStatusCode(401);
+    }
+  }
+
+  public function executeSignout($request)
+  {
+    $this->getUser()->signOut();
+
+    $signoutUrl = sfConfig::get('dm_security_success_signout_url', 
$request->getReferer());
+
+    $this->redirect('' != $signoutUrl ? $signoutUrl : '@homepage');
+  }
+
+  public function executeSecure()
+  {
+    $this->setLayout(realpath(dirname(__FILE__).'/..').'/templates/layout');
+
+    $this->getResponse()->setStatusCode(403);
+  }
+
+  public function executePassword()
+  {
+    throw new sfException('This method is not yet implemented.');
+  }
+  
   public function validateEdit()
   {
-    if ($this->getRequest()->getMethod() == sfRequest::POST && 
!$this->getRequestParameter('id'))
+    if ($this->getRequest()->isMethod('post') && 
!$this->getRequestParameter('id'))
     {
       if ($this->getRequestParameter('dm_user[password]') == '')
       {

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/lib/base/BaseDmUserAdminForm.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/lib/base/BaseDmUserAdminForm.php
     2010-02-08 09:59:34 UTC (rev 27697)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/lib/base/BaseDmUserAdminForm.php
     2010-02-08 09:59:40 UTC (rev 27698)
@@ -28,7 +28,7 @@
     }
     
     $this->widgetSchema['password'] = new sfWidgetFormInputPassword();
-    $this->validatorSchema['password']->setOption('required', false);
+    $this->validatorSchema['password']->setOption('required', 
$this->object->isNew());
     $this->widgetSchema['password_again'] = new sfWidgetFormInputPassword();
     $this->validatorSchema['password_again'] = clone 
$this->validatorSchema['password'];
 
@@ -38,12 +38,9 @@
       $this->validatorSchema['username'],
       new sfValidatorRegex(array('pattern' => '/^[\w\d\...@\.]+$/')),
     ));
-    
-    $this->validatorSchema['email'] = new sfValidatorAnd(array(
-      $this->validatorSchema['email'],
-      new sfValidatorEmail(),
-    ));
 
+    $this->changeToEmail('email');
+
     $this->mergePostValidator(new sfValidatorSchemaCompare('password', 
sfValidatorSchemaCompare::EQUAL, 'password_again', array(), array('invalid' => 
'The two passwords must be the same.')));
   }
 }
\ No newline at end of file

Copied: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/layout.php
 (from rev 27598, 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmAuthAdmin/templates/layout.php)
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/layout.php
                         (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/layout.php
 2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,22 @@
+<?php
+
+$helper = $sf_context->get('layout_helper');
+
+echo 
+$helper->renderDoctype(),
+$helper->renderHtmlTag(),
+
+  "\n<head>\n",
+    $helper->renderHead(),
+  "\n</head>\n",
+  
+  $helper->renderBodyTag('.dm.bg_2'),
+
+    $sf_content,
+
+    $helper->renderJavascriptConfig(),
+      
+    $helper->renderJavascripts(),
+      
+  '</body>',
+'</html>';
\ No newline at end of file

Copied: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/secureSuccess.php
 (from rev 27598, 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmAuthAdmin/templates/secureSuccess.php)
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/secureSuccess.php
                          (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/secureSuccess.php
  2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,17 @@
+<?php
+
+echo _open('div.dm.dm_auth.secure');
+
+echo _tag('h1.site_name', dmConfig::get('site_name'));
+
+echo _tag('div.message', __("You don't have the required permission to access 
this page."));
+
+echo _tag('ul.choices',
+  _tag('li', _link('@signout')->text(__('Signout'))).
+  ($sf_user->can('admin') ? _tag('li', _link('@homepage')->text(__('Back to 
admin'))) : '').
+  _tag('li', _link('app:front')->text(__('Back to site')))
+);
+
+echo _close('div');
+
+echo _link('http://diem-project.org/')->text('Diem CMF CMS for 
symfony')->set('.generator_link');
\ No newline at end of file

Copied: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/signinBrowser.php
 (from rev 27598, 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmAuthAdmin/templates/signinBrowser.php)
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/signinBrowser.php
                          (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/signinBrowser.php
  2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,22 @@
+<?php
+
+echo _open('div.dm.dm_auth.unsupported_browser');
+
+echo _tag('h1.site_name', dmConfig::get('site_name'));
+
+echo _tag('div.message',
+  _tag('p.dm_browser_unsupported.mt10', __("Sorry, it looks like you're using 
a browser that isn't supported.")).
+  _tag('p.dm_browser_suggestion.mt10', __("We suggest that you use one of 
these browsers:")).
+  _tag('div.dm_suggested_browsers.clearfix',
+    
_link('http://www.mozilla.com/firefox/')->text(_media('dmCore/images/64/firefox.png')->size(64,
 64).'Firefox').
+    
_link('http://www.google.com/chrome')->text(_media('dmCore/images/64/chrome.png')->size(64,
 64).'Chrome').
+    
_link('http://www.apple.com/safari/')->text(_media('dmCore/images/64/safari.png')->size(64,
 64).'Safari <em>not yet</em>')->set('.not_ready')
+  ).
+  _tag('div.dm_skip_browser_detection',
+    _link('@signin?skip_browser_detection=1')->text(__('Or continue at your 
own peril'))
+  )
+);
+
+echo _close('div');
+
+echo _link('http://diem-project.org/')->text('Diem CMF CMS for 
symfony')->set('.generator_link');
\ No newline at end of file

Copied: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/signinSuccess.php
 (from rev 27598, 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmAuthAdmin/templates/signinSuccess.php)
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/signinSuccess.php
                          (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/templates/signinSuccess.php
  2010-02-08 09:59:40 UTC (rev 27698)
@@ -0,0 +1,27 @@
+<?php
+
+echo _open('div.dm.dm_auth');
+
+echo _tag('h1.site_name', dmConfig::get('site_name'));
+
+echo _tag('div.message',
+  $form->open('.dm_form.list.little.clearfix action="@signin"').
+    _tag('ul',
+      _tag('li.dm_form_element.clearfix',
+        $form['username']->error()->label(__('Username'))->field()
+      ).
+      _tag('li.dm_form_element.clearfix',
+        $form['password']->error()->label(__('Password'))->field()
+      )
+    ).
+    $form->renderHiddenFields().
+    $form->submit(__('Signin'), '.mt10').
+  '</form>'
+);
+
+echo _close('div');
+
+echo _link('http://diem-project.org/')->text('Diem CMF CMS for 
symfony')->set('.generator_link');
+
+?>
+<script 
type="text/javascript">document.getElementById('signin_username').focus();</script>
\ No newline at end of file

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/web/css/adminAuth.css
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/web/css/adminAuth.css
    2010-02-08 09:59:34 UTC (rev 27697)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/web/css/adminAuth.css
    2010-02-08 09:59:40 UTC (rev 27698)
@@ -107,6 +107,23 @@
   text-align: right;
 }
 
+div.dm_auth ul.choices {
+  text-align: left;
+  width: 260px;
+  margin: 20px auto 0 auto;
+  padding: 10px;
+  background: url(../images/alpha_white_bg_light.png) repeat;
+  -moz-border-radius: 4px;
+  -webkit-border-radius: 4px;
+  border: 1px outset #fff;
+}
+
+div.dm_auth ul.choices li {
+  list-style: disc inside;
+  color: #aaa;
+  margin: 0.5em 0;
+}
+
 .generator_link {
   position: absolute;
   bottom: 0;

-- 
You received this message because you are subscribed to the Google Groups 
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/symfony-svn?hl=en.

Reply via email to