diff --git a/assets/less/classes/settings/login-attempt.less b/assets/less/classes/settings/login-attempt.less new file mode 100644 index 00000000..2810e51d --- /dev/null +++ b/assets/less/classes/settings/login-attempt.less @@ -0,0 +1,83 @@ +.settings__login-attempt { + border: 1px solid var(--accent-colour); + border-radius: 2px; + overflow: hidden; + margin: 4px; + + &--failed { + --accent-colour: #a00; + background-color: var(--accent-colour); + } + + &--failed &__container { + background-color: fade(#111, 80%); + } + + &__container { + width: 100%; + height: 100%; + overflow: hidden; + } + + &__important { + display: flex; + align-items: center; + font-size: 1.4em; + z-index: 2; + } + + &__flag { + flex: 0 0 auto; + margin: 10px; + margin-right: 0; + } + + &__description { + flex: 1 1 auto; + margin: 10px; + } + + &__actions { + flex: 0 0 auto; + display: flex; + } + + &__action { + border: 0; + background: transparent; + color: inherit; + font: inherit; + text-shadow: inherit; + padding: 10px; + cursor: pointer; + transition: color .2s; + + &:hover { + color: var(--accent-colour); + } + } + + &__details { + z-index: 1; + margin: 10px; + margin-top: -5px; + display: flex; + flex-wrap: wrap; + } + + &__detail { + display: inline-block; + margin-right: 2px; + min-width: 120px; + + &__title { + border-bottom: 1px solid var(--accent-colour); + font-weight: 700; + padding: 1px 5px; + } + + &__value { + padding: 1px 5px; + } + } +} diff --git a/assets/less/classes/settings/login-attempts.less b/assets/less/classes/settings/login-attempts.less new file mode 100644 index 00000000..c3c15d48 --- /dev/null +++ b/assets/less/classes/settings/login-attempts.less @@ -0,0 +1,6 @@ +.settings__login-attempts { + + &__pagination { + margin: 4px; + } +} diff --git a/assets/less/classes/settings/login-history.less b/assets/less/classes/settings/login-history.less deleted file mode 100644 index dea4e43e..00000000 --- a/assets/less/classes/settings/login-history.less +++ /dev/null @@ -1,63 +0,0 @@ -.settings__login-history { - margin: 1px; - - &__country { - vertical-align: middle; - } - - &__entry { - display: flex; - border: 1px solid var(--accent-colour); - justify-content: space-between; - padding: 1px; - flex-wrap: wrap; - - &:not(:last-child) { - margin-bottom: 1px; - } - } - - &__column { - flex-grow: 1; - margin-left: 5px; - margin-right: 1px; - - &--ip, - &--created, - &--success { - flex-shrink: 0; - - &:not(:last-child) { - flex-grow: 0; - } - } - - &--user-agent { - flex-shrink: 1; - flex-grow: 1; - } - - &--ip { - min-width: 200px; - } - - &--created, - &--success { - min-width: 120px; - } - - &__name { - font-weight: 700; - } - - &__value { - &--successful { - color: #0a0; - } - - &--failed { - color: #c00; - } - } - } -} diff --git a/assets/less/classes/settings/session.less b/assets/less/classes/settings/session.less index bb469e93..48f272af 100644 --- a/assets/less/classes/settings/session.less +++ b/assets/less/classes/settings/session.less @@ -1,15 +1,23 @@ .settings__session { - margin: 4px; border: 1px solid var(--accent-colour); border-radius: 2px; overflow: hidden; + margin: 4px; &--current { - // todo: make this not bad - background-image: linear-gradient(0deg, #111c, #111c); background-color: var(--accent-colour); } + &--current &__container { + background-color: fade(#111, 80%); + } + + &__container { + width: 100%; + height: 100%; + overflow: hidden; + } + &__important { display: flex; align-items: center; diff --git a/assets/less/main.less b/assets/less/main.less index 2be74ee5..f838d001 100644 --- a/assets/less/main.less +++ b/assets/less/main.less @@ -130,7 +130,8 @@ body { @import "classes/settings/pagination"; @import "classes/settings/account"; @import "classes/settings/log"; -@import "classes/settings/login-history"; +@import "classes/settings/login-attempt"; +@import "classes/settings/login-attempts"; @import "classes/settings/session"; @import "classes/settings/sessions"; @import "classes/settings/role"; diff --git a/templates/user/macros.twig b/templates/user/macros.twig index f7c697ac..230eb850 100644 --- a/templates/user/macros.twig +++ b/templates/user/macros.twig @@ -49,72 +49,128 @@ {% set browser = get_browser(session.session_user_agent) %}
-
-
+
+
+
-
- {{ browser.browser }} on {{ browser.platform }} +
+ {{ browser.browser }} on {{ browser.platform }} +
+ +
+ {{ input_csrf('settings') }} + {{ input_hidden('session[]', session.session_id) }} + + +
-
- {{ input_csrf('settings') }} - {{ input_hidden('session[]', session.session_id) }} - - -
-
- -
-
-
- IP Address -
-
- {{ session.session_ip }} -
-
- -
-
- Created -
- -
- -
-
- Expires -
- -
- - {% if session.session_active is not null %} -
+
+
- Last Active + IP Address
-
+ +
+
+ Created +
+
- {% endif %} -
-
- User Agent +
+
+ Expires +
+
-
- {{ session.session_user_agent|length > 0 ? session.session_user_agent : 'None' }} + + {% if session.session_active is not null %} +
+
+ Last Active +
+ +
+ {% endif %} + +
+
+ User Agent +
+
+ {{ session.session_user_agent|length > 0 ? session.session_user_agent : 'None' }} +
+
+
+
+
+{% endmacro %} + +{% macro user_login_attempt(attempt) %} + {% set browser = get_browser(attempt.attempt_user_agent) %} + + -