Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
converse.js
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
converse.js
Commits
9c25df48
Commit
9c25df48
authored
Dec 20, 2015
by
Weblate
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
b2ad5395
b170bf38
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
31 additions
and
7 deletions
+31
-7
weblate/trans/forms.py
weblate/trans/forms.py
+6
-3
weblate/trans/permissions.py
weblate/trans/permissions.py
+16
-0
weblate/trans/views/basic.py
weblate/trans/views/basic.py
+1
-1
weblate/trans/views/files.py
weblate/trans/views/files.py
+8
-3
No files found.
weblate/trans/forms.py
View file @
9c25df48
...
@@ -33,6 +33,9 @@ from weblate.lang.models import Language
...
@@ -33,6 +33,9 @@ from weblate.lang.models import Language
from
weblate.trans.models.unit
import
Unit
,
SEARCH_FILTERS
from
weblate.trans.models.unit
import
Unit
,
SEARCH_FILTERS
from
weblate.trans.models.source
import
PRIORITY_CHOICES
from
weblate.trans.models.source
import
PRIORITY_CHOICES
from
weblate.trans.checks
import
CHECKS
from
weblate.trans.checks
import
CHECKS
from
weblate.trans.permissions
import
(
can_author_translation
,
can_overwrite_translation
)
from
weblate.trans.specialchars
import
get_special_chars
from
weblate.trans.specialchars
import
get_special_chars
from
weblate.trans.validators
import
validate_check_flags
from
weblate.trans.validators
import
validate_check_flags
from
weblate.accounts.forms
import
sort_choices
from
weblate.accounts.forms
import
sort_choices
...
@@ -398,13 +401,13 @@ class ExtraUploadForm(UploadForm):
...
@@ -398,13 +401,13 @@ class ExtraUploadForm(UploadForm):
)
)
def
get_upload_form
(
reques
t
):
def
get_upload_form
(
user
,
projec
t
):
'''
'''
Returns correct upload form based on user permissions.
Returns correct upload form based on user permissions.
'''
'''
if
request
.
user
.
has_perm
(
'trans.author_translation'
):
if
can_author_translation
(
user
,
project
):
return
ExtraUploadForm
return
ExtraUploadForm
elif
request
.
user
.
has_perm
(
'trans.overwrite_translation'
):
elif
can_overwrite_translation
(
user
,
project
):
return
UploadForm
return
UploadForm
else
:
else
:
return
SimpleUploadForm
return
SimpleUploadForm
...
...
weblate/trans/permissions.py
View file @
9c25df48
...
@@ -281,3 +281,19 @@ def can_view_reports(user, project):
...
@@ -281,3 +281,19 @@ def can_view_reports(user, project):
Checks whether user can view reports on given project.
Checks whether user can view reports on given project.
"""
"""
return
check_permission
(
user
,
project
,
'trans.view_reports'
)
return
check_permission
(
user
,
project
,
'trans.view_reports'
)
@
cache_permission
def
can_author_translation
(
user
,
project
):
"""
Checks whether user can author translation on given project.
"""
return
check_permission
(
user
,
project
,
'trans.author_translation'
)
@
cache_permission
def
can_overwrite_translation
(
user
,
project
):
"""
Checks whether user can overwrite translation on given project.
"""
return
check_permission
(
user
,
project
,
'trans.overwrite_translation'
)
weblate/trans/views/basic.py
View file @
9c25df48
...
@@ -284,7 +284,7 @@ def show_translation(request, project, subproject, lang):
...
@@ -284,7 +284,7 @@ def show_translation(request, project, subproject, lang):
obj
.
is_locked
(
request
.
user
)
obj
.
is_locked
(
request
.
user
)
# Get form
# Get form
form
=
get_upload_form
(
request
)()
form
=
get_upload_form
(
request
.
user
,
obj
.
subproject
.
project
)()
# Is user allowed to do automatic translation?
# Is user allowed to do automatic translation?
if
can_automatic_translation
(
request
.
user
,
obj
.
subproject
.
project
):
if
can_automatic_translation
(
request
.
user
,
obj
.
subproject
.
project
):
...
...
weblate/trans/views/files.py
View file @
9c25df48
...
@@ -30,6 +30,9 @@ import sys
...
@@ -30,6 +30,9 @@ import sys
from
weblate.trans.util
import
report_error
from
weblate.trans.util
import
report_error
from
weblate.trans.forms
import
get_upload_form
from
weblate.trans.forms
import
get_upload_form
from
weblate.trans.views.helper
import
get_translation
from
weblate.trans.views.helper
import
get_translation
from
weblate.trans.permissions
import
(
can_author_translation
,
can_overwrite_translation
)
def
download_translation
(
request
,
project
,
subproject
,
lang
):
def
download_translation
(
request
,
project
,
subproject
,
lang
):
...
@@ -87,7 +90,9 @@ def upload_translation(request, project, subproject, lang):
...
@@ -87,7 +90,9 @@ def upload_translation(request, project, subproject, lang):
return
redirect
(
obj
)
return
redirect
(
obj
)
# Get correct form handler based on permissions
# Get correct form handler based on permissions
form
=
get_upload_form
(
request
)(
request
.
POST
,
request
.
FILES
)
form
=
get_upload_form
(
request
.
user
,
obj
.
subproject
.
project
)(
request
.
POST
,
request
.
FILES
)
# Check form validity
# Check form validity
if
not
form
.
is_valid
():
if
not
form
.
is_valid
():
...
@@ -96,7 +101,7 @@ def upload_translation(request, project, subproject, lang):
...
@@ -96,7 +101,7 @@ def upload_translation(request, project, subproject, lang):
# Create author name
# Create author name
author
=
None
author
=
None
if
(
request
.
user
.
has_perm
(
'trans.author_translation'
)
and
if
(
can_author_translation
(
request
.
user
,
obj
.
subproject
.
project
)
and
form
.
cleaned_data
[
'author_name'
]
!=
''
and
form
.
cleaned_data
[
'author_name'
]
!=
''
and
form
.
cleaned_data
[
'author_email'
]
!=
''
):
form
.
cleaned_data
[
'author_email'
]
!=
''
):
author
=
'%s <%s>'
%
(
author
=
'%s <%s>'
%
(
...
@@ -106,7 +111,7 @@ def upload_translation(request, project, subproject, lang):
...
@@ -106,7 +111,7 @@ def upload_translation(request, project, subproject, lang):
# Check for overwriting
# Check for overwriting
overwrite
=
False
overwrite
=
False
if
request
.
user
.
has_perm
(
'trans.overwrite_translation'
):
if
can_overwrite_translation
(
request
.
user
,
obj
.
subproject
.
project
):
overwrite
=
form
.
cleaned_data
[
'overwrite'
]
overwrite
=
form
.
cleaned_data
[
'overwrite'
]
# Do actual import
# Do actual import
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment