manager: set login_hint=backoffice on login (#64949)

This commit is contained in:
Benjamin Dauvergne 2022-05-06 16:29:16 +02:00
parent 0aecc5c620
commit 7de36f8910
2 changed files with 16 additions and 2 deletions

View File

@ -14,8 +14,9 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from functools import wraps
from django.conf.urls import url
from django.contrib.auth.decorators import login_required
from django.utils.functional import lazy
from django.views.i18n import JavaScriptCatalog
@ -26,7 +27,15 @@ from . import journal_views, ou_views, role_views, service_views, user_views, vi
def manager_login_required(func):
return login_required(func, login_url=lazy(utils_misc.get_manager_login_url, str)())
@wraps(func)
def _wrapped_view(request, *args, **kwargs):
if request.user.is_authenticated:
return func(request, *args, **kwargs)
return utils_misc.login_require(
request, login_url=lazy(utils_misc.get_manager_login_url, str)(), login_hint=['backoffice']
)
return _wrapped_view
urlpatterns = required(

View File

@ -44,6 +44,11 @@ pytestmark = pytest.mark.django_db
User = get_user_model()
def test_login_hint_backoffice(app):
app.get('/manage/')
assert app.session['login-hint'] == ['backoffice']
def test_manager_login(superuser_or_admin, app):
manager_home_page = login(app, superuser_or_admin, reverse('a2-manager-homepage'))