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);
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); } }