This commit is contained in:
LI JIAHAO
2017-06-20 18:03:10 +08:00
parent bc43c090b5
commit 98fdb6e7b2
+78 -246
View File
@@ -23,6 +23,57 @@ use App\Wechat;
class AuthController extends Controller
{
static private function log($user_id, $event, $request) {
$log = new AuthLog();
$log->user_id = $user_id;
$log->ip = $request->ip();
$log->event = $event;
$log->save();
}
private function wechatReg($user, $request) {
if($request->session()->has('wechat_open_id') && !$user->baned) {
$user->wechat_open_id = $request->session()->get('wechat_open_id');
$user->save();
$this->log($user->id, "WechatBind_Success", $request);
}
}
private function afterLogin($user, $request) {
if ($user->baned) {
$nowdate = time();
$banedstart = $user->banedstart;
$date = $nowdate - $banedstart;
if ($date > ($user->banedtime) * 86400 && $user->banedtime != -1) {
$user->baned = 0;
return Redirect::to('/');
}
$this->log($user->id, "AfterLogin_Banned", $request);
if ($user->banedtime == -1)
return Redirect::to('/login')->withInput()->withErrors('你已经被永久封禁!');
return Redirect::to('/login')->withInput()->withErrors('你已经被封禁!' . ceil($user->banedtime - ($date / 86400)) . '天后解禁!');
}
$this->log($user->id, "AfterLogin_Success", $request);
$request->session()->put('user_id', $user->id);
$request->session()->put('username', $user->username);
$request->session()->put('nickname', $user->nickname);
if ($user->privilege)
$request->session()->put('is_admin', $user->privilege);
if ($user->registerCompletion() != 0)
return Redirect::to('/register/' . $user->registerCompletion());
else
return Redirect::to('/');
}
public function showLogin()
{
return View::make('auth.login');
@@ -45,46 +96,8 @@ class AuthController extends Controller
return view('auth.wechatGuide')->with($data);
}
else {
if ($user->baned) {
$nowdate = time();
$banedstart = $user->banedstart;
$date = $nowdate-$banedstart;
if($date>($user->banedtime)*86400 && $user->banedtime!=-1)
{
$user->baned = 0;
return Redirect::to('/');
}
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "wechat_oauth_login_banned";
$log->save();
// log end
if($user->banedtime == -1)
return Redirect::to('/login')->withInput()->withErrors('你已经被永久封禁!');
return Redirect::to('/login')->withInput()->withErrors('你已经被封禁!'.ceil($user->banedtime-($date/86400)).'天后解禁!');
}
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "wechat_oauth_login_success";
$log->save();
// log end
$request->session()->put('user_id', $user->id);
$request->session()->put('username', $user->username);
$request->session()->put('nickname', $user->nickname);
if ($user->privilege)
$request->session()->put('is_admin', $user->privilege);
if ($user->registerCompletion() != 0)
return Redirect::to('/register/' . $user->registerCompletion());
else
return Redirect::to('/');
$this->log($user->id, "Wechat_Login", $request);
return $this->afterLogin($user, $request);
}
}
return Redirect::to("http://api.xms.rmbz.net/open/oauth?path=" . env("APP_URL") . "/wx");
@@ -108,25 +121,8 @@ class AuthController extends Controller
$user->realname = phpCAS::getAttribute('name');
$user->save();
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "cas_reg_success";
$log->save();
// log end
if($request->session()->has('wechat_open_id')) {
$user->wechat_open_id = $request->session()->get('wechat_open_id');
$user->save();
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "wechat_oauth_sso_bind_success";
$log->save();
// log end
}
$this->log($user->id, "Cas_Reg_Success", $request);
$this->wechatReg($user, $request);
$request->session()->put('user_id', $user->id);
@@ -134,58 +130,9 @@ class AuthController extends Controller
}
else
{
if ($user->baned) {
$nowdate = time();
$banedstart = $user->banedstart;
$date = $nowdate-$banedstart;
if($date>($user->banedtime)*86400 && $user->banedtime!=-1)
{
$user->baned = 0;
return Redirect::to('/');
}
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "cas_login_banned";
$log->save();
// log end
if($user->banedtime == -1)
return Redirect::to('/login')->withInput()->withErrors('你已经被永久封禁!');
return Redirect::to('/login')->withInput()->withErrors('你已经被封禁!'.ceil($user->banedtime-($date/86400)).'天后解禁!');
}
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "cas_login_success";
$log->save();
// log end
$request->session()->put('user_id', $user->id);
$request->session()->put('username', $user->username);
$request->session()->put('nickname', $user->nickname);
if ($user->privilege)
$request->session()->put('is_admin', $user->privilege);
if($request->session()->has('wechat_open_id')) {
$user->wechat_open_id = $request->session()->get('wechat_open_id');
$user->save();
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "wechat_oauth_sso_bind_success";
$log->save();
// log end
}
if ($user->registerCompletion() != 0)
return Redirect::to('/register/' . $user->registerCompletion());
else
return Redirect::to('/');
$this->log($user->id, "Cas_Login", $request);
$this->wechatReg($user, $request);
return $this->afterLogin($user, $request);
}
}
@@ -196,13 +143,7 @@ class AuthController extends Controller
if (filter_var($input['username'], FILTER_VALIDATE_EMAIL)) {
$user = User::where('email', $input['username'])->first();
if ($user != NULL && !$user->havecheckedemail) {
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "login_uncheckedmail";
$log->save();
// log end
$this->log($user->id, "login_uncheckedmail", $request);
return Redirect::back()->withInput()->withErrors('未验证您的邮箱,请查收您的电子邮箱或<a href="/user/' . $user->id . '/sendCheckLetter">重新发送一封</a>');
}
} else {
@@ -215,68 +156,12 @@ class AuthController extends Controller
$user->save();
}
if ($user->baned) {
$nowdate = time();
$banedstart = $user->banedstart;
$date = $nowdate-$banedstart;
if($date>($user->banedtime)*86400 && $user->banedtime!=-1)
{
$user->baned = 0;
return Redirect::to('/');
}
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "login_banned";
$log->save();
// log end
$this->log($user->id, "Normal_Login", $request);
$this->wechatReg($user, $request);
return $this->afterLogin($user, $request);
if($user->banedtime == -1)
return Redirect::back()->withInput()->withErrors('你已经被永久封禁!');
return Redirect::back()->withInput()->withErrors('你已经被封禁!'.ceil($user->banedtime-($date/86400)).'天后解禁!');
}
//Successfully logged in
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "login_success";
$log->save();
// log end
$request->session()->put('user_id', $user->id);
$request->session()->put('username', $user->username);
$request->session()->put('nickname', $user->nickname);
if ($user->privilege)
$request->session()->put('is_admin', $user->privilege);
if($request->session()->has('wechat_open_id')) {
$user->wechat_open_id = $request->session()->get('wechat_open_id');
$user->save();
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "wechat_oauth_bind_success";
$log->save();
// log end
}
if ($user->registerCompletion() != 0)
return Redirect::to('/register/' . $user->registerCompletion());
else
return Redirect::to('/');
} else {
// log start
$log = new AuthLog();
$log->username = $input['username'];
$log->ip = $request->ip();
$log->event = "login_authfail";
$log->save();
// log end
$this->log($user->id, "login_authfail", $request);
return Redirect::back()->withInput()->withErrors('用户名或者密码错误!<a href="/iforgotit">忘记密码?</a>');
}
}
@@ -304,25 +189,13 @@ class AuthController extends Controller
$user->baned = false;
$user->save();
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "reg_success";
$log->save();
// log end
$this->log($user->id, "reg_success", $request);
return $this->sendCheckLetter($request, $user->id);
}
public function logOut(Request $request)
{
// log start
$log = new AuthLog();
$log->user_id = $request->session()->get('user_id');
$log->ip = $request->ip();
$log->event = "logout";
$log->save();
// log end
$this->log($request->session()->get('user_id'), "logout", $request);
$request->session()->forget('user_id');
$request->session()->forget('username');
@@ -370,13 +243,7 @@ class AuthController extends Controller
$m->to($email, $user->username)->subject('验证你的邮箱');
});
// log start
$log = new AuthLog();
$log->user_id = $user_id;
$log->ip = $request->ip();
$log->event = "sendcheckletter";
$log->save();
// log end
self::log($user->id, "sendcheckletter", $request);
}
static private function doSendUnbindLetter(Request $request, $user_id)
@@ -412,13 +279,7 @@ class AuthController extends Controller
$m->to($email, $user->username)->subject('邮箱解绑请求');
});
// log start
$log = new AuthLog();
$log->user_id = $user_id;
$log->ip = $request->ip();
$log->event = "sendunbindletter";
$log->save();
// log end
self::log($user->id, "sendunbindletter", $request);
}
public function setUsername(SetUsernameRequest $request)
@@ -500,13 +361,8 @@ class AuthController extends Controller
$user->update();
$check_email->delete();
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "checkemail";
$log->save();
// log end
$this->log($user->id, "checkemail", $request);
return Redirect::to('/login')->withErrors('已验证您的邮箱!现在你可以用这个邮箱登录啦!');
}
@@ -523,13 +379,8 @@ class AuthController extends Controller
$user->update();
$check_email->delete();
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "unbindemail";
$log->save();
// log end
$this->log($user->id, "unbindemail", $request);
return Redirect::to('/user?tab=account')->withErrors('已解绑您的邮箱!');
}
@@ -574,13 +425,9 @@ class AuthController extends Controller
$m->from(env('MAIL_USERNAME'), '先锋市场');
$m->to($email, $user->username)->subject('重置密码');
});
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "sendpwdresetletter";
$log->save();
// log end
$this->log($user->id, "sendpwdresetletter", $request);
}
return View::make('auth.passwordForget')->with($data);
}
@@ -604,23 +451,13 @@ class AuthController extends Controller
$data['sentence'] = '无效的链接';
$data['alert'] = 'danger';
$data['fa'] = 'exclamation-circle';
// log start
$log = new AuthLog();
$log->ip = $request->ip();
$log->event = "resetpwd_invalid";
$log->save();
// log end
$this->log("", "resetpwd_invalid", $request);
return View::make('user.resetPassword')->with($data);
} else if (time() - $token[1] > 48 * 60 * 60) {
$data['sentence'] = '此链接已过期';
$data['alert'] = 'danger';
$data['fa'] = 'exclamation-circle';
// log start
$log = new AuthLog();
$log->ip = $request->ip();
$log->event = "resetpwd_expired";
$log->save();
// log end
$this->log("", "resetpwd_expired", $request);
return View::make('user.resetPassword')->with($data);
}
$input = $request->all();
@@ -632,13 +469,8 @@ class AuthController extends Controller
$data['alert'] = 'success';
$data['fa'] = 'check';
// log start
$log = new AuthLog();
$log->user_id = $user->id;
$log->ip = $request->ip();
$log->event = "resetpwd_success";
$log->save();
// log end
$this->log($user->id, "resetpwd_success", $request);
return View::make('auth.resetPassword')->with($data);
}
}