Author: david
Date: Fri Sep 18 11:36:46 2009
New Revision: 3408

Log:
Grant 'authenticated' and 'anonymous' credentials where appropriate.

Modified:
   trunk/apps/qubit/lib/myUser.class.php
   trunk/lib/model/QubitUser.php
   trunk/plugins/qbAclPlugin/lib/model/QubitAclGroup.php

Modified: trunk/apps/qubit/lib/myUser.class.php
==============================================================================
--- trunk/apps/qubit/lib/myUser.class.php       Fri Sep 18 11:25:24 2009        
(r3407)
+++ trunk/apps/qubit/lib/myUser.class.php       Fri Sep 18 11:36:46 2009        
(r3408)
@@ -19,10 +19,26 @@
 
 class myUser extends sfBasicSecurityUser
 {
+  public function __construct(sfEventDispatcher $dispatcher, sfStorage 
$storage, $options = array())
+  {
+    parent::__construct($dispatcher, $storage, $options);
+
+    // Add un-authenticated users to the anonymous group
+    if (!$this->isAuthenticated())
+    {
+      $anonymousGroup = QubitAclGroup::getById(QubitAclGroup::ANONYMOUS_ID);
+      $this->addCredential($anonymousGroup->getName(array('culture' => 'en')));
+    }
+  }
+
   public function signIn($user)
   {
     $this->setAuthenticated(true);
 
+    // Remove user from anonymous group
+    $anonymousGroup = QubitAclGroup::getById(QubitAclGroup::ANONYMOUS_ID);
+    $this->removeCredential($anonymousGroup->getName(array('culture' => 
'en')));
+
     foreach ($user->getAclGroups() as $group)
     {
       $this->addCredential($group->getName(array('culture' => 'en')));
@@ -84,4 +100,28 @@
   {
     return QubitUser::getById($this->getUserID());
   }
+
+  public function hasGroup($checkGroups)
+  {
+    $hasGroup = false;
+
+    if ($this->isAuthenticated())
+    {
+      $hasGroup = $this->getQubitUser()->hasGroup($checkGroups);
+    }
+    else
+    {
+      if (!is_array($checkGroups))
+      {
+        $checkGroups = array($checkGroups);
+      }
+
+      if (in_array(QubitAclGroup::ANONYMOUS_ID, $checkGroups))
+      {
+        $hasGroup = true;
+      }
+    }
+
+    return $hasGroup;
+  }
 }

Modified: trunk/lib/model/QubitUser.php
==============================================================================
--- trunk/lib/model/QubitUser.php       Fri Sep 18 11:25:24 2009        (r3407)
+++ trunk/lib/model/QubitUser.php       Fri Sep 18 11:36:46 2009        (r3408)
@@ -36,7 +36,10 @@
 
   public function getAclGroups()
   {
-    $groups = array();
+    // Add all users to 'authenticated' group
+    $authenticatedGroup = 
QubitAclGroup::getById(QubitAclGroup::AUTHENTICATED_ID);
+
+    $groups = array($authenticatedGroup);
     foreach ($this->getAclUserGroups() as $userGroup)
     {
       $groups[] = $userGroup->getGroup();
@@ -120,6 +123,13 @@
       $checkGroups = array($checkGroups);
     }
 
+    // A user is always part of the authenticated group
+    if (in_array(QubitAclGroup::AUTHENTICATED_ID, $checkGroups))
+    {
+
+      return true;
+    }
+
     $criteria = new Criteria;
     $criteria->add(QubitAclUserGroup::USER_ID, $this->id, Criteria::EQUAL);
 

Modified: trunk/plugins/qbAclPlugin/lib/model/QubitAclGroup.php
==============================================================================
--- trunk/plugins/qbAclPlugin/lib/model/QubitAclGroup.php       Fri Sep 18 
11:25:24 2009        (r3407)
+++ trunk/plugins/qbAclPlugin/lib/model/QubitAclGroup.php       Fri Sep 18 
11:36:46 2009        (r3408)
@@ -31,6 +31,7 @@
   const ANONYMOUS_ID     = 98;
   const AUTHENTICATED_ID = 99;
   const ADMINISTRATOR_ID = 100;
+  const ADMIN_ID         = 100;
   const EDITOR_ID        = 101;
   const CONTRIBUTOR_ID   = 102;
   const TRANSLATOR_ID    = 103;

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Qubit Toolkit Commits" 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.ca/group/qubit-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to