Add checks for blacklisted users

This commit is contained in:
DariusIII
2018-08-24 10:35:19 +02:00
parent d102981994
commit a0718cb68a
5 changed files with 50 additions and 27 deletions
+2
View File
@@ -1,3 +1,5 @@
2018-08-24 DariusIII
* Chg: Add checks for blacklisted users
2018-08-22 DariusIII
* Chg: Update ReleaseExtra class, remove usage of substr() function
* Chg: Update phpuint/phpunit, league/flysystem and Movies class
@@ -149,7 +149,13 @@ class UserController extends BasePageController
User::updateUserRoleChangeDate($request->input('id'), $request->input('rolechangedate'));
}
if ($request->input('role') !== null) {
Role::query()->where('id', $request->input('role'))->value('name');
$roleName = Role::query()->where('id', $request->input('role'))->value('name');
if ($roleName === 'Disabled') {
$blockedUser = User::find($request->input('id'));
if (\Firewall::isBlacklisted($blockedUser->host) === false) {
\Firewall::blacklist($blockedUser->host);
}
}
$email = $request->input('email') ?? $request->input('email');
Mail::to($email)->send(new AccountChange($request->input('id')));
}
+38 -23
View File
@@ -52,33 +52,49 @@ class LoginController extends Controller
'password' => 'required',
]);
if (env('NOCAPTCHA_ENABLED') === true && (! empty(env('NOCAPTCHA_SECRET')) && ! empty(env('NOCAPTCHA_SITEKEY')))) {
$this->validate($request, [
'g-recaptcha-response' => 'required|captcha',
$user = User::getByUsername($request->input('username'));
if ($user !== null && \Firewall::isBlacklisted($user->host) === false) {
if (env('NOCAPTCHA_ENABLED') === true && (! empty(env('NOCAPTCHA_SECRET')) && ! empty(env('NOCAPTCHA_SITEKEY')))) {
$this->validate($request, [
'g-recaptcha-response' => 'required|captcha',
]);
}
$rememberMe = $request->has('rememberme') && $request->input('rememberme') === 'on';
$login_type = filter_var($request->input('username'), FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
$request->merge([
$login_type => $request->input('username'),
]);
if (Auth::attempt($request->only($login_type, 'password'), $rememberMe)) {
User::updateSiteAccessed(Auth::id(), (int) Settings::settingValue('..storeuserips') === 1 ? $request->getClientIp() : '');
return redirect()->intended($this->redirectPath());
}
}
$rememberMe = $request->has('rememberme') && $request->input('rememberme') === 'on';
$theme = Settings::settingValue('site.main.style');
$login_type = filter_var($request->input('username'), FILTER_VALIDATE_EMAIL)
? 'email'
: 'username';
$meta_title = 'Login';
$meta_keywords = 'Login';
$meta_description = 'Login';
$content = app('smarty.view')->fetch($theme.'/login.tpl');
$request->merge([
$login_type => $request->input('username'),
]);
app('smarty.view')->assign('error', 'These credentials do not match our records.');
if (Auth::attempt($request->only($login_type, 'password'), $rememberMe)) {
User::updateSiteAccessed(Auth::id(), (int) Settings::settingValue('..storeuserips') === 1 ? $request->getClientIp() : '');
return redirect()->intended($this->redirectPath());
}
return redirect()->back()
->withInput()
->withErrors([
'login' => 'These credentials do not match our records.',
]);
app('smarty.view')->assign(
[
'content' => $content,
'meta_title' => $meta_title,
'meta_keywords' => $meta_keywords,
'meta_description' => $meta_description,
]
);
app('smarty.view')->display($theme.'/basepage.tpl');
}
/**
@@ -95,7 +111,6 @@ class LoginController extends Controller
$content = app('smarty.view')->fetch($theme.'/login.tpl');
app('smarty.view')->assign(
[
'error' => 'These credentials do not match our records.',
'content' => $content,
'meta_title' => $meta_title,
'meta_keywords' => $meta_keywords,
@@ -105,7 +120,7 @@ class LoginController extends Controller
app('smarty.view')->display($theme.'/basepage.tpl');
}
public function logout(Request $request)
public function logout()
{
Auth::logout();
@@ -79,7 +79,7 @@ class RegisterController extends Controller
/**
* @param \Illuminate\Http\Request $request
*
* @throws \Exception
* @throws \Jrean\UserVerification\Exceptions\ModelNotCompliantException
*/
public function register(Request $request)
{
+2 -2
View File
@@ -788,12 +788,12 @@ class User extends Authenticatable
}
$res = self::getByUsername($userName);
if ($res) {
if ($res !== null) {
return self::ERR_SIGNUP_UNAMEINUSE;
}
$res = self::getByEmail($email);
if ($res) {
if ($res !== null) {
return self::ERR_SIGNUP_EMAILINUSE;
}