diff --git a/src/memberdb/views.py b/src/memberdb/views.py index 334daf71bb53d08422bed4c0ebb09e381370e8b8..268f3ae6700d8660f5203c3ea982762db634b1e0 100644 --- a/src/memberdb/views.py +++ b/src/memberdb/views.py @@ -39,6 +39,12 @@ class MemberMiddleware: request.member.token = None request.member.save() + if request.user.ldap_user is not None: + # copy the LDAP groups so templates can access them + request.member.groups = list(request.user.ldap_user.group_names) + else: + request.member.groups = [ "gumby" ] + # request.session is a dictionary-like object, its content is saved in the database # and only a session ID is stored as a browser cookie (by default, but is configurable) if 'member_id' in request.session: diff --git a/src/static/memberdb.css b/src/static/memberdb.css index 004be23a6dae2550e8c7fd41ee4fd8d666860070..a5059159e31511c445593d3d2687baa63919e287 100644 --- a/src/static/memberdb.css +++ b/src/static/memberdb.css @@ -105,7 +105,7 @@ nav { overflow: auto; /* make navbar expand in case the tab buttons flow to a second row */ } -.navtab { +.navtab, .userinfo { float: left; text-decoration: none; color: white; @@ -131,6 +131,47 @@ nav { border-right: 1.5px solid #555; } +.userinfo { + float: right; + border-right: 0; + margin-right: 0; + font-variant-caps: normal; + border: none; + background-color: none; + padding: 19px 20px; +} + +.userinfo.groups { + padding: 7px 20px; +} + +.userinfo .username { + display: block; + line-height: 22px; + font-size: 16px; + font-weight: 600; +} + +/* height of group tags comes to 22px */ +.userinfo .group { + display: inline-block; + border-radius: 11px; + font-size: 12px; + line-height: 14px; + padding: 5px 8px 3px 8px; + background-color: #f6b9d8; + color: #000; + margin: 0 4px; +} + +.userinfo .group.door { + background-color: #b9c6f6; +} + +.userinfo .group.wheel { + background-color: #b9f6c8; +} + .member-details, .membership-details { width: 100%; text-align: left; diff --git a/src/templates/base.html b/src/templates/base.html index 06849d276ae778da669496f2e8a8167ad4a7ae83..1710d6a2daf95b22e08de6dc1024c4853b882a7f 100644 --- a/src/templates/base.html +++ b/src/templates/base.html @@ -50,6 +50,17 @@ <a class="navtab {% if url_name == 'logout' %}active{% endif %}" href="{% url "memberdb:logout" %}">Logout</a> {% endif %} {% endwith %} + + {# add the groups class only if we have groups to display #} + <div class="userinfo{% if request.user.is_authenticated %}{% if request.member %} groups{% endif %}"> + <span class="username">Welcome, {{ request.user.username }}</span> + {% if request.member %} + {% for g in request.member.groups %}<span class="group {{ g }}">{{ g }}</span>{% endfor %} + {% endif %} + {% else %}"> + <span class="username">Not logged in</span> + {% endif %} + </div> </nav> {% endblock %}