public function postUlogin() { $_user = json_decode(file_get_contents('http://ulogin.ru/token.php?token=' . Input::get('token') . '&host=' . $_SERVER['HTTP_HOST']), true); $validate = Validator::make([], []); if (isset($_user['error'])) { return Redirect::to('/#popup=enter'); } if ($check = Ulogin::where('identity', '=', $_user['identity'])->first()) { if ($user = User::where('id', $check->user_id)->first()) { Auth::loginUsingId($user->id, true); return Redirect::to(AuthAccount::getGroupStartUrl()); } else { return Redirect::back(); } } elseif (isset($_user['email']) && User::where('email', $_user['email'])->exists()) { $userID = User::where('email', $_user['email'])->pluck('id'); self::createULogin($userID, $_user); Auth::loginUsingId($userID, TRUE); return Redirect::to(AuthAccount::getGroupStartUrl()); } else { $rules = array('network' => 'required|max:255', 'identity' => 'required|max:255|unique:ulogin', 'email' => 'required|unique:ulogin|unique:users'); $validate = Validator::make($_user, $rules); if ($validate->passes()) { return Redirect::to('/#popup=reg')->with('token', Input::get('token'))->with('email', @$_user['email'])->with('identity', @$_user['identity'])->with('profile', @$_user['profile'])->with('first_name', @$_user['first_name'])->with('last_name', @$_user['last_name'])->with('city', @$_user['city'])->with('uid', @$_user['uid'])->with('photo_big', @$_user['photo_big'])->with('photo', @$_user['photo'])->with('network', @$_user['network'])->with('verified_email', @$_user['verified_email']); } else { return Redirect::to('/#popup=enter'); } } }
public static function getSidebarModules() { $start_page = AuthAccount::getStartPage(); $menu = array(); ## Modules info $mod_info = Config::get('mod_info'); $mod_menu = Config::get('mod_menu'); #Helper::dd($mod_info); #Helper::d($mod_menu); $dic_entities = array(); if (class_exists('AdminDicvalsController')) { $entity_dics = Dic::where('entity', '1')->orderBy(DB::raw('-`order`'), 'DESC')->get(); #Helper::tad($entity_dics); if (count($entity_dics)) { $controller = new AdminDicvalsController(); foreach ($entity_dics as $entity_dic) { if (!$controller->is_available($entity_dic)) { continue; } $dic_entities[$entity_dic->slug] = array(array('title' => $entity_dic->name, 'link' => Helper::clearModuleLink(URL::route('entity.index', $entity_dic->slug)), 'class' => $entity_dic->icon_class, 'module' => 'dictionaries', 'permit' => 'dicval_entity_view')); } ##$dic_entities += $mod_menu; ##$mod_menu = $dic_entities; #Helper::d($dic_entities); #Helper::dd($mod_menu); } } ## If exists menu elements... if (isset($mod_menu) && is_array($mod_menu) && count($mod_menu)) { #foreach( $mod_menu as $mod_name => $menu_elements ) { foreach ((array) @$dic_entities + Allow::modules() as $mod_name => $module) { #Helper::d($mod_name); ## Hardcode... $menu_elements = @is_object($module) && @is_array($mod_menu[$mod_name]) ? $mod_menu[$mod_name] : $module; if (is_array($menu_elements) && count($menu_elements)) { #Helper::d($mod_name); #continue; #Helper::d($menu_elements); #continue; foreach ($menu_elements as $m => $menu_element) { #Helper::d($menu_element); #continue; ## If permit to view menu element $rules = @$menu_element['permit']; $module = @$menu_element['module'] ?: $mod_name; $permit = $rules ? Allow::action($module, $rules, true, false) : true; #Helper::d($module . " :: " . $permit . " :: " . $rules); #Helper::d( $menu_element['title'] . " - " . (int)$permit ); if ($permit) { $menu[] = $menu_element; } } } } } #Helper::dd($menu); return $menu; }
public function dashboard() { if (!Auth::check()) { return self::redirectToLogin(); } $parts = array(); $parts[] = 'templates'; $parts[] = AuthAccount::getStartPage(); $parts[] = 'dashboard'; return View::make(implode('.', $parts)); }
public static function auth2($link = NULL) { if (!is_null($link) && $link != "/" && mb_substr($link, 0, 1) != '/') { $link = '/' . $link; } #$_locale = Session::get('locale'); #Helper::dd( AuthAccount::getStartPage() ); if (Auth::check()) { #return self::createLink(AuthAccount::getStartPage().$link); return '/' . AuthAccount::getStartPage() . $link; } else { return url($link); } }
public function validPhone() { $json_request = array('status' => FALSE, 'responseText' => '', 'redirectURL' => FALSE); if (Request::ajax()) { $validator = Validator::make(Input::all(), array('code' => 'required')); if ($validator->passes()) { if (Auth::check()) { $post['code'] = Input::get('code'); $post['customerId'] = Auth::user()->remote_id; $post['sessionKey'] = Auth::user()->sessionKey; $api = (new ApiController())->activatePhone($post); if ($api === -1) { Auth::logout(); $json_request['status'] = TRUE; $json_request['redirectURL'] = pageurl('auth'); return Response::json($json_request, 200); } elseif ($api === FALSE) { $json_request['status'] = FALSE; } else { $json_request['status'] = TRUE; $json_request['responseText'] = Config::get('api.message'); $json_request['redirectURL'] = URL::to(AuthAccount::getGroupStartUrl()); } $json_request['responseText'] = Config::get('api.message'); } } else { $json_request['responseText'] = 'Неверно заполнены поля'; $json_request['responseErrorText'] = $validator->messages()->all(); } } else { return App::abort(404); } return Response::json($json_request, 200); }
public static function clearModuleLink($path) { $return = $path; $start = AuthAccount::getStartPage(); if (!$start) { return $return; } $auth_acc_pos = @mb_strpos($return, $start, 7); if ($auth_acc_pos) { $return = preg_replace("~.+?" . $start . "/?~is", '', $path); } #Helper::dd(AuthAccount::getStartPage() . ' = ' . $auth_acc_pos . ' = ' . $return); return $return; }
} /* |-------------------------------------------------------------------------- | Guest Filter |-------------------------------------------------------------------------- */ Route::filter('guest', function () { if (Auth::check()) { return Redirect::to('/'); } }); Route::filter('auth2login', function () { if (Auth::check()) { #Helper::dd(Request::path() . ' != ' . AuthAccount::getStartPage()); if (Request::path() != AuthAccount::getStartPage()) { return Redirect::to(AuthAccount::getStartPage()); } } else { return Redirect::route('login'); } }); /* |-------------------------------------------------------------------------- | CSRF Protection Filter |-------------------------------------------------------------------------- */ Route::filter('csrf', function () { if (Session::token() != Input::get('_token')) { throw new Illuminate\Session\TokenMismatchException(); } });
public function postUlogin() { $url_request = 'http://ulogin.ru/token.php?token=' . Input::get('token') . '&host=' . $_SERVER['HTTP_HOST']; $result = (new ApiController())->getCurl($url_request, FALSE); $_user = json_decode($result['curl_result'], true); $validate = Validator::make([], []); if (isset($_user['error'])) { return Redirect::to(URL::route('page', 'registering')); } $post['provider'] = $_user['network']; $post['identity'] = $_user['uid']; $api_social = (new ApiController())->social_logon($post); try { if (is_array($api_social)) { if (Ulogin::where('identity', '=', $_user['identity'])->exists() === FALSE) { $post = array(); $post['customerId'] = @$api_social['id']; $post['sessionKey'] = @$api_social['sessionKey']; $api = (new ApiController())->get_register($post); if (isset($api['email'])) { $password = Str::random(8); $post['remote_id'] = $post['customerId']; $post['email'] = $api['email']; $post['name'] = @$api['name']; $post['surname'] = @$api['surname']; $post['sex'] = @$api['sex'] == 'female' ? 0 : 1; $post['dd'] = @$api['dd']; $post['mm'] = @$api['mm']; $post['yyyy'] = @$api['yyyy']; $post['phone'] = @$api['phone']; $post['city'] = @$api['city']; $post['password'] = Hash::make($password); $post['code'] = Input::get('promo-code'); $user = (new RegisterController())->getRegisterAccount($post); (new RegisterController())->createULogin($user->id, $post); } } } else { /* if (Config::has('api.message')): Session::flash('message', Config::get('api.message')); else: Session::flash('message', 'Возникла ошибка при авторизации через социальную сеть.'); endif; return Redirect::to(pageurl('auth') . '#message'); */ } } catch (Exception $e) { Session::flash('message', 'Возникла ошибка при авторизации через социальную сеть.'); return Redirect::to(pageurl('auth') . '#message'); } if ($check = Ulogin::where('identity', '=', $_user['identity'])->first()) { Auth::loginUsingId($check->user_id, FALSE); if (is_array($api_social)) { Auth::user()->active = 1; Auth::user()->remote_id = @$api_social['id']; Auth::user()->sessionKey = @$api_social['sessionKey']; Auth::user()->save(); } if (isset($_COOKIE['firstCodeCookie']) && !empty($_COOKIE['firstCodeCookie'])) { $result = PromoController::registerPromoCode($_COOKIE['firstCodeCookie']); Session::flash('message', Config::get('api.message')); setcookie("firstCodeCookie", "", time() - 3600, '/'); return Redirect::to(AuthAccount::getGroupStartUrl() . '#message'); } return Redirect::to(AuthAccount::getGroupStartUrl()); } elseif (isset($_user['email']) && User::where('email', @$_user['email'])->exists()) { return Redirect::to(URL::route('page', 'registering'))->with('token', Input::get('token'))->with('email', @$_user['email'])->with('identity', @$_user['identity'])->with('profile', @$_user['profile'])->with('first_name', @$_user['first_name'])->with('last_name', @$_user['last_name'])->with('sex', @$_user['sex'] - 1)->with('bdate', @$_user['bdate'])->with('uid', @$_user['uid'])->with('photo_big', @$_user['photo_big'])->with('photo', @$_user['photo'])->with('network', @$_user['network'])->with('verified_email', @$_user['verified_email']); } else { $rules = array('network' => 'required|max:255', 'identity' => 'required|max:255|unique:ulogin', 'email' => 'required|unique:ulogin|unique:users'); $validate = Validator::make($_user, $rules); if ($validate->passes()) { return Redirect::to(URL::route('page', 'registering'))->with('token', Input::get('token'))->with('email', @$_user['email'])->with('identity', @$_user['identity'])->with('profile', @$_user['profile'])->with('first_name', @$_user['first_name'])->with('last_name', @$_user['last_name'])->with('sex', @$_user['sex'] - 1)->with('bdate', @$_user['bdate'])->with('uid', @$_user['uid'])->with('photo_big', @$_user['photo_big'])->with('photo', @$_user['photo'])->with('network', @$_user['network'])->with('verified_email', @$_user['verified_email']); } else { return Redirect::to(URL::route('page', 'registering')); } } }
<?php $prefix = Auth::check() ? AuthAccount::getStartPage() : 'participant'; /** * Роуты для загрузки изображений в визуальном редакторе */ Route::get('redactor/get-uploaded-images', 'RedactorUploadsController@redactorUploadedImages'); Route::post('redactor/upload', 'RedactorUploadsController@redactorUploadImage'); ################################################################# ## Все, что ниже - можно вынести в модуль system - Пользователи. ## Но, возможно, придется следить за порядком загрузки модулей... ################################################################# ## В случае, если неавторизованный пользователь зайдет на /admin, то он будет переадресован на /login. Route::get('admin', array('before' => 'auth2login', 'uses' => 'BaseController@redirectToLogin')); /* | Роуты, доступные для всех авторизованных пользователей - dashboard */ Route::group(array('before' => 'auth', 'prefix' => $prefix), function () { Route::get('/', array('as' => 'dashboard', 'uses' => 'BaseController@dashboard')); }); /* | Роуты, доступные только для неавторизованных пользователей */ Route::group(array('before' => 'guest', 'prefix' => ''), function () { Route::post('signin', array('as' => 'signin', 'uses' => 'GlobalController@signin')); Route::post('signup', array('as' => 'signup', 'uses' => 'GlobalController@signup')); Route::get('activation', array('as' => 'activation', 'uses' => 'GlobalController@activation')); }); /* | Роуты, доступные для гостей и авторизованных пользователей */
public function activation() { if ($account = User::where('id', Input::get('u'))->where('temporary_code', Input::get('c'))->where('code_life', '>=', time())->first()) { $account->active = 1; $account->temporary_code = ''; $account->code_life = 0; $account->save(); $account->touch(); Auth::login($account); if (Auth::check()) { return Redirect::to(AuthAccount::getStartPage()); } } else { return App::abort(404); } }
<?php $prefix = Auth::check() ? AuthAccount::getStartPage() : 'guest'; /** * Роуты для загрузки изображений в визуальном редакторе */ Route::get('redactor/get-uploaded-images', 'RedactorUploadsController@redactorUploadedImages'); Route::post('redactor/upload', 'RedactorUploadsController@redactorUploadImage'); ################################################################# ## Все, что ниже - можно вынести в модуль system - Пользователи. ## Но, возможно, придется следить за порядком загрузки модулей... ################################################################# ## В случае, если неавторизованный пользователь зайдет на /admin, то он будет переадресован на /login. Route::get('admin', array('before' => 'auth2login', 'uses' => 'BaseController@redirectToLogin')); /* | Роуты, доступные для всех авторизованных пользователей - dashboard */ Route::group(array('before' => 'auth', 'prefix' => $prefix), function () { Route::get('/', 'BaseController@dashboard'); }); /* | Роуты, доступные только для неавторизованных пользователей */ Route::group(array('before' => 'guest', 'prefix' => ''), function () { Route::post('signin', array('as' => 'signin', 'uses' => 'GlobalController@signin')); Route::post('signup', array('as' => 'signup', 'uses' => 'GlobalController@signup')); Route::get('activation', array('as' => 'activation', 'uses' => 'GlobalController@activation')); }); /* | Роуты, доступные для гостей и авторизованных пользователей */
public function activation($temporary_key = '') { if ($account = User::where('active', 0)->where('temporary_code', $temporary_key)->where('code_life', '>=', time())->first()) { $account->code_life = 0; $account->temporary_code = ''; $account->active = 1; $account->save(); $account->touch(); Auth::login($account, TRUE); return Redirect::to(AuthAccount::getGroupStartUrl()); } else { return Redirect::to('/')->with('message.status', 'error')->with('message.text', 'Код активации не действителен.'); } }
public function secondRegisterCertificates() { $json_request = array('status' => FALSE, 'responseText' => '', 'redirectURL' => FALSE); $validator = Validator::make(Input::all(), array('certificate' => 'required', 'ticket_id' => 'required')); if ($validator->passes()) { $certificates = Config::get('directcrm.certificates'); if (!isset($certificates[Input::get('certificate')])) { $json_request['status'] = FALSE; $json_request['responseText'] = 'Выбранный курс недоступен'; return Response::json($json_request, 200); } $post['wonLotteryTicketId'] = Input::get('ticket_id'); $post['prizesystemname'] = Input::get('certificate'); $post['customerId'] = Auth::user()->remote_id; $post['sessionKey'] = Auth::user()->sessionKey; $api_result = (new ApiController())->register_certificate($post); if ($api_result === -1) { Auth::logout(); $json_request['redirectURL'] = pageurl('auth'); return Response::json($json_request, 200); } elseif ($api_result === FALSE) { $json_request['status'] = FALSE; } else { $json_request['status'] = TRUE; $json_request['responseText'] = Config::get('api.message'); $json_request['redirectURL'] = URL::to(AuthAccount::getGroupStartUrl()); } $json_request['responseText'] = Config::get('api.message'); } else { $json_request['responseText'] = $validator->messages()->all(); } if (Request::ajax()) { return Response::json($json_request, 200); } else { return Redirect::route('mainpage'); } }