Commit 94020604 authored by Michal Čihař's avatar Michal Čihař

Convert perms.trans.reset_translation to new model

Signed-off-by: default avatarMichal Čihař <michal@cihar.com>
parent d9113f5c
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
{% can_commit_translation user project as user_can_commit_translation %} {% can_commit_translation user project as user_can_commit_translation %}
{% can_update_translation user project as user_can_update_translation %} {% can_update_translation user project as user_can_update_translation %}
{% can_reset_translation user project as user_can_reset_translation %}
<div class="row"> <div class="row">
...@@ -142,7 +143,7 @@ ...@@ -142,7 +143,7 @@
</tr> </tr>
{% endif %} {% endif %}
{% if perms.trans.reset_translation %} {% if user_can_reset_translation %}
<tr> <tr>
<td> <td>
<a href="{{ object.get_reset_url }}" class="btn btn-default confirm-reset">{% trans "Reset" %}</a> <a href="{{ object.get_reset_url }}" class="btn btn-default confirm-reset">{% trans "Reset" %}</a>
......
...@@ -176,3 +176,11 @@ def can_update_translation(user, project): ...@@ -176,3 +176,11 @@ def can_update_translation(user, project):
Checks whether user can update translation repository. Checks whether user can update translation repository.
""" """
return check_permission(user, project, 'trans.update_translation') return check_permission(user, project, 'trans.update_translation')
@cache_permission
def can_reset_translation(user, project):
"""
Checks whether user can reset translation repository.
"""
return check_permission(user, project, 'trans.reset_translation')
...@@ -76,3 +76,8 @@ def can_commit_translation(user, project): ...@@ -76,3 +76,8 @@ def can_commit_translation(user, project):
@register.assignment_tag @register.assignment_tag
def can_update_translation(user, project): def can_update_translation(user, project):
return weblate.trans.permissions.can_update_translation(user, project) return weblate.trans.permissions.can_update_translation(user, project)
@register.assignment_tag
def can_reset_translation(user, project):
return weblate.trans.permissions.can_reset_translation(user, project)
...@@ -27,7 +27,9 @@ from weblate.trans.views.helper import ( ...@@ -27,7 +27,9 @@ from weblate.trans.views.helper import (
) )
from weblate.trans.filelock import FileLockException from weblate.trans.filelock import FileLockException
from weblate.trans.util import redirect_param from weblate.trans.util import redirect_param
from weblate.trans.permissions import can_commit_translation from weblate.trans.permissions import (
can_commit_translation, can_update_translation, can_reset_translation,
)
def execute_locked(request, obj, message, call, *args, **kwargs): def execute_locked(request, obj, message, call, *args, **kwargs):
...@@ -172,22 +174,28 @@ def push_translation(request, project, subproject, lang): ...@@ -172,22 +174,28 @@ def push_translation(request, project, subproject, lang):
return perform_push(request, obj) return perform_push(request, obj)
@permission_required('trans.reset_translation')
def reset_project(request, project): def reset_project(request, project):
obj = get_project(request, project) obj = get_project(request, project)
if not can_reset_translation(request.user, obj):
raise PermissionDenied()
return perform_reset(request, obj) return perform_reset(request, obj)
@permission_required('trans.reset_translation')
def reset_subproject(request, project, subproject): def reset_subproject(request, project, subproject):
obj = get_subproject(request, project, subproject) obj = get_subproject(request, project, subproject)
if not can_reset_translation(request.user, obj.subproject):
raise PermissionDenied()
return perform_reset(request, obj) return perform_reset(request, obj)
@permission_required('trans.reset_translation')
def reset_translation(request, project, subproject, lang): def reset_translation(request, project, subproject, lang):
obj = get_translation(request, project, subproject, lang) obj = get_translation(request, project, subproject, lang)
if not can_reset_translation(request.user, obj.subproject.translation):
raise PermissionDenied()
return perform_reset(request, obj) return perform_reset(request, obj)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment