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