Пример #1
0
/**
 * Validates the user through uncaptcha.
 * 
 * @param $event
 * @param $object_type
 * @param $object
 * @return unknown_type
 */
function uncaptcha_validate_user($event, $object_type, $object)
{
    global $CONFIG;
    if (get_plugin_setting('instant_validate', 'uncaptcha')) {
        $validated = set_user_validation_status($object->guid, true, 'uncaptcha');
    }
}
/**
 * Validate a user
 *
 * @param unknown_type $user_guid
 * @param unknown_type $code
 * @return unknown
 */
function uservalidationbyemail_validate_email($user_guid, $code)
{
    $user = get_entity($user_guid);
    if ($code == uservalidationbyemail_generate_code($user_guid, $user->email)) {
        return set_user_validation_status($user_guid, true, 'email');
    }
    return false;
}
Пример #3
0
/**
 * Trigger an event requesting that a user guid be validated somehow - either by email address or some other way.
 *
 * This function invalidates any existing validation value.
 *
 * @param int $user_guid User's GUID
 * @deprecated 1.8 Hook into the register, user plugin hook and request validation.
 */
function request_user_validation($user_guid)
{
    elgg_deprecated_notice("request_user_validation() is deprecated.\n\t\tPlugins should register for the 'register, user' plugin hook", 1.8);
    $user = get_entity($user_guid);
    if ($user && $user instanceof ElggUser) {
        // invalidate any existing validations
        set_user_validation_status($user_guid, false);
        // request validation
        trigger_elgg_event('validate', 'user', $user);
    }
}
Пример #4
0
 * 
 * @package Elgg
 * @subpackage Core
 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
 * @author Curverider Ltd
 * @copyright Curverider Ltd 2008-2009
 * @link http://elgg.org/
 */
require_once dirname(dirname(dirname(dirname(__FILE__)))) . "/engine/start.php";
// block non-admin users
admin_gatekeeper();
action_gatekeeper();
$access_status = access_get_show_hidden_status();
access_show_hidden_entities(true);
// Get the user
$guid = get_input('guid');
$obj = get_entity($guid);
if ($obj instanceof ElggUser && $obj->canEdit()) {
    set_user_validation_status($guid, true, 'admin');
    // Now actually disable it
    if ($obj->unban()) {
        system_message(elgg_echo('admin:user:unban:yes'));
    } else {
        register_error(elgg_echo('admin:user:unban:no'));
    }
} else {
    register_error(elgg_echo('admin:user:unban:no'));
}
access_show_hidden_entities($access_status);
forward($_SERVER['HTTP_REFERER']);
exit;
/**
 * Trigger an event requesting that a user guid be validated somehow - either by email address or some other way.
 *
 * This event invalidates any existing values and returns
 * 
 * @param unknown_type $user_guid
 */
function request_user_validation($user_guid)
{
    $user = get_entity($user_guid);
    if ($user && $user instanceof ElggUser) {
        // invalidate any existing validations
        set_user_validation_status($user_guid, false);
        // request validation
        trigger_elgg_event('validate', 'user', $user);
    }
}
Пример #6
0
 /**
  * createUsers Create the users in Elgg
  *
  * @return boolean
  */
 function createUsers($post_data)
 {
     global $CONFIG;
     $final_report = array();
     /// Final report of the creation process
     foreach ($post_data['header'] as $header => $mapping) {
         $metadata_name = $mapping['mapping'];
         if ($metadata_name == 'custom') {
             $metadata_name = $mapping['custom'];
         }
         $mapped_headers[$header] = $metadata_name;
     }
     $this->headers = $mapped_headers;
     /// Create the users from the $users array
     for ($i = 0; $i < $post_data['num_of_users']; $i++) {
         $user = array();
         /// Get the user details from POST data for all headers
         foreach ($this->headers as $header => $metadata_name) {
             if ($value = $post_data[$header][$i]) {
                 $user[$metadata_name] = $value;
             } else {
                 unset($user[$metadata_name]);
             }
         }
         /// Add the basic fields to the report
         $report = array('username' => $user['username'], 'password' => $user['password'], 'name' => $user['name'], 'email' => $user['email']);
         /// Try to create the user
         try {
             if ($guid = register_user($user['username'], $user['password'], $user['name'], $user['email'])) {
                 $new_user = get_entity($guid);
                 /// Validate the user.
                 set_user_validation_status($guid, true);
                 //$new_user->user_role = 'student';
                 /// Add all other fields as metadata
                 foreach ($this->headers as $header => $metadata_name) {
                     switch ($metadata_name) {
                         case 'username':
                         case 'password':
                         case 'name':
                         case 'email':
                             continue;
                             break;
                         default:
                             $hook_params = array('header' => $header, 'metadata_name' => $metadata_name, 'value' => $user[$metadata_name], 'user' => $new_user);
                             if (elgg_trigger_plugin_hook('header:custom_method', 'upload_users', $hook_params, false)) {
                                 continue;
                             }
                             /// Metadata could be a comma separated list if the delimiter is something else than a comma
                             if ($this->delimiter != ',' && strpos($user[$metadata_name], ',')) {
                                 /// Multiple tags found
                                 $tags = string_to_tag_array($user[$metadata_name]);
                                 foreach ($tags as $tag) {
                                     create_metadata($guid, $metadata_name, $tag, 'text', $guid, ACCESS_PRIVATE, true);
                                 }
                             } else {
                                 create_metadata($guid, $metadata_name, $user[$metadata_name], 'text', $guid);
                             }
                             break;
                     }
                     /// Add this metadata field to the report
                     $report[$metadata_name] = $user[$metadata_name];
                 }
                 /// Add status message to the report
                 $report['status'] = elgg_echo('upload_users:success');
                 /// Send an email to the user if this was needed
                 if ($this->notification) {
                     $subject = sprintf(elgg_echo('upload_users:email:subject'), $CONFIG->sitename);
                     $message = sprintf(elgg_echo('upload_users:email:message'), $user['name'], $CONFIG->sitename, $user['username'], $user['password'], $CONFIG->wwwroot);
                     notify_user($guid, 1, $subject, $message);
                 }
             }
         } catch (RegistrationException $r) {
             //register_error($r->getMessage());
             $report['status'] = '<span class="error">' . $r->getMessage() . '</span>';
             $report['password'] = '';
             /// Reset password in failed cases
             $this->number_of_failed_users++;
         }
         $final_report[] = $report;
     }
     $this->creation_report = $final_report;
     return true;
 }
<?php

// Upgrade to solve login issue
if ($users = get_entities_from_metadata('validated_email', '', 'user', '', 0, 9999)) {
    foreach ($users as $user) {
        set_user_validation_status($user->guid, true, 'email');
    }
}
global $CONFIG;
$username = get_input('username');
$password = get_input('password');
$password2 = get_input('password2');
$email = get_input('email');
$name = get_input('name');
$admin = get_input('admin');
if (is_array($admin)) {
    $admin = $admin[0];
}
// For now, just try and register the user
try {
    $guid = register_user($username, $password, $name, $email, true);
    if (trim($password) != "" && strcmp($password, $password2) == 0 && $guid) {
        $new_user = get_entity($guid);
        if ($guid && $admin) {
            $new_user->admin = 'yes';
        }
        $new_user->admin_created = true;
        $new_user->created_by_guid = get_loggedin_userid();
        set_user_validation_status($new_user->getGUID(), TRUE, 'admin_created');
        notify_user($new_user->guid, $CONFIG->site->guid, elgg_echo('useradd:subject'), sprintf(elgg_echo('useradd:body'), $name, $CONFIG->site->name, $CONFIG->site->url, $username, $password));
        system_message(sprintf(elgg_echo("adduser:ok"), $CONFIG->sitename));
    } else {
        register_error(elgg_echo("adduser:bad"));
    }
} catch (RegistrationException $r) {
    register_error($r->getMessage());
}
forward($_SERVER['HTTP_REFERER']);
exit;
Пример #9
0
<?php

/**^M
 * Elgg registration action^M
 * ^M
 * @package Elgg^M
 * @subpackage Core^M
 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2^M
 * @author Curverider Ltd^M
 * @copyright Curverider Ltd 2008-2009^M
 * @link http://elgg.org/^M
 */
// Get variables
if (isadminloggedin()) {
    if (get_input("disable") == "true") {
        set_user_validation_status(get_input('guid'), false, 'admin');
        system_message('user invalidated');
    } else {
        set_user_validation_status(get_input('guid'), true, 'admin');
        system_message('user validated');
    }
    forward("/");
}
Пример #10
0
 * Elgg ban user
 * 
 * @package Elgg
 * @subpackage Core
 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
 * @author Curverider Ltd
 * @copyright Curverider Ltd 2008-2009
 * @link http://elgg.org/
 */
require_once dirname(dirname(dirname(dirname(__FILE__)))) . "/engine/start.php";
// block non-admin users
admin_gatekeeper();
action_gatekeeper();
// Get the user
$guid = get_input('guid');
$obj = get_entity($guid);
if ($obj instanceof ElggUser && $obj->canEdit()) {
    set_user_validation_status($guid, false, 'admin');
    // Now actually disable it
    if ($obj->ban('banned')) {
        system_message(elgg_echo('admin:user:ban:yes'));
    } else {
        register_error(elgg_echo('admin:user:ban:no'));
    }
} else {
    $canedit = $obj->canEdit();
    $isinstance = $obj instanceof ElggUser;
    register_error(elgg_echo('admin:user:ban:no'));
}
forward('pg/admin/user/');
exit;
Пример #11
0
/**
 * Registers a user, returning false if the username already exists
 *
 * @param string $username The username of the new user
 * @param string $password The password
 * @param string $name The user's display name
 * @param string $email Their email address
 * @param bool $allow_multiple_emails Allow the same email address to be registered multiple times?
 * @param int $friend_guid Optionally, GUID of a user this user will friend once fully registered
 * @return int|false The new user's GUID; false on failure
 */
function register_user($username, $password, $name, $email, $allow_multiple_emails = false, $friend_guid = 0, $invitecode = '')
{
    // Load the configuration
    global $CONFIG;
    $username = trim($username);
    // no need to trim password.
    $password = $password;
    $name = trim($name);
    $email = trim($email);
    // A little sanity checking
    if (empty($username) || empty($password) || empty($name) || empty($email)) {
        return false;
    }
    // See if it exists and is disabled
    $access_status = access_get_show_hidden_status();
    access_show_hidden_entities(true);
    // Validate email address
    if (!validate_email_address($email)) {
        throw new RegistrationException(elgg_echo('registration:emailnotvalid'));
    }
    // Validate password
    if (!validate_password($password)) {
        throw new RegistrationException(elgg_echo('registration:passwordnotvalid'));
    }
    // Validate the username
    if (!validate_username($username)) {
        throw new RegistrationException(elgg_echo('registration:usernamenotvalid'));
    }
    // Check to see if $username exists already
    if ($user = get_user_by_username($username)) {
        //return false;
        throw new RegistrationException(elgg_echo('registration:userexists'));
    }
    // If we're not allowed multiple emails then see if this address has been used before
    if (!$allow_multiple_emails && get_user_by_email($email)) {
        throw new RegistrationException(elgg_echo('registration:dupeemail'));
    }
    access_show_hidden_entities($access_status);
    // Check to see if we've registered the first admin yet.
    // If not, this is the first admin user!
    $have_admin = datalist_get('admin_registered');
    // Otherwise ...
    $user = new ElggUser();
    $user->username = $username;
    $user->email = $email;
    $user->name = $name;
    $user->access_id = ACCESS_PUBLIC;
    $user->salt = generate_random_cleartext_password();
    // Note salt generated before password!
    $user->password = generate_user_password($user, $password);
    $user->owner_guid = 0;
    // Users aren't owned by anyone, even if they are admin created.
    $user->container_guid = 0;
    // Users aren't contained by anyone, even if they are admin created.
    $user->save();
    // If $friend_guid has been set, make mutual friends
    if ($friend_guid) {
        if ($friend_user = get_user($friend_guid)) {
            if ($invitecode == generate_invite_code($friend_user->username)) {
                $user->addFriend($friend_guid);
                $friend_user->addFriend($user->guid);
                // @todo Should this be in addFriend?
                add_to_river('friends/river/create', 'friend', $user->getGUID(), $friend_guid);
                add_to_river('friends/river/create', 'friend', $friend_guid, $user->getGUID());
            }
        }
    }
    global $registering_admin;
    if (!$have_admin) {
        $user->admin = true;
        set_user_validation_status($user->getGUID(), TRUE, 'first_run');
        datalist_set('admin_registered', 1);
        $registering_admin = true;
    } else {
        $registering_admin = false;
    }
    // Turn on email notifications by default
    set_user_notification_setting($user->getGUID(), 'email', true);
    return $user->getGUID();
}
function siteaccess_validate_email($user_guid, $code)
{
    $user = get_entity($user_guid);
    $valid = $code == siteaccess_generate_code($user_guid, $user->email);
    if ($valid) {
        create_metadata($user_guid, 'validated_email', true, '', 0, ACCESS_PUBLIC);
        if (siteaccess_email_enabled()) {
            set_user_validation_status($user_guid, true, 'email');
            siteaccess_add_to_river($user, 'activate');
        }
    }
    return $valid;
}
Пример #13
0
 function method_toggleDisable($params, $error)
 {
     if (!$this->is_loggedin()) {
         return array("err" => SESSION_ERROR);
     }
     if (!$this->is_admin()) {
         return array("err" => ADMIN_ERROR);
     }
     access_show_hidden_entities(true);
     $ids = $params[0];
     $disable = $params[1];
     // true or false
     $done = 'deactivated recursive';
     if (!$disable) {
         $done = 'enabled';
     }
     $msg = array();
     access_show_hidden_entities(true);
     if (is_array($ids)) {
         foreach ($ids as $id) {
             $obj = westorElggMan_get_entity($id);
             if ($obj instanceof ElggUser) {
                 if ($disable) {
                     if ($obj->disable("elggMan", true)) {
                         $msg["yes"][] = $obj->username;
                     } else {
                         $msg["no"][] = $obj->username;
                     }
                 } else {
                     if ($obj->enable()) {
                         if (function_exists("set_user_validation_status")) {
                             set_user_validation_status($obj->getGUID(), false, 'admin_modified');
                             set_user_validation_status($obj->getGUID(), true, 'admin_modified');
                         }
                         $msg["yes"][] = $obj->username;
                     } else {
                         $msg["no"][] = $obj->username;
                     }
                 }
             }
         }
     }
     return array("msg" => $this->createAnswerStr($msg));
 }