1<?php
2
3// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0.
4// See the LICENCE file in the repository root for full licence text.
5
6namespace App\Http\Controllers;
7
8use App;
9use App\Http\Middleware\VerifyUserAlways;
10use App\Libraries\LocaleMeta;
11use App\Models\Log;
12use Auth;
13use Carbon\Carbon;
14use Illuminate\Foundation\Bus\DispatchesJobs;
15use Illuminate\Foundation\Validation\ValidatesRequests;
16use Illuminate\Routing\Controller as BaseController;
17use Request;
18
19abstract class Controller extends BaseController
20{
21 use DispatchesJobs, ValidatesRequests;
22
23 public function __construct()
24 {
25 }
26
27 protected function log($params)
28 {
29 $params['user_id'] = Auth::user()->user_id ?? 0;
30 $params['log_ip'] = Request::ip();
31 $params['log_time'] = Carbon::now();
32
33 Log::log($params);
34 }
35
36 protected function login($user, $remember = false)
37 {
38 cleanup_cookies();
39
40 $session = \Session::instance();
41 $session->flush();
42 $session->regenerateToken();
43 $session->put('requires_verification', VerifyUserAlways::isRequired($user));
44 Auth::login($user, $remember);
45 if ($GLOBALS['cfg']['osu']['user']['bypass_verification']) {
46 $session->markVerified();
47 }
48 $session->migrate(true);
49 }
50
51 protected function logout()
52 {
53 logout();
54 }
55
56 protected function locale()
57 {
58 return LocaleMeta::sanitizeCode(request('locale')) ?? App::getLocale();
59 }
60}