aboutsummaryrefslogtreecommitdiff
path: root/mod/uservalidationbyemail
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-11-15 12:41:26 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-11-15 12:41:26 +0000
commit624cab6eff69d43c70cacedf8fa2d8d9fa64fabd (patch)
tree43fa5752c192a6ebf50a4a082db715097f335240 /mod/uservalidationbyemail
parent481a5ecfe6b17836d47b8c89eabf346f941bbc3b (diff)
downloadelgg-624cab6eff69d43c70cacedf8fa2d8d9fa64fabd.tar.gz
elgg-624cab6eff69d43c70cacedf8fa2d8d9fa64fabd.tar.bz2
Refs #2573 fixes validation issue for users registered with validation turned off. Still need to write an upgrade script since validation status wasn't set on unvalidated users before this
git-svn-id: http://code.elgg.org/elgg/trunk@7320 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/uservalidationbyemail')
-rw-r--r--mod/uservalidationbyemail/lib/functions.php44
-rw-r--r--mod/uservalidationbyemail/start.php17
2 files changed, 23 insertions, 38 deletions
diff --git a/mod/uservalidationbyemail/lib/functions.php b/mod/uservalidationbyemail/lib/functions.php
index b7ca30bcc..38822595a 100644
--- a/mod/uservalidationbyemail/lib/functions.php
+++ b/mod/uservalidationbyemail/lib/functions.php
@@ -9,7 +9,7 @@
/**
* Generate an email activation code.
*
- * @param int $user_guid The guid of the user
+ * @param int $user_guid The guid of the user
* @param string $email_address Email address
* @return string
*/
@@ -24,7 +24,7 @@ function uservalidationbyemail_generate_code($user_guid, $email_address) {
* Request user validation email.
* Send email out to the address and request a confirmation.
*
- * @param int $user_guid The user
+ * @param int $user_guid The user's GUID
* @return mixed
*/
function uservalidationbyemail_request_validation($user_guid) {
@@ -57,9 +57,9 @@ function uservalidationbyemail_request_validation($user_guid) {
/**
* Validate a user
*
- * @param unknown_type $user_guid
- * @param unknown_type $code
- * @return unknown
+ * @param int $user_guid
+ * @param string $code
+ * @return bool
*/
function uservalidationbyemail_validate_email($user_guid, $code) {
$user = get_entity($user_guid);
@@ -74,43 +74,27 @@ function uservalidationbyemail_validate_email($user_guid, $code) {
/**
* Set the validation status for a user.
*
- * @param bool $status Validated (true) or false
+ * @param int $user_guid The user's GUID
+ * @param bool $status Validated (true) or false
* @param string $method Optional method to say how a user was validated
* @return bool
*/
function uservalidationbyemail_set_user_validation_status($user_guid, $status, $method = '') {
- if (!$status) {
- $method = '';
- }
- if ($status) {
- if (
- (create_metadata($user_guid, 'validated', $status,'', 0, ACCESS_PUBLIC)) &&
- (create_metadata($user_guid, 'validated_method', $method,'', 0, ACCESS_PUBLIC))
- ) {
- return TRUE;
- }
+ $result1 = create_metadata($user_guid, 'validated', $status, '', 0, ACCESS_PUBLIC, false);
+ $result2 = create_metadata($user_guid, 'validated_method', $method, '', 0, ACCESS_PUBLIC, false);
+ if ($result1 && $result2) {
+ return true;
} else {
- $validated = get_metadata_byname($user_guid, 'validated');
- $validated_method = get_metadata_byname($user_guid, 'validated_method');
-
- if (
- ($validated) &&
- ($validated_method) &&
- (delete_metadata($validated->id)) &&
- (delete_metadata($validated_method->id))
- )
- return TRUE;
+ return false;
}
-
- return FALSE;
}
/**
* Returns the validation status of a user.
*
- * @param unknown_type $user_guid
- * @return int|null
+ * @param int $user_guid The user's GUID
+ * @return bool
*/
function uservalidationbyemail_get_user_validation_status($user_guid) {
$md = get_metadata_byname($user_guid, 'validated');
diff --git a/mod/uservalidationbyemail/start.php b/mod/uservalidationbyemail/start.php
index 8c91c5a1f..8f5888679 100644
--- a/mod/uservalidationbyemail/start.php
+++ b/mod/uservalidationbyemail/start.php
@@ -51,21 +51,22 @@ function uservalidationbyemail_init() {
/**
* Disables a user upon registration.
*
- * @param unknown_type $hook
- * @param unknown_type $type
- * @param unknown_type $value
- * @param unknown_type $params
+ * @param string $hook
+ * @param string $type
+ * @param bool $value
+ * @param array $params
+ * @return bool
*/
function uservalidationbyemail_disable_new_user($hook, $type, $value, $params) {
$user = elgg_get_array_value('user', $params);
// no clue what's going on, so don't react.
if (!$user instanceof ElggUser) {
- return NULL;
+ return;
}
// disable user to prevent showing up on the site
- // set context to our canEdit() override works
+ // set context so our canEdit() override works
elgg_push_context('uservalidationbyemail_new_user');
$hidden_entities = access_get_show_hidden_status();
access_show_hidden_entities(TRUE);
@@ -83,7 +84,7 @@ function uservalidationbyemail_disable_new_user($hook, $type, $value, $params) {
elgg_pop_context();
access_show_hidden_entities($hidden_entities);
- return TRUE;
+ return $value;
}
/**
@@ -123,7 +124,7 @@ function uservalidationbyemail_check_auth_attempt($credentials) {
access_show_hidden_entities(TRUE);
$user = get_user_by_username($username);
- if ($user && !$user->validated) {
+ if ($user && isset($user->validated) && !$user->validated) {
// show an error and resend validation email
uservalidationbyemail_request_validation($user->guid);
access_show_hidden_entities($access_status);