summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2009-10-29 17:09:01 -0700
committerTim Almdal <tnalmdal@shaw.ca>2009-10-29 17:09:01 -0700
commit04bf50bfb4241f7c814782c516732d927ff1f457 (patch)
tree0877e4010b7242cf5eba51cb6fddd1c99630472d
parent392e24e56b4afa0e8752fd740f613f5556955342 (diff)
Use an event 'check_user_name_exists' to validate the input name is already in use. The parameter is a standard class with the name and an exists flag. Any event handler should or their result with the exists flag.
-rw-r--r--modules/user/controllers/admin_users.php4
-rw-r--r--modules/user/helpers/user_event.php5
2 files changed, 8 insertions, 1 deletions
diff --git a/modules/user/controllers/admin_users.php b/modules/user/controllers/admin_users.php
index 269e3dc8..a7db6179 100644
--- a/modules/user/controllers/admin_users.php
+++ b/modules/user/controllers/admin_users.php
@@ -36,7 +36,9 @@ class Admin_Users_Controller extends Admin_Controller {
$form = $this->_get_user_add_form_admin();
$valid = $form->validate();
$name = $form->add_user->inputs["name"]->value;
- if ($user = user::lookup_by_name($name)) {
+ $user_exists_data = (object)array("name" => $name);
+ module::event("check_username_exists", $user_exists_data);
+ if ($user_exists_data->exists) {
$form->add_user->inputs["name"]->add_error("in_use", 1);
$valid = false;
}
diff --git a/modules/user/helpers/user_event.php b/modules/user/helpers/user_event.php
index 1ac7f333..e3dbacb7 100644
--- a/modules/user/helpers/user_event.php
+++ b/modules/user/helpers/user_event.php
@@ -28,4 +28,9 @@ class user_event_Core {
return $menu;
}
+
+ static function check_username_exists($data) {
+ $user = user::lookup_by_name($data->name);
+ $data->exists |= $user ? true : false;
+ }
}