Skip to content

Commit

Permalink
Owner is unable to delete a published/approved map and Request Change…
Browse files Browse the repository at this point in the history
… button is shown on map with a user having permissions to edit in A/W (#9295)

* [Fixes #9283] Issue with owner perms on A/W

* [Fixes #9283] Fix typo
  • Loading branch information
mattiagiupponi authored May 9, 2022
1 parent f4d7817 commit 39b6bd7
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 12 deletions.
19 changes: 14 additions & 5 deletions geonode/base/templatetags/base_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -472,11 +472,20 @@ def get_visibile_resources(user):
@register.simple_tag
def display_edit_request_button(resource, user, perms):
def _has_owner_his_permissions():
_owner_set = set(resource.BASE_PERMISSIONS.get('owner') +
resource.BASE_PERMISSIONS.get('read') +
resource.BASE_PERMISSIONS.get('write') +
resource.BASE_PERMISSIONS.get('download')) - \
set(perms)
_owner_perms = set(
resource.BASE_PERMISSIONS.get('owner') +
resource.BASE_PERMISSIONS.get('read') +
resource.BASE_PERMISSIONS.get('write')
)

if resource.polymorphic_ctype.model in ['layer', 'document']:
'''
The download resource permission should be available only
if the resource is a layer or Documents. You cant downlod maps
'''
_owner_perms = _owner_perms.union(set(resource.BASE_PERMISSIONS.get('download')))

_owner_set = _owner_perms.difference(set(perms))
return _owner_set == set() or \
_owner_set == {'change_resourcebase_permissions', 'publish_resourcebase'}

Expand Down
18 changes: 11 additions & 7 deletions geonode/maps/templates/maps/map_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,8 @@ <h4 class="modal-title" id="myModalLabel">{% trans "Download Map" %}</h4>
</div>

{% if not READ_ONLY_MODE %}
{% if "change_resourcebase" in perms_list or "change_resourcebase_metadata" in perms_list %}
<li class="list-group-item">
{% if "change_resourcebase_metadata" in perms_list or "change_resourcebase" in perms_list or "delete_resourcebase" in perms_list %}
<li class="list-group-item">
<button class="btn btn-primary btn-md btn-block" data-toggle="modal" data-target="#edit-map">{% trans "Editing Tools" %}</button>
</li>
<div class="modal fade" id="edit-map" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
Expand Down Expand Up @@ -207,14 +207,18 @@ <h4>{% trans "Thumbnail" %}</h4>
<a class="btn btn-default btn-block btn-xs" href="{% url "thumbnail_upload" resource.resourcebase_ptr.id %}">{% trans "Upload" %}</a>
</div>
{% endif %}
{% if "change_resourcebase" in perms_list %}
{% if "change_resourcebase" in perms_list or "delete_resourcebase" in perms_list%}
<div class="col-sm-3">
<i class="fa fa-map-marker fa-3x"></i>
<h4>{% trans "Map" %}</h4>
<a class="btn btn-default btn-block btn-xs" href="{% url "map_edit" resource.id %}">{% trans "Edit" %}</a>
{% if "change_resourcebase" in perms_list %}
<a class="btn btn-default btn-block btn-xs" href="{% url "map_edit" resource.id %}">{% trans "Edit" %}</a>
{% endif %}
{% if "delete_resourcebase" in perms_list %}
<a class="btn btn-danger btn-block btn-xs" href="{% url "map_remove" resource.id %}">{% trans "Remove" %}</a>
{% endif %}
</div>
{% endif %}
{% endif %}
</div>
</div>
<div class="modal-footer">
Expand All @@ -226,8 +230,8 @@ <h4>{% trans "Map" %}</h4>
{% endif %}
{% endif %}
{% display_edit_request_button resource request.user perms_list as display_request_button %}
{% if display_request_button %}
<li class="list-group-item">
{% if display_request_button and not request.user_agent.is_mobile %}
<li class="list-group-item">
<a href="{% url "owner_rights_request" resource.id %}">
<button class="btn btn-primary btn-md btn-block">{% trans "Request change" %}</button>
</a>
Expand Down

0 comments on commit 39b6bd7

Please sign in to comment.