summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-10-06 17:32:58 -0700
committerTim Almdal <tnalmdal@shaw.ca>2009-10-06 18:30:09 -0700
commit6671bd8b855758763e3111ea18647d2cb51b9365 (patch)
tree65d303c21afb1a08f82e440d05611a5b0ae1d525
parentda84a46ccbfcff0966caea8ca54c32469c5c175f (diff)
Allow a groups property on the User implementation and load the Identity drivers early in the process so the session deserialization works.
-rw-r--r--modules/gallery/helpers/user.php7
-rw-r--r--modules/gallery/libraries/drivers/Identity.php3
2 files changed, 8 insertions, 2 deletions
diff --git a/modules/gallery/helpers/user.php b/modules/gallery/helpers/user.php
index 2044964f..f148f720 100644
--- a/modules/gallery/helpers/user.php
+++ b/modules/gallery/helpers/user.php
@@ -174,10 +174,13 @@ class user_Core {
return $locale;
}
- /**
- * Make sure that we have a session and group_ids cached in the session.
+ /**
+ * Make sure that we have a session and group_ids cached in the session. This is one
+ * of the first calls to reference the user so call the Identity::instance to load the
+ * driver classes.
*/
static function load_user() {
+ Identity::instance();
$session = Session::instance();
if (!($user = $session->get("user"))) {
$session->set("user", $user = self::guest());
diff --git a/modules/gallery/libraries/drivers/Identity.php b/modules/gallery/libraries/drivers/Identity.php
index 558679be..aa5bbd4c 100644
--- a/modules/gallery/libraries/drivers/Identity.php
+++ b/modules/gallery/libraries/drivers/Identity.php
@@ -147,6 +147,7 @@ abstract class User_Definition {
case "hash":
case "url":
case "locale":
+ case "groups":
return $this->user->$column;
case "hashed_password":
throw new Exception("@todo WRITE ONLY FIELD: $column");
@@ -160,6 +161,7 @@ abstract class User_Definition {
public function __set($column, $value) {
switch ($column) {
case "id":
+ case "groups":
throw new Exception("@todo READ ONLY FIELD: $column");
break;
case "name":
@@ -188,6 +190,7 @@ abstract class User_Definition {
public function __unset($column) {
switch ($column) {
case "id":
+ case "groups":
throw new Exception("@todo READ ONLY FIELD: $column");
break;
case "name":