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');
 }
Beispiel #4
0
 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'));
 }