function publication_login_check($event, $object_type, $object)
{
    $user = get_loggedin_user();
    if ($user->firstpublication && $user->exauthor_name) {
        $exauthor_name = $user->exauthor_name;
        $pub = get_entity($user->firstpublication);
        add_entity_relationship($user->firstpublication, 'author', $user->guid);
        remove_metadata($user->guid, 'firstpublication');
        remove_metadata($user->guid, 'exauthor_name');
        $authors = $pub->authors;
        $authors = explode(',', $authors);
        foreach ($authors as $key => $value) {
            if ($value == $exauthor_name) {
                $authors[$key] = $user->guid;
            }
        }
        $authors = implode(',', $authors);
        $pub->authors = $authors;
    }
}
$blog->description = $body;
// Now let's add tags. We can pass an array directly to the object property! Easy.
if (is_array($tagarray)) {
    $blog->tags = $tagarray;
}
//whether the user wants to allow comments or not on the blog post
$blog->comments_on = $comments_on;
// Now save the object
if (!$blog->save()) {
    register_error(elgg_echo("blog:error"));
    forward($_SERVER['HTTP_REFERER']);
}
// Success message
system_message(elgg_echo("blog:posted"));
// add to river
add_to_river('river/object/blog/create', 'create', get_loggedin_userid(), $blog->guid);
// Remove the blog post cache
//unset($_SESSION['blogtitle']); unset($_SESSION['blogbody']); unset($_SESSION['blogtags']);
remove_metadata($_SESSION['user']->guid, 'blogtitle');
remove_metadata($_SESSION['user']->guid, 'blogbody');
remove_metadata($_SESSION['user']->guid, 'blogtags');
// Forward to the main blog page
$page_owner = get_entity($blog->container_guid);
if ($page_owner instanceof ElggUser) {
    $username = $page_owner->username;
} else {
    if ($page_owner instanceof ElggGroup) {
        $username = "******" . $page_owner->guid;
    }
}
forward("pg/blog/{$username}");
Пример #3
0
function subsite_manager_set_missing_subsite_profile_fields($user_guid = 0)
{
    $result = false;
    $accesslevel = get_input('accesslevel');
    elgg_make_sticky_form("subsite_missing_profile_fields");
    if (empty($user_guid)) {
        $user_guid = elgg_get_logged_in_user_guid();
    }
    if (!empty($user_guid) && ($user = get_user($user_guid))) {
        $form_vars = elgg_get_sticky_values("subsite_missing_profile_fields");
        $profile_fields = array();
        // filter the input
        foreach ($form_vars as $key => $value) {
            if (strpos($key, "custom_profile_fields_") === 0) {
                $key = substr($key, 22);
                $profile_fields[$key] = $value;
            }
        }
        if (!empty($profile_fields)) {
            foreach ($profile_fields as $key => $value) {
                remove_metadata($user->getGUID(), $key);
                if (!empty($value)) {
                    if ($accesslevel && array_key_exists($key, $accesslevel)) {
                        $access_id = $accesslevel[$key];
                    } else {
                        $access_id = get_default_access($user);
                    }
                    if (is_array($value)) {
                        foreach ($value as $index => $v) {
                            $multiple = false;
                            if ($index > 0) {
                                $multiple = true;
                            }
                            create_metadata($user->getGUID(), $key, $v, "text", $user->getGUID(), $access_id, $multiple);
                        }
                    } else {
                        create_metadata($user->getGUID(), $key, $value, "text", $user->getGUID(), $access_id);
                    }
                }
            }
            // in javascript we trust ;)
            $result = true;
        } else {
            $result = true;
        }
    }
    return $result;
}
Пример #4
0
    if (elgg_strlen($name) > 50) {
        register_error(elgg_echo('user:name:fail'));
    } else {
        $profile_owner->name = $name;
        // @todo this is weird...giving two notifications?
        if ($profile_owner->save()) {
            system_message(elgg_echo('user:name:success'));
        } else {
            register_error(elgg_echo('user:name:fail'));
        }
    }
}
// go through custom fields
if (sizeof($input) > 0) {
    foreach ($input as $shortname => $value) {
        remove_metadata($profile_owner->guid, $shortname);
        if (isset($accesslevel[$shortname])) {
            $access_id = (int) $accesslevel[$shortname];
        } else {
            // this should never be executed since the access level should always be set
            $access_id = ACCESS_DEFAULT;
        }
        if (is_array($value)) {
            $i = 0;
            foreach ($value as $interval) {
                $i++;
                $multiple = $i > 1 ? TRUE : FALSE;
                create_metadata($profile_owner->guid, $shortname, $interval, 'text', $profile_owner->guid, $access_id, $multiple);
            }
        } else {
            create_metadata($profile_owner->getGUID(), $shortname, $value, 'text', $profile_owner->getGUID(), $access_id);
/**
 * Used to create user with facebook data
 *
 * @access public
 * @param array $fbData facebook data of user
 * @return void
 */
function facebook_connect_create_update_user($fbData)
{
    elgg_load_library('facebook');
    // need facebook account credentials
    // backward compatibility for stalled-development FBConnect plugin
    $user = FALSE;
    $facebook_users = elgg_get_entities_from_metadata(array('type' => 'user', 'metadata_name_value_pairs' => array('name' => 'facebook_uid', 'value' => $fbData['user_profile']['id'])));
    if (is_array($facebook_users) && count($facebook_users) == 1) {
        // convert existing account
        $user = $facebook_users[0];
        // remove unused metadata
        remove_metadata($user->getGUID(), 'facebook_uid');
        remove_metadata($user->getGUID(), 'facebook_controlled_profile');
    }
    // create new user
    if (!$user) {
        // check new registration allowed
        if (!facebook_connect_allow_new_users_with_facebook()) {
            register_error(elgg_echo('registerdisabled'));
            forward();
        }
        $email = $fbData['user_profile']['email'];
        $users = get_user_by_email($email);
        if (!$users) {
            // Elgg-ify facebook credentials
            if (!empty($fbData['user_profile']['username'])) {
                $username = $fbData['user_profile']['username'];
            } else {
                $username = str_replace(' ', '', strtolower($fbData['user_profile']['name']));
            }
            $usernameTmp = $username;
            while (get_user_by_username($username)) {
                $username = $usernameTmp . '_' . rand(1000, 9999);
            }
            $password = generate_random_cleartext_password();
            $name = $fbData['user_profile']['name'];
            $user = new ElggUser();
            $user->username = $username;
            $user->name = $name;
            $user->email = $email;
            $user->access_id = ACCESS_PUBLIC;
            $user->salt = generate_random_cleartext_password();
            $user->password = generate_user_password($user, $password);
            $user->owner_guid = 0;
            $user->container_guid = 0;
            $user->last_action = date("Y-m-d");
            $user->last_login = date("Y-m-d");
            $user->validated = 1;
            $user->validated_method = 'facebook';
            $user->language = 'en';
            if (!$user->save()) {
                register_error(elgg_echo('registerbad'));
                forward();
            } else {
                // send mail to user
                send_user_password_mail($email, $name, $username, $password);
                // post status on facebook
                if (facebook_connect_allow_post_on_facebook()) {
                    facebook_connect_post_status($fbData);
                }
                // pull in facebook icon
                $url = 'https://graph.facebook.com/' . $fbData['user_profile']['id'] . '/picture?type=large';
                facebook_connect_update_user_avatar($user, $url);
            }
        } else {
            $user = $users[0];
        }
    }
    // set facebook services tokens
    elgg_set_plugin_user_setting('uid', $fbData['user_profile']['id'], $user->guid);
    elgg_set_plugin_user_setting('access_token', $fbData['user_profile']['accessToken'], $user->guid);
    return $user;
}
Пример #6
0
            $enabled_plugin_options["guids"] = array($subsite->getGUID());
            $old_enabled_plugins = elgg_get_metadata($enabled_plugin_options);
            if (!empty($old_enabled_plugins)) {
                $old_enabled_plugins = metadata_array_to_values($old_enabled_plugins);
                $old_enabled_plugins = array_unique($old_enabled_plugins);
                foreach ($old_enabled_plugins as $plugin_id) {
                    if ($plugin = elgg_get_plugin_from_id($plugin_id)) {
                        if (!check_entity_relationship($plugin->getGUID(), 'active_plugin', $subsite->getGUID())) {
                            add_entity_relationship($plugin->getGUID(), 'active_plugin', $subsite->getGUID());
                        }
                    }
                }
            }
            // remove old metadata
            remove_metadata($subsite->getGUID(), 'pluginorder');
            remove_metadata($subsite->getGUID(), 'enabled_plugins');
            elgg_set_config("site", $site);
            elgg_set_config("site_guid", $old_site_guid);
            datalist_set("plugins_done_" . $subsite->getGUID(), true);
            if ($subsites_done == 10) {
                forward("upgrade.php");
            }
            $subsites_done++;
        }
    }
    // cleanup datalist
    $query = "DELETE FROM " . elgg_get_config("dbprefix") . "datalists";
    $query .= " WHERE name LIKE 'plugins_done_%'";
    delete_data($query);
    access_show_hidden_entities($hidden);
}
Пример #7
0
        $input[$shortname] = string_to_tag_array($input[$shortname]);
    }
}
// Save stuff if we can, and forward to the user's profile
if ($user = page_owner()) {
    $user = page_owner_entity();
} else {
    $user = $_SESSION['user'];
    set_page_owner($user->getGUID());
}
if ($user->canEdit()) {
    // Save stuff
    if (sizeof($input) > 0) {
        foreach ($input as $shortname => $value) {
            //$user->$shortname = $value;
            remove_metadata($user->guid, $shortname);
            if (isset($accesslevel[$shortname])) {
                $access_id = (int) $accesslevel[$shortname];
            } else {
                // this should never be executed since the access level should always be set
                $access_id = ACCESS_PRIVATE;
            }
            if (is_array($value)) {
                $i = 0;
                foreach ($value as $interval) {
                    $i++;
                    if ($i == 1) {
                        $multiple = false;
                    } else {
                        $multiple = true;
                    }
function form_set_data($entity, $data)
{
    global $CONFIG;
    $entity_guid = $entity->getGUID();
    foreach ($data as $name => $item) {
        // look for magic names first
        remove_metadata($entity_guid, $name);
        $value = $item->value;
        if (is_array($value)) {
            // currently tags and checkbox groups are the only field types returning multiple values
            $i = 0;
            foreach ($value as $interval) {
                $i++;
                if ($i == 1) {
                    $multiple = false;
                } else {
                    $multiple = true;
                }
                create_metadata($entity_guid, $name, $interval, 'text', $entity_guid, $item->access_id, $multiple);
            }
        } else {
            create_metadata($entity_guid, $name, $value, '', $entity_guid, $item->access_id);
        }
    }
}
Пример #9
0
    $publication->clearRelationships();
    if (is_array($pauthors) && sizeof($pauthors) > 0) {
        foreach ($pauthors as $author) {
            if (is_int($author)) {
                add_entity_relationship($publication->getGUID(), 'author', $author);
            }
        }
    }
    $pauthors = implode(',', $pauthors);
    $publication->authors = $pauthors;
    $publication->attachment = $attachment;
    system_message(elgg_echo("publication:posted"));
    add_to_river('river/object/publication/create', 'create', $_SESSION['user']->guid, $publication->guid);
    remove_metadata($_SESSION['user']->guid, 'publicationtitle');
    remove_metadata($_SESSION['user']->guid, 'publicationabstract');
    remove_metadata($_SESSION['user']->guid, 'publicationkeywords');
    remove_metadata($_SESSION['user']->guid, 'publicationauthors');
    remove_metadata($_SESSION['user']->guid, 'publicationexauthors');
    remove_metadata($_SESSION['user']->guid, 'publicationuri');
    remove_metadata($_SESSION['user']->guid, 'publicationsource');
    remove_metadata($_SESSION['user']->guid, 'publicationyear');
    $page_owner = get_entity($publication->container_guid);
    if ($page_owner instanceof ElggUser) {
        $username = $page_owner->username;
    } else {
        if ($page_owner instanceof ElggGroup) {
            $username = "******" . $page_owner->guid;
        }
    }
    forward("pg/publications/{$username}");
}
Пример #10
0
foreach ($plugins as $plugin) {
    $priority = elgg_namespace_plugin_private_setting('internal', 'priority');
    set_private_setting($plugin->guid, $priority, 0);
}
// force regenerating plugin entities
elgg_generate_plugin_entities();
// set the priorities for all plugins
// this function rewrites it to a normal index so use the current one.
elgg_set_plugin_priorities($old_plugin_order);
// add relationships for enabled plugins
if ($old_enabled_plugins) {
    // they might only have one plugin enabled.
    if (!is_array($old_enabled_plugins)) {
        $old_enabled_plugins = array($old_enabled_plugins);
    }
    // sometimes there were problems and you'd get 1000s of enabled plugins.
    $old_enabled_plugins = array_unique($old_enabled_plugins);
    foreach ($old_enabled_plugins as $plugin_id) {
        $plugin = elgg_get_plugin_from_id($plugin_id);
        if ($plugin) {
            $plugin->activate();
        }
    }
}
// invalidate caches
elgg_invalidate_simplecache();
elgg_filepath_cache_reset();
// clean up.
remove_metadata($site->guid, 'pluginorder');
remove_metadata($site->guid, 'enabled_plugins');
elgg_set_ignore_access($old_id);
Пример #11
0
 /**
  * Clear metadata.
  */
 public function clearMetaData($name = "")
 {
     if (empty($name)) {
         return clear_metadata($this->getGUID());
     } else {
         return remove_metadata($this->getGUID(), $name);
     }
 }
    $admin = $admin[0];
}
if (!$CONFIG->disable_registration) {
    // For now, just try and register the user
    try {
        if (trim($password) != "" && strcmp($password, $password2) == 0 && ($guid = register_user($username, $password, $name, $email, false, $friend_guid, $invitecode))) {
            $new_user = get_entity($guid);
            //	if (($guid) && ($admin))
            //	{
            //		admin_gatekeeper(); // Only admins can make someone an admin
            $new_user->issimpleuser = "******";
            $new_user->admin = 'yes';
            //	}
            //added by Giacomo Fazio: delete when the Elgg database is not used for users anymore//////
            //it saves the new user as "user"
            remove_metadata($guid, "custom_profile_type");
            create_metadata($guid, "custom_profile_type", 355, 'text', $guid, ACCESS_PUBLIC);
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Send user validation request on register only
            global $registering_admin;
            if (!$registering_admin) {
                request_user_validation($guid);
            }
            //if (!$new_user->admin)
            //$new_user->disable('new_user', false);	// Now disable if not an admin
            // Don't do a recursive disable.  Any entities owned by the user at this point
            // are products of plugins that
            system_message(sprintf(elgg_echo("registerok") . ".Please log in.", $CONFIG->sitename));
            forward();
            // Forward on success, assume everything else is an error...
        } else {
/**
 * Log in a user with facebook.
 */
function facebook_connect_login()
{
    global $CONFIG;
    elgg_load_library('facebook');
    // sanity check
    if (!facebook_connect_allow_sign_on_with_facebook()) {
        forward();
    }
    $facebook = facebookservice_api();
    $access_token = $facebook->getAccessToken();
    // Get User ID
    $userID = $facebook->getUser();
    if ($userID) {
        try {
            // Proceed knowing you have a logged in user who's authenticated.
            $user_profile = $facebook->api('/me');
        } catch (FacebookApiException $e) {
            error_log($e);
            $userID = null;
            register_error(elgg_echo('facebook_connect:login:error'));
            forward();
        }
    } else {
        system_message(elgg_echo('loginerror'));
        forward();
    }
    // attempt to find user and log them in.
    // else, create a new user.
    $options = array('type' => 'user', 'plugin_user_setting_name_value_pairs' => array('uid' => $userID, 'access_token' => $access_token), 'plugin_user_setting_name_value_pairs_operator' => 'OR', 'limit' => 0);
    $users = elgg_get_entities_from_plugin_user_settings($options);
    if (!empty($users)) {
        if (count($users) == 1 && login($users[0])) {
            system_message(elgg_echo('facebook_connect:login:success'));
            elgg_set_plugin_user_setting('access_token', $access_token, $users[0]->guid);
            if (empty($users[0]->email)) {
                $data = $facebook->api('/me');
                $email = $data['email'];
                $user = get_entity($users[0]->guid);
                $user->email = $email;
                $user->save();
            }
        } else {
            system_message(elgg_echo('facebook_connect:login:error'));
        }
        forward();
    } else {
        // need facebook account credentials
        $data = $facebook->api('/me');
        // backward compatibility for stalled-development FBConnect plugin
        $user = FALSE;
        $facebook_users = elgg_get_entities_from_metadata(array('type' => 'user', 'metadata_name_value_pairs' => array('name' => 'facebook_uid', 'value' => $userID)));
        if (is_array($facebook_users) && count($facebook_users) == 1) {
            // convert existing account
            $user = $facebook_users[0];
            login($user);
            // remove unused metadata
            remove_metadata($user->getGUID(), 'facebook_uid');
            remove_metadata($user->getGUID(), 'facebook_controlled_profile');
        }
        // create new user
        if (!$user) {
            // check new registration allowed
            if (!facebook_connect_allow_new_users_with_facebook()) {
                register_error(elgg_echo('registerdisabled'));
                forward();
            }
            $userSave = 0;
            $email = $data['email'];
            $users = get_user_by_email($email);
            if (!$users) {
                // Elgg-ify facebook credentials
                $username = str_replace(' ', '', strtolower($data['name']));
                while (get_user_by_username($username)) {
                    $username = str_replace(' ', '', strtolower($data['name'])) . '_' . rand(1000, 9999);
                }
                $permissions = $facebook->api("/me/permissions");
                if (array_key_exists('publish_stream', $permissions['data'][0])) {
                    $postWall = true;
                } else {
                    $postWall = false;
                }
                $password = generate_random_cleartext_password();
                $name = $data['name'];
                $user = new ElggUser();
                $user->username = $username;
                $user->name = $name;
                $user->email = $email;
                $user->location = $data['locate'];
                $user->website = $data['link'];
                $user->access_id = ACCESS_PUBLIC;
                $user->salt = generate_random_cleartext_password();
                $user->password = generate_user_password($user, $password);
                $user->owner_guid = 0;
                $user->container_guid = 0;
                if ($postWall) {
                    $user->post_wall = true;
                }
                $userSave = 1;
            } else {
                $user = $users[0];
            }
            $site = elgg_get_site_entity();
            if ($postWall) {
                $message = $user->name . ' just synchronized Facebook account with ' . $site->name;
                $params = array('link' => elgg_get_site_url(), 'message' => $message, 'picture' => elgg_get_site_url() . '_graphics/elgg_logo.png', 'description' => $site->name . ' is the social network for connecting people.');
                $status = $facebook->api('/me/feed', 'POST', $params);
            }
            if ($userSave) {
                $userGuid = $user->save();
                if (!$userGuid) {
                    register_error(elgg_echo('registerbad'));
                    forward();
                }
                send_user_password_mail($email, $name, $username, $password);
                $forward = "profile/{$user->username}";
            } else {
                $forward = "";
            }
        }
        // set facebook services tokens
        elgg_set_plugin_user_setting('uid', $userID, $user->guid);
        elgg_set_plugin_user_setting('access_token', $access_token, $user->guid);
        // pull in facebook icon
        $url = 'https://graph.facebook.com/' . $userID . '/picture?type=large';
        facebook_connect_update_user_avatar($user, $url);
        // login new user
        if (login($user)) {
            system_message(elgg_echo('facebook_connect:login:success'));
        } else {
            system_message(elgg_echo('facebook_connect:login:error'));
        }
        forward($forward, 'facebook_connect');
    }
    // register login error
    register_error(elgg_echo('facebook_connect:login:error'));
    forward();
}
Пример #14
0
     create_metadata($user->guid, 'user4', $user4, 'text', $user->guid, $access_id);
 }
 if ($user5) {
     remove_metadata($user->guid, 'user5');
     create_metadata($user->guid, 'user5', $user5, 'text', $user->guid, $access_id);
 }
 if ($user6) {
     remove_metadata($user->guid, 'user6');
     create_metadata($user->guid, 'user6', $user6, 'text', $user->guid, $access_id);
 }
 if ($user7) {
     remove_metadata($user->guid, 'user7');
     create_metadata($user->guid, 'user7', $user7, 'text', $user->guid, $access_id);
 }
 if ($Affiliation) {
     remove_metadata($user->guid, 'Affiliation');
     create_metadata($user->guid, 'Affiliation', $Affiliation, 'text', $user->guid, $access_id);
 }
 if ($Location) {
     create_metadata($user->guid, 'Location', $Location, 'text', $user->guid, $access_id);
 }
 if ($city) {
     create_metadata($user->guid, 'city', $city, 'text', $user->guid, $access_id);
 }
 /*              OLD DEFAULT
 			// Save stuff
 			if (sizeof($input) > 0)
 				foreach($input as $shortname => $value) {
 					
 					//$user->$shortname = $value;
 					remove_metadata($user->guid, $shortname);    WE WILL NEED THIS ONE TO CLEAR VALUES
Пример #15
0
/**
 * Log in a user with facebook.
 */
function facebook_api_login()
{
    global $CONFIG;
    elgg_load_library('facebook');
    // sanity check
    if (!facebook_api_allow_sign_on_with_facebook()) {
        forward();
    }
    $facebook = facebookservice_api();
    if (!($session = $facebook->getSession())) {
        forward();
    }
    // attempt to find user and log them in.
    // else, create a new user.
    $options = array('type' => 'user', 'plugin_user_setting_name_value_pairs' => array('uid' => $session['uid'], 'access_token' => $session['access_token']), 'plugin_user_setting_name_value_pairs_operator' => 'OR', 'limit' => 0);
    $users = elgg_get_entities_from_plugin_user_settings($options);
    // need facebook account credentials
    $data = $facebook->api('/me');
    if ($users) {
        if (count($users) == 1 && login($users[0])) {
            //If user changed his email address
            $users[0]->email = $data['email'];
            system_message(elgg_echo('facebook_api:login:success'));
            elgg_set_plugin_user_setting('access_token', $session['access_token'], $users[0]->guid);
        } else {
            system_message(elgg_echo('facebook_api:login:error'));
        }
        forward();
    } else {
        // backward compatibility for stalled-development FBConnect plugin
        $user = FALSE;
        $facebook_users = elgg_get_entities_from_metadata(array('type' => 'user', 'metadata_name_value_pairs' => array('name' => 'facebook_uid', 'value' => $session['uid'])));
        if (is_array($facebook_users) && count($facebook_users) == 1) {
            // convert existing account
            $user = $facebook_users[0];
            //If user changed his email address
            $user->email = $data['email'];
            login($user);
            // remove unused metadata
            remove_metadata($user->getGUID(), 'facebook_uid');
            remove_metadata($user->getGUID(), 'facebook_controlled_profile');
        }
        // create new user
        if (!$user) {
            // check new registration allowed
            if (!facebook_api_allow_new_users_with_facebook()) {
                register_error(elgg_echo('registerdisabled'));
                forward();
            }
            // Elgg-ify facebook credentials
            $username = str_replace(' ', '', strtolower($data['name']));
            while (get_user_by_username($username)) {
                $username = str_replace(' ', '', strtolower($data['name'])) . '_' . rand(1000, 9999);
            }
            $password = generate_random_cleartext_password();
            $name = $data['name'];
            $user = new ElggUser();
            $user->username = $username;
            $user->name = $name;
            $user->access_id = ACCESS_PUBLIC;
            $user->salt = generate_random_cleartext_password();
            $user->password = generate_user_password($user, $password);
            $user->owner_guid = 0;
            $user->container_guid = 0;
            $user->email = $data['email'];
            $user->description = $data['bio'];
            $user->briefdescription = $data['bio'];
            $user->contactemail = $data['email'];
            $site = elgg_get_site_entity();
            if (!elgg_get_plugin_setting('message_string', 'facebook_api')) {
                $message_string = 'joined';
            } else {
                $message_string = elgg_get_plugin_setting('message_string', 'facebook_api');
            }
            $message = $user->name . $message_string . $site->name;
            $params = array('link' => elgg_get_site_url(), 'message' => $message, 'picture' => elgg_get_site_url() . '_graphics/elgg_logo.png', 'description' => $site->description);
            if (!$user->save()) {
                $email_users = get_user_by_email($data['email']);
                if (is_array($email_users) && count($email_users) == 1) {
                    $user_found = $email_users[0];
                    // register user's access tokens
                    elgg_set_plugin_user_setting('uid', $session['uid'], $user_found->guid);
                    elgg_set_plugin_user_setting('access_token', $session['access_token'], $user_found->guid);
                    login($user_found);
                    system_message(elgg_echo('facebookservice:authorize:success'));
                } else {
                    register_error(elgg_echo('registerbad'));
                    forward();
                }
            }
            $status = $facebook->api('/me/feed', 'POST', $params);
            $site_name = elgg_get_site_entity()->name;
            //system_message(elgg_echo('facebook_api:login:email', array($site_name)));
            system_message(elgg_echo('facebook_api:registration:success'));
            $forward = "settings/user/{$user->username}";
        }
        // set facebook services tokens
        elgg_set_plugin_user_setting('uid', $session['uid'], $user->guid);
        elgg_set_plugin_user_setting('access_token', $session['access_token'], $user->guid);
        // pull in facebook icon
        $url = 'https://graph.facebook.com/' . $session['uid'] . '/picture?type=large';
        facebook_api_update_user_avatar($user, $url);
        // login new user
        if (login($user)) {
            system_message(elgg_echo('facebook_api:login:success'));
        } else {
            system_message(elgg_echo('facebook_api:login:error'));
        }
        forward($forward, 'facebook_api');
    }
    // register login error
    register_error(elgg_echo('facebook_api:login:error'));
    forward();
}