Office 1.6 - переключение аккаунтов

Представляю вам новую версию Office, в которой реализована очень интересная штука — возможность авторизовываться в несколько аккаунтов и переключаться между ними.

То есть, когда вы уже авторизованы в одном аккаунте, и знаете логин\пароль другого аккаунта — вы можете его добавить, чтобы быстро между ними переключаться. Да-да, как на Яндекс или Google.

Выглядит это примерно вот так:


Логика работы


При такой дополнительной авторизации вы входите в аккаунт нового юзера, но старые аккаунты остаются в сессии $_SESSION['Office']['LoggedIn'], после чего вы можете переключаться между ними ссылкой вида
?action=auth/change&user_id=4

Вы можете отключить такой аккаунт ссылкой
?action=auth/logout&user_id=4

Ну а сама авторизация работает как обычная форма авторизации, за исключением:
— действие там auth/formAdd, вместо auth/formLogin
— и при незаполненном пароле будет ошибка, вместо отправки письма для сброса.

Если вы выходите из текущего аккаунта, но у вас есть и другие авторизации, то вы будете переключены на одну из них.

Самое интересное, что теперь и при авторизации под другим юзером из админки, он также попадает в этот массив дополнительных юзеров, и админ не теряет свою авторизацию.

А если такой аккаунт сменит свой пароль — то переключиться на него вы уже не сможете, потребуется повторная авторизация. Это защита на тот случай, когда, например, один пользователь даёт свой сайты под управление другому, а потом вдруг передумывает.

Применение на modhost.pro


Как вы уже, наверное, догадались — изначально этот функционал был разработан для modhost.pro и там его можно пощупать прямо сейчас.
Здесь, как видите, другое оформление, но логика та же. Отличием является еще отправка уведомлений на почту тем пользователям, в чьи аккаунты произошла авторизация — чтобы в курсе были.

Теперь одни пользователи нашего хостинга могут брать под управление сайты других пользователей. Веб-студиям, полагаю, это новшество должно понравиться.

Заключение


Новая версия доступна для обновления и покупки в магазине, цена пока еще остаётся прежней.

Обратите внимание, что для включения функционала вам нужно обновить чанк tpl.Office.auth.logout. Все чанки теперь используют Fenom по умолчанию, и получить массив с авторизованными пользователями можно в массиве $authorized. По умолчанию это выглядит так:
<div class="authorized">
    {foreach $authorized as $id => $user}
        <div class="user row">
            <div class="col-xs-2">
                <img src="{if $user.photo?}{$user.photo}{else}{$user.gravatar}?s=50{/if}"
                     alt="{$user.fullname}" title="{$user.fullname}" class="office-avatar" width="50"/>
            </div>
            <div class="col-xs-8">
                <a href="{$_modx->resource.id | url : [] : ['action' => 'auth/change', 'user_id' => $id]}">
                    <b>{$user.fullname}</b> ({$user.username})
                </a>
            </div>
            <div class="col-xs-2 logout">
                <a href="{$_modx->resource.id | url : [] : ['action' => 'auth/logout', 'user_id' => $id]}">→</a>
            </div>
        </div>
    {/foreach}
</div>

Всем удачных обновлений и внедрений нового функционала!
Василий Наумкин
22 июля 2017, 11:38
modx.pro
2 457
+22

Комментарии: 8

Andrei D.
22 июля 2017, 14:57
+3
эпично) большое спасибо!
    Воеводский Михаил
    22 июля 2017, 16:01
    +4
    Гениально!
      Павел
      22 июля 2017, 18:20
      +5
      Спасибо, обещал и сделал))
        but1head
        23 июля 2017, 00:57
        +4
        Ура! Как я давно ждал этого на modhost, спасибо!)
          Николай Загумённов
          23 июля 2017, 13:50
          +4
          Очень круто!
            Николай Савин
            23 июля 2017, 15:40
            +4
            Ну наконец то. Очень ждал на modhost. Пойду куплю офис, поддержу рублем
              Николаевич
              01 августа 2017, 20:53
              0
              Подскажите, есть ли ограничение на количество подключаемых аккаунтов? К примеру, может ли пользователь подключить таким образом 100 аккаунтов?
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              8