Skip to content

Commit

Permalink
Fix for a bug related to deleting related items
Browse files Browse the repository at this point in the history
  • Loading branch information
rossjones committed Apr 26, 2012
1 parent a99df11 commit ca15605
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 0 deletions.
9 changes: 9 additions & 0 deletions ckan/logic/auth/delete.py
Expand Up @@ -27,6 +27,15 @@ def related_delete(context, data_dict):

related = get_related_object(context, data_dict)
userobj = model.User.get( user )

if related.datasets:
package = related.datasets[0]

pkg_dict = { 'id': package.id }
authorized = package_delete(context, pkg_dict).get('success')
if authorized:
return {'success': True}

if not userobj or userobj.id != related.owner_id:
return {'success': False, 'msg': _('Only the owner can delete a related item')}

Expand Down
6 changes: 6 additions & 0 deletions ckan/logic/auth/publisher/delete.py
Expand Up @@ -40,6 +40,12 @@ def related_delete(context, data_dict):

related = get_related_object(context, data_dict)
userobj = model.User.get( user )

if related.datasets:
package = related.datasets[0]
if _groups_intersect( userobj.get_groups('organization'), package.get_groups('organization') ):
return {'success': True}

if not userobj or userobj.id != related.owner_id:
return {'success': False, 'msg': _('Only the owner can delete a related item')}

Expand Down
1 change: 1 addition & 0 deletions ckan/templates/_util.html
Expand Up @@ -128,6 +128,7 @@
<py:def function="related_summary(related)">
<li class="span3">
<div class="thumbnail">
<button py:if="c.user and (c.userobj.id == related.owner_id or h.check_access('package_update',{'id':c.pkg.id}))" class="close" onclick="related_delete('${related.id}');">×</button>
<a href="${related.url}" class="image">
<img src="${related.image_url}" width="210" py:if="related.image_url" />
<img src="/images/photo-placeholder.png" width="210" py:if="not related.image_url" />
Expand Down
19 changes: 19 additions & 0 deletions ckan/templates/package/related_list.html
Expand Up @@ -40,6 +40,25 @@ <h3>Related items <a class="btn btn-small btn-primary pull-right" data-toggle="m
</div>

<py:def function="optional_head">
<script type="text/javascript" py:if="c.user">
function related_delete(related_id) {
var data = { 'id' : related_id }
$.ajax({
type: "post",
url: CKAN.SITE_URL + '/api/3/action/related_delete',
data: JSON.stringify(data),
success: function (data) {
window.location.reload();
},
error: function(err, txt, w) {
// This needs to be far more informative.
var msg = '<strong>Error:</strong> Unable to delete related item';
$('<div class="alert alert-error" />').html(msg).hide().prependTo($('div#main')).fadeIn();
}
});

}
</script>
<py:if test="config.get('rdf_packages')">
<link rel="alternate" type="application/rdf+xml" title="RDF/XML" href="${config['rdf_packages'] + '/' + c.pkg.id + '.rdf' }" />
<link rel="alternate" type="application/turtle" title="RDF/Turtle" href="${config['rdf_packages'] + '/' + c.pkg.id + '.ttl' }" />
Expand Down

0 comments on commit ca15605

Please sign in to comment.