Author: ornicar2
Date: 2010-02-10 23:52:34 +0100 (Wed, 10 Feb 2010)
New Revision: 27868

Modified:
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/model/doctrine/PluginDmUser.class.php
   
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/lib/BasedmUserAdminActions.class.php
Log:
[Diem]
- prevented user to delete himself, or to delete a superadmin

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/model/doctrine/PluginDmUser.class.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/model/doctrine/PluginDmUser.class.php
        2010-02-10 22:50:03 UTC (rev 27867)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/lib/model/doctrine/PluginDmUser.class.php
        2010-02-10 22:52:34 UTC (rev 27868)
@@ -284,4 +284,22 @@
       $this->_set('password', $v);
     }
   }
+
+  public function preDelete($event)
+  {
+    if(($userService = $this->getService('user')) && ($loggedUser = 
$userService->getUser()))
+    {
+      if($loggedUser->id == $this->id)
+      {
+        throw new dmRecordException('You cannot delete yourself from the 
database.');
+      }
+
+      if($this->is_super_admin && !$loggedUser->is_super_admin)
+      {
+        throw new dmRecordException('You cannot delete a superadmin.');
+      }
+    }
+
+    return parent::preDelete($event);
+  }
 }
\ 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-10 22:50:03 UTC (rev 27867)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmUserPlugin/modules/dmUserAdmin/lib/BasedmUserAdminActions.class.php
 2010-02-10 22:52:34 UTC (rev 27868)
@@ -110,4 +110,17 @@
 
     return true;
   }
+
+  public function executeDelete(sfWebRequest $request)
+  {
+    try
+    {
+      return parent::executeDelete($request);
+    }
+    catch(dmRecordException $e)
+    {
+      $this->getUser()->logError($e->getMessage());
+      $this->redirectBack();
+    }
+  }
 }

-- 
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