mirror of https://gitlab.crans.org/bde/nk20
Don't display too much detail when a user has no right to see a profile
This commit is contained in:
parent
6e80016b38
commit
fe4363b83d
|
@ -43,8 +43,24 @@ class UserTable(tables.Table):
|
||||||
|
|
||||||
section = tables.Column(accessor='profile__section')
|
section = tables.Column(accessor='profile__section')
|
||||||
|
|
||||||
|
# Override the column to let replace the URL
|
||||||
|
email = tables.EmailColumn(linkify=lambda record: "mailto:{}".format(record.email))
|
||||||
|
|
||||||
balance = tables.Column(accessor='note__balance', verbose_name=_("Balance"))
|
balance = tables.Column(accessor='note__balance', verbose_name=_("Balance"))
|
||||||
|
|
||||||
|
def render_email(self, record, value):
|
||||||
|
# Replace the email by a dash if the user can't see the profile detail
|
||||||
|
# Replace also the URL
|
||||||
|
if not PermissionBackend.check_perm(get_current_authenticated_user(), "member.view_profile", record.profile):
|
||||||
|
value = "—"
|
||||||
|
record.email = value
|
||||||
|
return value
|
||||||
|
|
||||||
|
def render_section(self, record, value):
|
||||||
|
return value \
|
||||||
|
if PermissionBackend.check_perm(get_current_authenticated_user(), "member.view_profile", record.profile) \
|
||||||
|
else "—"
|
||||||
|
|
||||||
def render_balance(self, record, value):
|
def render_balance(self, record, value):
|
||||||
return pretty_money(value)\
|
return pretty_money(value)\
|
||||||
if PermissionBackend.check_perm(get_current_authenticated_user(), "note.view_note", record.note) else "—"
|
if PermissionBackend.check_perm(get_current_authenticated_user(), "note.view_note", record.note) else "—"
|
||||||
|
|
|
@ -25,25 +25,27 @@
|
||||||
</a>
|
</a>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt class="col-xl-6">{% trans 'section'|capfirst %}</dt>
|
{% if "member.view_profile"|has_perm:user_object.profile %}
|
||||||
<dd class="col-xl-6">{{ user_object.profile.section }}</dd>
|
<dt class="col-xl-6">{% trans 'section'|capfirst %}</dt>
|
||||||
|
<dd class="col-xl-6">{{ user_object.profile.section }}</dd>
|
||||||
|
|
||||||
<dt class="col-xl-6">{% trans 'email'|capfirst %}</dt>
|
<dt class="col-xl-6">{% trans 'email'|capfirst %}</dt>
|
||||||
<dd class="col-xl-6"><a href="mailto:{{ user_object.email }}">{{ user_object.email }}</a></dd>
|
<dd class="col-xl-6"><a href="mailto:{{ user_object.email }}">{{ user_object.email }}</a></dd>
|
||||||
|
|
||||||
<dt class="col-xl-6">{% trans 'phone number'|capfirst %}</dt>
|
<dt class="col-xl-6">{% trans 'phone number'|capfirst %}</dt>
|
||||||
<dd class="col-xl-6"><a href="tel:{{ user_object.profile.phone_number }}">{{ user_object.profile.phone_number }}</a>
|
<dd class="col-xl-6"><a href="tel:{{ user_object.profile.phone_number }}">{{ user_object.profile.phone_number }}</a>
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt class="col-xl-6">{% trans 'address'|capfirst %}</dt>
|
<dt class="col-xl-6">{% trans 'address'|capfirst %}</dt>
|
||||||
<dd class="col-xl-6">{{ user_object.profile.address }}</dd>
|
<dd class="col-xl-6">{{ user_object.profile.address }}</dd>
|
||||||
|
|
||||||
{% if user_object.note and "note.view_note"|has_perm:user_object.note %}
|
{% if user_object.note and "note.view_note"|has_perm:user_object.note %}
|
||||||
<dt class="col-xl-6">{% trans 'balance'|capfirst %}</dt>
|
<dt class="col-xl-6">{% trans 'balance'|capfirst %}</dt>
|
||||||
<dd class="col-xl-6">{{ user_object.note.balance | pretty_money }}</dd>
|
<dd class="col-xl-6">{{ user_object.note.balance | pretty_money }}</dd>
|
||||||
|
|
||||||
<dt class="col-xl-6">{% trans 'paid'|capfirst %}</dt>
|
<dt class="col-xl-6">{% trans 'paid'|capfirst %}</dt>
|
||||||
<dd class="col-xl-6">{{ user_object.profile.paid|yesno }}</dd>
|
<dd class="col-xl-6">{{ user_object.profile.paid|yesno }}</dd>
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue