Example #1
0
/**
 * Add friends if invite code was set
 *
 * @param string $hook   Hook name
 * @param string $type   Hook type
 * @param bool   $result Whether to allow registration
 * @param array  $params Hook params
 * @return void
 */
function invitefriends_add_friends($hook, $type, $result, $params)
{
    $user = $params['user'];
    /* @var ElggUser $user */
    $friend_guid = $params['friend_guid'];
    $invite_code = $params['invitecode'];
    // If $friend_guid has been set, make mutual friends
    if ($friend_guid) {
        if ($friend_user = get_user($friend_guid)) {
            if (elgg_validate_invite_code($friend_user->username, $invite_code)) {
                $user->addFriend($friend_guid, true);
                $friend_user->addFriend($user->guid, true);
            }
        }
    }
}
Example #2
0
File: start.php Project: elgg/elgg
/**
 * Add friends if invite code was set
 *
 * @param string $hook   Hook name
 * @param string $type   Hook type
 * @param bool   $result Whether to allow registration
 * @param array  $params Hook params
 * @return void
 */
function invitefriends_add_friends($hook, $type, $result, $params)
{
    $user = elgg_extract('user', $params);
    if (!$user instanceof \ElggUser) {
        return;
    }
    $friend_guid = elgg_extract('friend_guid', $params);
    $invite_code = elgg_extract('invitecode', $params);
    if (!$friend_guid) {
        return;
    }
    $friend_user = get_user($friend_guid);
    if (!$friend_user instanceof \ElggUser) {
        return;
    }
    if (!elgg_validate_invite_code($friend_user->username, $invite_code)) {
        return;
    }
    // Make mutual friends
    $user->addFriend($friend_guid, true);
    $friend_user->addFriend($user->guid, true);
}
Example #3
0
function siteaccess_validate_invitecode($params)
{
    $valid = false;
    $friend_guid = $params['friend_guid'];
    $invite_code = $params['invitecode'];
    if ($friend_guid) {
        if ($friend_user = get_user($friend_guid)) {
            if (elgg_validate_invite_code($friend_user->username, $invite_code)) {
                $valid = true;
            }
        }
    }
    return $valid;
}
Example #4
0
<?php

/**
 * Make elgg invite only.
 * 
 * @see Readme.md for details
 *
 * @licence GNU Public License version 2
 * @link https://github.com/mapkyca/elgg-invite-only
 * @link http://www.marcus-povey.co.uk
 * @author Marcus Povey <*****@*****.**>
 */
elgg_register_event_handler('init', 'system', function () {
    elgg_register_page_handler('register', function ($pages) {
        // Get invite code details
        $friend_guid = (int) get_input('friend_guid', 0);
        $friend = get_entity($friend_guid);
        $invitecode = get_input('invitecode');
        // Validate
        if ($friend && $invitecode && elgg_validate_invite_code($friend->username, $invitecode)) {
            require_once dirname(dirname(dirname(__FILE__))) . '/pages/account/register.php';
        } else {
            elgg_unregister_action('register');
            require_once dirname(__FILE__) . '/pages/denied.php';
        }
        return true;
    });
});