public function refresh() { if (!\Session::get('user')->is_admin()) { abort(401); } $group_id = config('gapper.group_id'); $members = Client::getMembers($group_id); if (count($members)) { $deleted_users = User::all()->lists('gapper_id', 'id')->toArray(); foreach ($members as $member) { $id = $member['id']; $user = User::where('gapper_id', $id)->first(); if (!$user) { $user = new \App\User(); $user->gapper_id = $member['id']; $user->name = $member['name']; $user->icon = $member['icon']; } else { $user->name = $member['name']; $user->icon = $member['icon']; //从 deleted_users 中删除当前 gapper_id 对应的用户 //最后剩下的, 就是 User 中不包含 gapper_id 的用户 if (array_key_exists($member['id'], $deleted_users)) { unset($deleted_users[$id]); } } $user->save(); } //发现有需要删除的 User if (count($deleted_users)) { $to_deleted_users = User::whereIn('id', array_values($deleted_users))->delete(); } } return redirect()->to('users')->with('message_content', '同步成功!')->with('message_type', 'info'); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle($request, Closure $next) { if (!\App\Gini\Gapper\Client::getUserName() && !in_array($request->url(), [route('root'), route('login')])) { return redirect()->to(route('root')); } return $next($request); }
public function index() { \App\Gini\Gapper\Client::init(); if (\App\Gini\Gapper\Client::getUserName()) { return view('dashboard', ['products_count' => Product::count(), 'servers_count' => Server::count(), 'clients_count' => Client::where('parent_id', 0)->count(), 'projects_count' => Project::count()]); } return view('login'); }
public static function initUser() { $userInfo = \App\Gini\Gapper\Client::getUserInfo(); $user = \App\User::where('gapper_id', $userInfo['id'])->first(); if (!$user) { $user = new \App\User(); $user->gapper_id = $userInfo['id']; $user->name = $userInfo['name']; $user->icon = $userInfo['icon']; $user->save(); } //设定当前用户 \Session::set('user', $user); \Log::info(strtr('用户登录: %name[%id]', ['%name' => $user->name, '%id' => $user->id])); }
public function logout() { \App\Gini\Gapper\Client::logout(); return redirect()->to(route('root')); }