%inherit file="/base.mako"/>
<%def name="render_tool_shed_repository_actions( repository, metadata=None, changeset_revision=None )">
<%
from tool_shed.util.review_util import can_browse_repository_reviews, changeset_revision_reviewed_by_user, get_review_by_repository_id_changeset_revision_user_id
from tool_shed.util.metadata_util import is_malicious
if repository.metadata_revisions:
has_metadata = True
else:
has_metadata = False
is_admin = trans.user_is_admin()
if is_admin or trans.app.security_agent.user_can_administer_repository( trans.user, repository ):
can_administer = True
else:
can_administer = False
if repository.deprecated:
is_deprecated = True
else:
is_deprecated = False
if repository.is_new( trans.app ):
is_new = True
else:
is_new = False
if is_malicious( trans.app, trans.security.encode_id( repository.id ), repository.tip( trans.app ) ):
changeset_is_malicious = True
else:
changeset_is_malicious = False
can_browse_contents = not is_new
if can_browse_repository_reviews( trans.app, trans.user, repository ):
can_browse_reviews = True
else:
can_browse_reviews = False
if trans.user and trans.user != repository.user:
can_contact_owner = True
else:
can_contact_owner = False
if not is_new and trans.user and ( is_admin or repository.user == trans.user ) and not is_deprecated:
can_deprecate = True
else:
can_deprecate = False
if not is_deprecated and trans.app.security_agent.can_push( trans.app, trans.user, repository ):
can_push = True
else:
can_push = False
if not is_deprecated and not is_new and not changeset_is_malicious:
can_download = True
else:
can_download = False
if ( can_administer or can_push ) and not repository.deleted and not repository.deprecated and not is_new:
can_reset_all_metadata = True
else:
can_reset_all_metadata = False
if can_push and not is_deprecated:
can_upload = True
else:
can_upload = False
if not is_new and not is_deprecated and trans.user and repository.user != trans.user:
can_rate = True
else:
can_rate = False
if metadata is not None and changeset_revision is not None:
if has_metadata and not is_deprecated and trans.app.security_agent.user_can_review_repositories( trans.user ):
can_review_repository = True
else:
can_review_repository = False
if changeset_revision_reviewed_by_user( trans.user, repository, changeset_revision ):
reviewed_by_user = True
else:
reviewed_by_user = False
else:
can_review_repository = False
reviewed_by_user = False
if reviewed_by_user:
review = get_review_by_repository_id_changeset_revision_user_id( app=trans.app,
repository_id=trans.security.encode_id( repository.id ),
changeset_revision=changeset_revision,
user_id=trans.security.encode_id( trans.user.id ) )
review_id = trans.security.encode_id( review.id )
else:
review_id = None
if not is_new and not is_deprecated:
can_set_metadata = True
else:
can_set_metadata = False
if changeset_revision is not None:
if changeset_revision == repository.tip( trans.app ):
changeset_revision_is_repository_tip = True
else:
changeset_revision_is_repository_tip = False
else:
changeset_revision_is_repository_tip = False
if trans.user and ( is_admin or repository.user == trans.user ) and is_deprecated:
can_undeprecate = True
else:
can_undeprecate = False
can_view_change_log = not is_new
if can_push:
browse_label = 'Browse or delete repository tip files'
else:
browse_label = 'Browse repository tip files'
%>