summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-10-05 17:08:27 -0700
committerTim Almdal <tnalmdal@shaw.ca>2009-10-05 17:08:27 -0700
commitca17727478b44b8bec6bb7f8ed1c8c688818b8f6 (patch)
tree7e2318f601f593974957a32ae6e0460a2ef79676
parent194cc3b27a73afe5119da9f09407c1e068dc6fa3 (diff)
Access the form validation rules via the API for groups and users
-rw-r--r--modules/gallery/helpers/group.php13
-rw-r--r--modules/gallery/helpers/user.php17
-rw-r--r--modules/gallery/libraries/Identity.php10
-rw-r--r--modules/gallery/libraries/drivers/Identity.php8
-rw-r--r--modules/user/libraries/drivers/Identity/Gallery.php10
5 files changed, 51 insertions, 7 deletions
diff --git a/modules/gallery/helpers/group.php b/modules/gallery/helpers/group.php
index e0182f9f..074a7b83 100644
--- a/modules/gallery/helpers/group.php
+++ b/modules/gallery/helpers/group.php
@@ -31,7 +31,7 @@ class group_Core {
$form_group->inputs["name"]->error_messages(
"in_use", t("There is already a group with that name"));
$form_group->submit("")->value(t("Save"));
- $form->add_rules_from($group);
+ $form->add_rules_from(self::get_edit_rules());
return $form;
}
@@ -44,7 +44,7 @@ class group_Core {
"in_use", t("There is already a group with that name"));
$form_group->submit("")->value(t("Add Group"));
$group = ORM::factory("group");
- $form->add_rules_from($group);
+ $form->add_rules_from(self::get_edit_rules());
return $form;
}
@@ -111,4 +111,13 @@ class group_Core {
static function groups($filter=array()) {
return Identity::instance()->list_groups($filter);
}
+
+ /**
+ * Return the edit rules associated with an group.
+ *
+ * @return stdClass containing the rules
+ */
+ static function get_edit_rules() {
+ return Identity::instance()->get_edit_rules("group");
+ }
}
diff --git a/modules/gallery/helpers/user.php b/modules/gallery/helpers/user.php
index d859d9bd..2044964f 100644
--- a/modules/gallery/helpers/user.php
+++ b/modules/gallery/helpers/user.php
@@ -35,7 +35,7 @@ class user_Core {
->matches($group->password);
$group->input("email")->label(t("Email"))->id("g-email")->value($user->email);
$group->input("url")->label(t("URL"))->id("g-url")->value($user->url);
- $form->add_rules_from($user);
+ $form->add_rules_from(self::get_edit_rules());
module::event("user_edit_form", $user, $form);
$group->submit("")->value(t("Save"));
@@ -57,8 +57,7 @@ class user_Core {
$group->input("email")->label(t("Email"))->id("g-email")->value($user->email);
$group->input("url")->label(t("URL"))->id("g-url")->value($user->url);
$group->checkbox("admin")->label(t("Admin"))->id("g-admin")->checked($user->admin);
- $form->add_rules_from($user);
- $form->edit_user->password->rules("-required");
+ $form->add_rules_from(self::get_edit_rules());
module::event("user_edit_form_admin", $user, $form);
$group->submit("")->value(t("Modify User"));
@@ -79,8 +78,7 @@ class user_Core {
$group->input("url")->label(t("URL"))->id("g-url");
self::_add_locale_dropdown($group);
$group->checkbox("admin")->label(t("Admin"))->id("g-admin");
- $user = ORM::factory("user");
- $form->add_rules_from($user);
+ $form->add_rules_from(self::get_edit_rules());
module::event("user_add_form_admin", $user, $form);
$group->submit("")->value(t("Add User"));
@@ -311,4 +309,13 @@ class user_Core {
static function users($filter=array()) {
return Identity::instance()->list_users($filter);
}
+
+ /**
+ * Return the edit rules associated with an user.
+ *
+ * @return stdClass containing the rules
+ */
+ static function get_edit_rules() {
+ return Identity::instance()->get_edit_rules("user");
+ }
} \ No newline at end of file
diff --git a/modules/gallery/libraries/Identity.php b/modules/gallery/libraries/Identity.php
index 41c25b39..5e6f4217 100644
--- a/modules/gallery/libraries/Identity.php
+++ b/modules/gallery/libraries/Identity.php
@@ -217,4 +217,14 @@ class Identity_Core {
public function list_groups($filter=array()) {
return $this->driver->list_groups($filter);
}
+
+ /**
+ * Return the edit rules associated with an group.
+ *
+ * @param string $object_type to return rules for ("user"|"group")
+ * @return stdClass containing the rules
+ */
+ public function get_edit_rules($object_type) {
+ return $this->driver->get_edit_rules($object_type);
+ }
} // End Identity
diff --git a/modules/gallery/libraries/drivers/Identity.php b/modules/gallery/libraries/drivers/Identity.php
index 13af4583..65a3891c 100644
--- a/modules/gallery/libraries/drivers/Identity.php
+++ b/modules/gallery/libraries/drivers/Identity.php
@@ -116,4 +116,12 @@ interface Identity_Driver {
* @return array the group list.
*/
public function list_groups($filter=array());
+
+ /**
+ * Return the edit rules associated with an group.
+ *
+ * @param string $object_type to return rules for ("user"|"group")
+ * @return stdClass containing the rules
+ */
+ public function get_edit_rules($object_type);
} // End User Driver \ No newline at end of file
diff --git a/modules/user/libraries/drivers/Identity/Gallery.php b/modules/user/libraries/drivers/Identity/Gallery.php
index 83f553c1..ab162a4c 100644
--- a/modules/user/libraries/drivers/Identity/Gallery.php
+++ b/modules/user/libraries/drivers/Identity/Gallery.php
@@ -223,4 +223,14 @@ class Identity_Gallery_Driver implements Identity_Driver {
public function list_groups($filter=array()) {
return ORM::factory("group")->orderby("name")->find_all();
}
+
+ /**
+ * Return the edit rules associated with an group.
+ *
+ * @param string $object_type to return rules for ("user"|"group")
+ * @return stdClass containing the rules
+ */
+ public function get_edit_rules($object_type) {
+ return (object)ORM::factory($object_type)->rules;
+ }
} // End Identity Gallery Driver \ No newline at end of file