manager: don't display "add time period" link to non-managers (#18564)

This commit is contained in:
Frédéric Péters 2017-09-09 16:46:35 +02:00
parent 4c1dd71be5
commit bb043fb85e
2 changed files with 12 additions and 1 deletions

View File

@ -117,7 +117,9 @@
</li>
{% endfor %}
{% if user_can_manage %}
<li><a class="add" rel="popup" href="{{add_time_period_url}}">{% trans 'Add a time period' %}</a></li>
{% endif %}
</ul>
</div>
{% endfor %}

View File

@ -647,15 +647,24 @@ def test_meetings_agenda_add_time_period_as_manager(app, manager_user):
assert 'Add a time period' not in resp.content
MeetingType(agenda=agenda, label='Blah').save()
resp = app.get('/manage/agendas/%d/' % agenda.id)
assert 'Add a time period' in resp.content
assert 'Add a time period' not in resp.content
app.get('/manage/agendas/%d/desk/%d/add-time-period' % (agenda.id, desk.id), status=403)
time_period = TimePeriod(desk=desk, weekday=0, start_time=datetime.time(9, 0),
end_time=datetime.time(12, 0))
time_period.save()
resp = app.get('/manage/agendas/%d/' % agenda.id)
assert '/manage/timeperiods/%s/edit' % time_period.id not in resp.body
assert '/manage/timeperiods/%s/delete' % time_period.id not in resp.body
app.get('/manage/timeperiods/%d/edit' % time_period.id, status=403)
# grant edit right to manager
agenda.edit_role = manager_user.groups.all()[0]
agenda.save()
resp = app.get('/manage/agendas/%d/' % agenda.id)
assert 'Add a time period' in resp.content
assert '/manage/timeperiods/%s/edit' % time_period.id in resp.body
assert '/manage/timeperiods/%s/delete' % time_period.id in resp.body
app.get('/manage/agendas/%d/desk/%d/add-time-period' % (agenda.id, desk.id), status=200)
app.get('/manage/timeperiods/%d/edit' % time_period.id, status=200)