2018-10-27 22:01:01 +00:00
{% extends 'user/master.twig' %}
{% from 'macros.twig' import container_title , pagination %}
2018-10-28 13:45:25 +00:00
{% from 'user/macros.twig' import user_session %}
2018-10-27 22:01:01 +00:00
{% from '_layout/input.twig' import input_hidden , input_csrf , input_text %}
{% set title = 'Settings' %}
{% block content %}
2018-10-29 17:55:10 +00:00
{% if settings_errors is defined and settings_errors | length > 0 %}
<div class="warning">
<div class="warning__content">
{% for error in settings_errors %}
{{ error }}
{% endfor %}
2018-10-27 22:01:01 +00:00
</div>
2018-10-29 17:55:10 +00:00
</div>
{% else %}
<div class="warning">
<div class="warning__content">
A few of the elements on this page have been moved to the on-profile editor. To find them, go to your profile and hit the "Edit Profile" button below your avatar.
2018-10-27 22:01:01 +00:00
</div>
2018-10-29 17:55:10 +00:00
</div>
{% endif %}
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
<form action="" method="post" class="container settings__container" id="account">
{{ container_title ( '<i class="fas fa-user fa-fw"></i> Account' , '' , true ) }}
{{ input_csrf ( 'settings' ) }}
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__description">
<p>Here you can change your e-mail address and/or your password, please make sure your e-mail is accurate and your password is strong in order to protect your account. For convenience your current e-mail address is displayed. You are required to verify yourself by entering your current password to change either value.</p>
</div>
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
{% if settings_disable_account_options %}
<div class="settings__disabled">
<div class="settings__disabled__notice">
E-mail and password changing is only available on the main site for stability reasons.
2018-10-28 02:02:00 +00:00
</div>
2018-10-29 17:55:10 +00:00
<div class="settings__disabled__options">
<a class="input__button" href="https://flashii.net/settings.php">
<i class="fas fa-external-link-square-alt fa-fw"></i> Change E-mail or Password on Flashii
</a>
</div>
</div>
{% else %}
<div class="settings__account">
<div class="settings__account__section">
<label class="settings__account__input">
<div class="settings__account__title">
New e-mail address
</div>
{{ input_text ( 'email[new]' , 'settings__account__input' , '' , 'email' , account_info .email ) }}
</label>
2018-10-28 02:02:00 +00:00
2018-10-29 17:55:10 +00:00
<label class="settings__account__input">
<div class="settings__account__title">
Confirm new e-mail address
</div>
{{ input_text ( 'email[new]' , 'settings__account__input' , '' , 'email' ) }}
</label>
</div>
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__account__section">
<label class="settings__account__input">
<div class="settings__account__title">
New password
</div>
{{ input_text ( 'password[new]' , 'settings__account__input' , '' , 'password' ) }}
</label>
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
<label class="settings__account__input">
<div class="settings__account__title">
Confirm new password
</div>
{{ input_text ( 'password[confirm]' , 'settings__account__input' , '' , 'password' ) }}
</label>
</div>
2018-10-28 02:02:00 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__account__section settings__account__section--confirm">
<label class="settings__account__input">
<div class="settings__account__title">
Current password
2018-10-27 22:01:01 +00:00
</div>
2018-10-29 17:55:10 +00:00
{{ input_text ( 'current_password' , 'settings__account__input' , '' , 'password' ) }}
</label>
<div class="settings__account__buttons">
<button class="input__button settings__account__button">Update</button>
<button class="input__button settings__account__button" type="reset">Reset</button>
2018-10-27 22:01:01 +00:00
</div>
</div>
2018-10-29 17:55:10 +00:00
</div>
{% endif %}
</form>
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
<div class="container settings__container" id="sessions">
{{ container_title ( '<i class="fas fa-key fa-fw"></i> Sessions' , '' , true ) }}
{% set spagination = pagination ( sessions_count , sessions_take , sessions_offset , '?m=sessions' ) %}
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__description">
<p>These are the active logins to your account, clicking the Kill button will force a logout on that session. Your current login is highlighted with a different colour so you don't accidentally force yourself to logout.</p>
</div>
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__sessions">
<form action="" method="post" class="settings__sessions__all">
{{ input_csrf ( 'settings' ) }}
{{ input_hidden ( 'session' , 'all' ) }}
2018-10-28 02:02:00 +00:00
2018-10-29 17:55:10 +00:00
<button class="input__button">
<i class="fas fa-bomb"></i> Kill ALL active sessions
</button>
</form>
2018-10-28 02:02:00 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__sessions__pagination">
2018-10-28 02:02:00 +00:00
{{ spagination }}
2018-10-29 17:55:10 +00:00
</div>
2018-10-28 02:02:00 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__sessions__list">
2018-10-28 02:02:00 +00:00
{% for session in user_sessions %}
2018-10-29 17:55:10 +00:00
{{ user_session ( session , session .session_id == active_session_id ) }}
2018-10-28 02:02:00 +00:00
{% endfor %}
2018-10-29 17:55:10 +00:00
</div>
2018-10-28 02:02:00 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__sessions__pagination">
2018-10-28 02:02:00 +00:00
{{ spagination }}
</div>
2018-10-27 22:01:01 +00:00
</div>
2018-10-29 17:55:10 +00:00
</div>
<div class="container settings__container" id="logins">
{{ container_title ( '<i class="fas fa-user-lock fa-fw"></i> Login History' , '' , true ) }}
{% set lhpagination = pagination (
login_attempts_count,
login_attempts_take,
login_attempts_offset,
'?m=logs'|url_construct( { 'ao': audit_log_offset}),
false,
'lo'
) %}
<div class="settings__description">
<p>These are all the login attempts to your account. If any attempt that you don't recognise is marked as successful your account may be compromised, ask a staff member for advice in this case.</p>
</div>
2018-10-28 02:02:00 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__login-history">
{{ lhpagination }}
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
{% for attempt in user_login_attempts %}
<div class="settings__login-history__entry" id="attempt- {{ attempt .attempt_id }} ">
<div class="settings__login-history__column settings__login-history__column--ip">
<div class="settings__login-history__column__name">
IP
</div>
<div class="settings__login-history__column__value">
{{ attempt .attempt_ip_decoded }}
{% if attempt .attempt_country != 'XX' %}
<div class="flag flag-- {{ attempt .attempt_country | lower }} settings__login-history__country" title=" {{ attempt .attempt_country | country_name }} "></div>
{% endif %}
</div>
</div>
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__login-history__column settings__login-history__column--success">
<div class="settings__login-history__column__name">
Was Successful?
</div>
<div class="settings__login-history__column__value settings__login-history__column__value-- {{ attempt .was_successful ? 'successful' : 'failed' }} ">
{{ attempt .was_successful ? 'Yes' : 'No' }}
2018-10-27 22:01:01 +00:00
</div>
2018-10-29 17:55:10 +00:00
</div>
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__login-history__column settings__login-history__column--created" title=" {{ attempt .created_at | date ( 'r' ) }} ">
<div class="settings__login-history__column__name">
Attempted
2018-10-27 22:01:01 +00:00
</div>
2018-10-29 17:55:10 +00:00
<time class="settings__login-history__column__value" datetime=" {{ attempt .created_at | date ( 'c' ) }} ">
{{ attempt .created_at | time_diff }}
</time>
</div>
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
{% if attempt .user_agent | length > 0 %}
<div class="settings__login-history__column settings__login-history__column--user_agent">
2018-10-27 22:01:01 +00:00
<div class="settings__login-history__column__name">
2018-10-29 17:55:10 +00:00
User Agent
2018-10-27 22:01:01 +00:00
</div>
2018-10-29 17:55:10 +00:00
<div class="settings__login-history__column__value">
{{ attempt .user_agent }}
2018-10-28 02:02:00 +00:00
</div>
2018-10-29 17:55:10 +00:00
</div>
{% endif %}
</div>
{% endfor %}
2018-10-28 02:02:00 +00:00
2018-10-29 17:55:10 +00:00
{{ lhpagination }}
</div>
</div>
<div class="container settings__container" id="log">
{{ container_title ( '<i class="fas fa-file-alt fa-fw"></i> Account Log' , '' , true ) }}
{% set alpagination = pagination (
audit_log_count,
audit_log_take,
audit_log_offset,
'?m=logs'|url_construct( { 'lo': login_attempts_offset}),
false,
'ao'
) %}
<div class="settings__description">
<p>This is a log of all "important" actions that have been done using your account for your review. If you notice anything strange, please alert the staff.</p>
2018-10-27 22:01:01 +00:00
</div>
2018-10-28 02:02:00 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__log">
{{ alpagination }}
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
{% for log in audit_logs %}
<div class="settings__log__entry" id="log- {{ log .log_id }} ">
<div class="settings__log__column settings__login-history__column--ip">
<div class="settings__log__column__name">
IP
2018-10-27 22:01:01 +00:00
</div>
2018-10-29 17:55:10 +00:00
<div class="settings__log__column__value">
{{ log .log_ip }}
{% if log .log_country | default ( 'XX' ) != 'XX' %}
<div class="flag flag-- {{ log .log_country | lower }} settings__log__country" title=" {{ log .log_country | country_name }} "></div>
{% endif %}
</div>
</div>
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__log__column settings__log__column--date" title=" {{ log .log_created | date ( 'r' ) }} ">
<div class="settings__log__column__name">
Date
2018-10-27 22:01:01 +00:00
</div>
2018-10-29 17:55:10 +00:00
<time class="settings__log__column__value" datetime=" {{ log .log_created | date ( 'c' ) }} ">
{{ log .log_created | time_diff }}
</time>
</div>
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
<div class="settings__log__column settings__log__column--action">
<div class="settings__log__column__name">
Action
</div>
<div class="settings__log__column__value">
{% if log .log_action in log_strings | keys %}
{{ log_strings [ log .log_action ] | vsprintf ( log .log_params | json_decode ) }}
{% else %}
{{ log .log_action }} ( {{ log .log_params }} )
{% endif %}
2018-10-27 22:01:01 +00:00
</div>
</div>
2018-10-29 17:55:10 +00:00
</div>
{% endfor %}
2018-10-27 22:01:01 +00:00
2018-10-29 17:55:10 +00:00
{{ alpagination }}
2018-10-27 22:01:01 +00:00
</div>
2018-10-29 17:55:10 +00:00
</div>
2018-10-27 22:01:01 +00:00
{% endblock %}