예제 #1
0
    if (array_key_exists($user['locale'], Config::get('app.locales'))) {
        $data['usermeta']['locale'] = $user['locale'];
    }
    foreach (UserFields::all('user') as $key => $field) {
        if (isset($user[$key])) {
            $data['usermeta'][$key] = escape($user[$key]);
        }
    }
    if (isset($_POST['submit']) && csrf_filter()) {
        if (isset($_POST['username'])) {
            $data['username'] = $_POST['username'];
        }
        if (isset($_POST['email'])) {
            $data['email'] = $_POST['email'];
        }
        foreach (UserFields::all('signup') as $key => $field) {
            if (isset($_POST[$key])) {
                $data['usermeta'][$key] = escape($_POST[$key]);
            }
        }
    }
    if (OAuth::signup($provider, $data)) {
        OAuth::login($provider, $user['id']);
    }
} else {
    OAuth::login($provider, $user['id']);
}
if (OAuth::passes()) {
    $url = Config::get('auth.login_redirect');
    $url = empty($url) ? App::url() : $url;
    redirect_to($url);
예제 #2
0
function ajax_settings_profile()
{
    if (Auth::guest()) {
        exit;
    }
    $avatarType = isset($_POST['avatar_type']) ? $_POST['avatar_type'] : '';
    $displayName = isset($_POST['display_name']) ? escape($_POST['display_name']) : '';
    $types = implode(',', array_keys(Config::get('auth.providers', array())));
    $data = array('avatar_type' => $avatarType);
    $rules = array('avatar_type' => "in:image,gravatar,{$types}");
    foreach (UserFields::all('user') as $key => $field) {
        if (!empty($field['validation'])) {
            $data[$key] = isset($_POST[$key]) ? $_POST[$key] : '';
            $rules[$key] = $field['validation'];
        }
    }
    $validator = Validator::make($data, $rules);
    if ($validator->passes()) {
        $user = User::find(Auth::user()->id);
        if (!empty($displayName)) {
            $user->display_name = $displayName;
        }
        if ($user->save()) {
            $fields = array_merge(UserFields::all('user'), array('avatar_type' => ''));
            foreach ($fields as $key => $field) {
                $value = isset($_POST[$key]) ? escape($_POST[$key]) : '';
                $prev = isset($user->usermeta[$key]) ? $user->usermeta[$key] : '';
                Usermeta::update($user->id, $key, $value, $prev);
            }
            json_message();
        } else {
            json_message(with(new MessageBag(array('error' => trans('errors.dbsave'))))->toArray(), false);
        }
    } else {
        json_message($validator->errors()->toArray(), false);
    }
}