show user avatar in /vcard

pull/2/head
radex 2023-10-14 14:35:32 +02:00
parent 7afee30c14
commit a38c451c66
2 changed files with 26 additions and 2 deletions

View File

@ -31,6 +31,7 @@ ldap_admin_password = os.getenv('LDAPWEB_ADMIN_PASSWORD', 'unused')
# LDAP attribute configuration
readable_names = {
'jpegphoto': 'Avatar',
'commonname': 'Common Name',
'givenname': 'Given Name',
'gecos': 'GECOS (public name)',
@ -53,12 +54,14 @@ full_name = {
}
can_add = set([
'jpegphoto',
'telephonenumber',
'mobiletelephonenumber',
'sshpublickey',
])
can_delete = can_add
can_modify = can_add | set([
'jpegphoto',
'givenname',
'surname',
'commonname',

View File

@ -39,15 +39,36 @@
</div>
{%- endmacro %}
{% macro avatarfield(name, width=4) -%}
<div class="col-md-{{width}}" style="margin-bottom: 20px;">
<div style="background-color: #eee; padding: 10px 30px; border-radius: 12px; display: flex; flex-direction: row; gap: 20px">
<div>
<img src="/avatar/{{ profile.uid[0] }}" style="width: 70px; height: 70px; margin: 10px 0" />
</div>
<div>
<h4>{{ name|readable }}</h4>
{% if profile[name] %}
{% with field = profile[name]|first %}
{% if name in can_delete %}
<a class="modalLink" href="/vcard/delete/{{ field.uid }}"><span class="glyphicon glyphicon-minus-sign" aria-hidden="true"></span> Remove</a>
{% endif %}
{% endwith %}
{% endif %}
</div>
</div>
</div>
{%- endmacro %}
{% extends 'basic.html' %}
{% block content %}
<div class="row">
{{ avatarfield('jpegphoto') }}
{{ field('givenname') }}
{{ field('gecos', width=8) }}
{{ field('surname') }}
{{ field('commonname', width=8) }}
{{ field('gecos', width=8) }}
{{ field('loginshell') }}
{{ field('commonname', width=8) }}
{{ multifield('telephonenumber') }}
{{ multifield('mobiletelephonenumber') }}
{{ multifield('mailroutingaddress', width=8) }}