123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- /**
- * All helper functions are bundled here
- */
- /**
- * Generate a validation token
- *
- * @param string $type what kind of token
- * @param int $user_guid the user_guid to generate for
- *
- * @return bool|string
- */
- function acount_removal_generate_confirm_token($type, $user_guid) {
- $result = false;
-
- if (!empty($user_guid) && ($user = get_user($user_guid)) && in_array($type, array("remove", "disable"))) {
- $site_secret = get_site_secret();
- $user_salt = $user->salt;
-
- $result = md5($site_secret . $user_guid . $type . $user_salt);
- }
-
- return $result;
- }
- /**
- * Validate a token for account removal
- *
- * @param string $token the token to validate
- * @param string $type what kind of token
- * @param int $user_guid the user_guid to validate for
- *
- * @return bool
- */
- function acount_removal_validate_confirm_token($token, $type, $user_guid) {
- $result = false;
-
- if (!empty($user_guid) && !empty($token) && in_array($type, array("remove", "disable"))) {
- $new_token = acount_removal_generate_confirm_token($type, $user_guid);
-
- if ($token === $new_token) {
- $result = true;
- }
- }
-
- return $result;
- }
- /**
- * Send a notification to the user for confirmation of account removal
- *
- * @param string $type what kind of removal
- * @param int $user_guid the user_guid to send the notification to
- *
- * @return bool
- */
- function account_removal_send_notification($type, $user_guid) {
- $result = false;
-
- $site = elgg_get_site_entity();
-
- if (!empty($user_guid) && ($user = get_user($user_guid)) && in_array($type, array("remove", "disable"))) {
- $token = acount_removal_generate_confirm_token($type, $user_guid);
- $url = elgg_get_site_url() . "account_removal/" . $type . "/?confirm_token=" . $token;
-
- $subject = elgg_echo("account_removal:message:" . $type . ":subject", array($site->name));
- $message = elgg_echo("account_removal:message:" . $type . ":body", array($user->name, $url));
-
- notify_user($user_guid, $site->getGUID(), $subject, $message, null, "email");
-
- $result = true;
- }
-
- return $result;
- }
- /**
- * Send a thank you notification after account removal
- *
- * @param string $type what kind of removal
- * @param int $user_guid the user_guid to send the notification to
- *
- * @return bool
- */
- function account_removal_send_thank_notification($type, $user_guid) {
- $result = false;
-
- $site = elgg_get_site_entity();
-
- if (!empty($user_guid) && ($user = get_user($user_guid)) && in_array($type, array("remove", "disable"))) {
- $subject = elgg_echo("account_removal:message:thank_you:" . $type . ":subject", array($site->name));
- $message = elgg_echo("account_removal:message:thank_you:" . $type . ":body", array($user->name, $site->name));
-
- notify_user($user_guid, $site->getGUID(), $subject, $message, null, "email");
-
- $result = true;
- }
-
- return $result;
- }
|