diff options
Diffstat (limited to 'mod/uservalidationbyemail/actions')
| -rw-r--r-- | mod/uservalidationbyemail/actions/bulk_action.php | 18 | ||||
| -rw-r--r-- | mod/uservalidationbyemail/actions/delete.php | 51 | ||||
| -rw-r--r-- | mod/uservalidationbyemail/actions/email/confirm.php | 46 | ||||
| -rw-r--r-- | mod/uservalidationbyemail/actions/resend_validation.php | 51 | ||||
| -rw-r--r-- | mod/uservalidationbyemail/actions/validate.php | 53 |
5 files changed, 173 insertions, 46 deletions
diff --git a/mod/uservalidationbyemail/actions/bulk_action.php b/mod/uservalidationbyemail/actions/bulk_action.php new file mode 100644 index 000000000..fbbcc1c93 --- /dev/null +++ b/mod/uservalidationbyemail/actions/bulk_action.php @@ -0,0 +1,18 @@ +<?php +/** + * Dispatches a bulk action to real action. + * + * @package Elgg.Core.Plugin + * @subpackage UserValidationByEmail + */ + +$action_type = get_input('action_type'); +$valid_actions = array('delete', 'resend_validation', 'validate'); + +if (!in_array($action_type, $valid_actions)) { + forward(REFERRER); +} + +$action_name = "uservalidationbyemail/$action_type"; + +action($action_name);
\ No newline at end of file diff --git a/mod/uservalidationbyemail/actions/delete.php b/mod/uservalidationbyemail/actions/delete.php new file mode 100644 index 000000000..b076d3048 --- /dev/null +++ b/mod/uservalidationbyemail/actions/delete.php @@ -0,0 +1,51 @@ +<?php +/** + * Delete a user or users by guid + * + * @package Elgg.Core.Plugin + * @subpackage UserValidationByEmail + */ + +$user_guids = get_input('user_guids'); +$error = FALSE; + +if (!$user_guids) { + register_error(elgg_echo('uservalidationbyemail:errors:unknown_users')); + forward(REFERRER); +} + +$access = access_get_show_hidden_status(); +access_show_hidden_entities(TRUE); + +foreach ($user_guids as $guid) { + $user = get_entity($guid); + if (!$user instanceof ElggUser) { + $error = TRUE; + continue; + } + + // don't delete validated users + $is_validated = elgg_get_user_validation_status($guid); + if ($is_validated !== FALSE || !$user->delete()) { + $error = TRUE; + continue; + } +} + +access_show_hidden_entities($access); + +if (count($user_guids) == 1) { + $message_txt = elgg_echo('uservalidationbyemail:messages:deleted_user'); + $error_txt = elgg_echo('uservalidationbyemail:errors:could_not_delete_user'); +} else { + $message_txt = elgg_echo('uservalidationbyemail:messages:deleted_users'); + $error_txt = elgg_echo('uservalidationbyemail:errors:could_not_delete_users'); +} + +if ($error) { + register_error($error_txt); +} else { + system_message($message_txt); +} + +forward(REFERRER);
\ No newline at end of file diff --git a/mod/uservalidationbyemail/actions/email/confirm.php b/mod/uservalidationbyemail/actions/email/confirm.php deleted file mode 100644 index ece0e16be..000000000 --- a/mod/uservalidationbyemail/actions/email/confirm.php +++ /dev/null @@ -1,46 +0,0 @@ -<?php - /** - * Action which confirms an email when it is registered or changed, based on a code. - * - * @package Elgg - * @subpackage Core - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author - * @copyright Curverider Ltd 2008-2009 - * @link http://elgg.org/ - */ - - global $CONFIG; - - // Get user id - $access_status = access_get_show_hidden_status(); - access_show_hidden_entities(true); - - $user_guid = (int)get_input('u'); - $user = get_entity($user_guid); - - // And the code - $code = sanitise_string(get_input('c')); - - if ( ($code) && ($user) ) - { - if (uservalidationbyemail_validate_email($user_guid, $code)) { - system_message(elgg_echo('email:confirm:success')); - - $user = get_entity($user_guid); - $user->enable(); - - notify_user($user_guid, $CONFIG->site->guid, sprintf(elgg_echo('email:validate:success:subject'), $user->username), sprintf(elgg_echo('email:validate:success:body'), $user->name), NULL, 'email'); - - } else - register_error(elgg_echo('email:confirm:fail')); - } - else - register_error(elgg_echo('email:confirm:fail')); - - access_show_hidden_entities($access_status); - - forward($_SERVER['HTTP_REFERER']); - exit; - -?>
\ No newline at end of file diff --git a/mod/uservalidationbyemail/actions/resend_validation.php b/mod/uservalidationbyemail/actions/resend_validation.php new file mode 100644 index 000000000..586509b13 --- /dev/null +++ b/mod/uservalidationbyemail/actions/resend_validation.php @@ -0,0 +1,51 @@ +<?php +/** + * Resends validation emails to a user or users by guid + * + * @package Elgg.Core.Plugin + * @subpackage UserValidationByEmail + */ + +$user_guids = get_input('user_guids'); +$error = FALSE; + +if (!$user_guids) { + register_error(elgg_echo('uservalidationbyemail:errors:unknown_users')); + forward(REFERRER); +} + +$access = access_get_show_hidden_status(); +access_show_hidden_entities(TRUE); + +foreach ($user_guids as $guid) { + $user = get_entity($guid); + if (!$user instanceof ElggUser) { + $error = TRUE; + continue; + } + + // don't resend emails to validated users + $is_validated = elgg_get_user_validation_status($guid); + if ($is_validated !== FALSE || !uservalidationbyemail_request_validation($guid, true)) { + $error = TRUE; + continue; + } +} + +access_show_hidden_entities($access); + +if (count($user_guids) == 1) { + $message_txt = elgg_echo('uservalidationbyemail:messages:resent_validation'); + $error_txt = elgg_echo('uservalidationbyemail:errors:could_not_resend_validation'); +} else { + $message_txt = elgg_echo('uservalidationbyemail:messages:resent_validations'); + $error_txt = elgg_echo('uservalidationbyemail:errors:could_not_resend_validations'); +} + +if ($error) { + register_error($error_txt); +} else { + system_message($message_txt); +} + +forward(REFERRER);
\ No newline at end of file diff --git a/mod/uservalidationbyemail/actions/validate.php b/mod/uservalidationbyemail/actions/validate.php new file mode 100644 index 000000000..d6be9cfe5 --- /dev/null +++ b/mod/uservalidationbyemail/actions/validate.php @@ -0,0 +1,53 @@ +<?php +/** + * Validate a user or users by guid + * + * @package Elgg.Core.Plugin + * @subpackage UserValidationByEmail + */ + +$user_guids = get_input('user_guids'); +$error = FALSE; + +if (!$user_guids) { + register_error(elgg_echo('uservalidationbyemail:errors:unknown_users')); + forward(REFERRER); +} + +$access = access_get_show_hidden_status(); +access_show_hidden_entities(TRUE); + +foreach ($user_guids as $guid) { + $user = get_entity($guid); + if (!$user instanceof ElggUser) { + $error = TRUE; + continue; + } + + // only validate if not validated + $is_validated = elgg_get_user_validation_status($guid); + $validate_success = elgg_set_user_validation_status($guid, TRUE, 'manual'); + + if ($is_validated !== FALSE || !($validate_success && $user->enable())) { + $error = TRUE; + continue; + } +} + +access_show_hidden_entities($access); + +if (count($user_guids) == 1) { + $message_txt = elgg_echo('uservalidationbyemail:messages:validated_user'); + $error_txt = elgg_echo('uservalidationbyemail:errors:could_not_validate_user'); +} else { + $message_txt = elgg_echo('uservalidationbyemail:messages:validated_users'); + $error_txt = elgg_echo('uservalidationbyemail:errors:could_not_validate_users'); +} + +if ($error) { + register_error($error_txt); +} else { + system_message($message_txt); +} + +forward(REFERRER);
\ No newline at end of file |
