Пример #1
0
function user_login_openid($token)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://loginza.ru/api/authinfo?token={$token}");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $arr = json_decode(curl_exec($ch), true);
    if (isset($arr['error_type'])) {
        print $arr['error_message'];
        return 0;
    }
    $id = trim($arr['identity']);
    if (!$id) {
        throw new Exception();
    }
    //check if the user exists
    $res = sql_pe("SELECT user_id FROM `users` WHERE user_name=? LIMIT 1", array($id));
    sql_begin();
    $user_id = sizeof($res) ? $res[0]['user_id'] : make_new_user($id, 'notagreed', '', $id);
    $alias_uid = check_for_user_alias($user_id);
    if ($alias_uid) {
        $user_id = $alias_uid;
    }
    $token = remember_user($user_id, false);
    $row = sql_fetch_array(sql_query("SELECT user_shown_name, user_passwd, user_level FROM users WHERE user_id = {$user_id} LIMIT 1"));
    init_session($user_id, $row['user_shown_name'], get_user_options($user_id), get_user_permissions($user_id), $token, $row['user_level']);
    sql_commit();
    user_award_for_signup($user_id);
    if ($row['user_passwd'] == 'notagreed') {
        $_SESSION['user_pending'] = 1;
        return 2;
    }
    return 1;
}
Пример #2
0
     } else {
         $all_forms = false;
     }
     $answer['answer'] = get_search_results($_GET['query'], !$all_forms);
     foreach ($answer['answer']['results'] as &$res) {
         $parts = array();
         foreach (get_book_parents($res['book_id'], true) as $p) {
             $parts[] = $p['title'];
         }
         $res['text_fullname'] = join(': ', array_reverse($parts));
     }
     break;
 case 'login':
     $user_id = user_check_password($_POST['login'], $_POST['password']);
     if ($user_id) {
         $token = remember_user($user_id, false, false);
         $answer['answer'] = array('user_id' => $user_id, 'token' => $token);
     } else {
         $answer['error'] = 'Incorrect login or password';
     }
     break;
 case 'get_available_morph_tasks':
     $answer['answer'] = array('tasks' => get_available_tasks($user_id, true));
     break;
 case 'get_morph_task':
     if (empty($_POST['pool_id']) || empty($_POST['size'])) {
         throw new UnexpectedValueException("Wrong args");
     }
     // timeout is in seconds
     $answer['answer'] = get_annotation_packet($_POST['pool_id'], $_POST['size'], $user_id, $_POST['timeout']);
     break;