manager: set login_hint=backoffice on login (#64949)
This commit is contained in:
parent
0aecc5c620
commit
7de36f8910
|
@ -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(
|
||||
|
|
|
@ -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'))
|
||||
|
||||
|
|
Loading…
Reference in New Issue