Add error message on login that does not direct to new page.

Remove failed to create dir error on startup when crafty cannot create dir since it exists after first startup.

Error logging is still enabled for every error except FileExists for this case.
This commit is contained in:
Andrew 2021-11-23 13:22:15 -05:00
parent eb39577cc7
commit 0e942311fb
3 changed files with 17 additions and 7 deletions

View File

@ -15,6 +15,7 @@ import zipfile
import pathlib
import shutil
from requests import get
from contextlib import suppress
from datetime import datetime
from socket import gethostname
@ -373,9 +374,10 @@ class Helpers:
logger.critical("Unable to write to {} directory!".format(self.root_dir))
sys.exit(1)
# ensure the log directory is there
# ensure the log directory is there
try:
os.makedirs(os.path.join(self.root_dir, 'logs'))
with suppress(FileExistsError):
os.makedirs(os.path.join(self.root_dir, 'logs'))
except Exception as e:
console.error("Failed to make logs directory with error: {} ".format(e))

View File

@ -40,6 +40,7 @@ class PublicHandler(BaseHandler):
def get(self, page=None):
error = bleach.clean(self.get_argument('error', "Invalid Login!"))
error_msg = bleach.clean(self.get_argument('error_msg', ''))
page_data = {
'version': helper.get_version_string(),
@ -75,6 +76,7 @@ class PublicHandler(BaseHandler):
template,
data=page_data,
translate=self.translator.translate,
error_msg = error_msg
)
def post(self, page=None):
@ -89,18 +91,18 @@ class PublicHandler(BaseHandler):
# if we don't have a user
if not user_data:
next_page = "/public/error?error=Login Failed"
error_msg = "Inncorrect username or password. Please try again."
self.clear_cookie("user")
self.clear_cookie("user_data")
self.redirect(next_page)
self.redirect('/public/login?error_msg={}'.format(error_msg))
return
# if they are disabled
if not user_data.enabled:
next_page = "/public/error?error=Login Failed"
error_msg = "User account disabled. Please contact your system administrator for more info."
self.clear_cookie("user")
self.clear_cookie("user_data")
self.redirect(next_page)
self.redirect('/public/login?error_msg={}'.format(error_msg))
return
login_result = helper.verify_pass(entered_password, user_data.password)
@ -132,9 +134,10 @@ class PublicHandler(BaseHandler):
else:
self.clear_cookie("user")
self.clear_cookie("user_data")
error_msg = "Inncorrect username or password. Please try again."
# log this failed login attempt
self.controller.management.add_to_audit_log(user_data.user_id, "Tried to log in", 0, self.get_remote_ip())
self.redirect('/public/error?error=Login Failed')
self.redirect('/public/login?error_msg={}'.format(error_msg))
else:
self.redirect("/public/login")

View File

@ -71,6 +71,11 @@
<div class="form-group">
<button class="login-input btn btn-primary submit-btn btn-block">{{ translate('login', 'login', data['lang']) }}</button>
</div>
{% if error_msg is not None %}
<fieldset style="color: red; text-align: center;">
<span>{{error_msg}}</span>
</fieldset>
{% end %}
<div class="form-group d-flex justify-content-between">
<div class="form-check form-check-flat mt-0">
&nbsp;