Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
AE
Sith
Commits
830c15a5
Commit
830c15a5
authored
Aug 10, 2016
by
Skia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Better right handling in files
parent
1775569e
Pipeline
#108
passed with stage
in 1 minute and 38 seconds
Changes
7
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
32 additions
and
32 deletions
+32
-32
core/models.py
core/models.py
+16
-11
core/templates/core/base.jinja
core/templates/core/base.jinja
+7
-2
core/templates/core/file.jinja
core/templates/core/file.jinja
+0
-14
core/templates/core/file_detail.jinja
core/templates/core/file_detail.jinja
+2
-0
core/templates/core/file_list.jinja
core/templates/core/file_list.jinja
+2
-0
core/views/__init__.py
core/views/__init__.py
+1
-1
core/views/files.py
core/views/files.py
+4
-4
No files found.
core/models.py
View file @
830c15a5
...
...
@@ -137,17 +137,22 @@ class User(AbstractBaseUser):
return
False
else
:
return
False
if
group_name
[
-
6
:]
==
settings
.
SITH_BOARD_SUFFIX
:
if
'club'
in
settings
.
INSTALLED_APPS
:
from
club.models
import
Club
name
=
group_name
[:
-
6
]
c
=
Club
.
objects
.
filter
(
unix_name
=
name
).
first
()
mem
=
c
.
get_membership_for
(
self
)
if
mem
:
return
mem
.
role
>=
2
return
False
else
:
return
False
if
group_name
[
-
len
(
settings
.
SITH_BOARD_SUFFIX
):]
==
settings
.
SITH_BOARD_SUFFIX
:
from
club.models
import
Club
name
=
group_name
[:
-
len
(
settings
.
SITH_BOARD_SUFFIX
)]
c
=
Club
.
objects
.
filter
(
unix_name
=
name
).
first
()
mem
=
c
.
get_membership_for
(
self
)
if
mem
:
return
mem
.
role
>
settings
.
SITH_MAXIMUM_FREE_ROLE
return
False
if
group_name
[
-
len
(
settings
.
SITH_MEMBER_SUFFIX
):]
==
settings
.
SITH_MEMBER_SUFFIX
:
from
club.models
import
Club
name
=
group_name
[:
-
len
(
settings
.
SITH_MEMBER_SUFFIX
)]
c
=
Club
.
objects
.
filter
(
unix_name
=
name
).
first
()
mem
=
c
.
get_membership_for
(
self
)
if
mem
:
return
True
return
False
if
group_name
==
settings
.
SITH_GROUPS
[
'root'
][
'name'
]
and
self
.
is_superuser
:
return
True
return
self
.
groups
.
filter
(
name
=
group_name
).
exists
()
...
...
core/templates/core/base.jinja
View file @
830c15a5
...
...
@@ -13,6 +13,7 @@
<body>
{%
block
header
%}
{%
if
not
popup
%}
<div
id=
"logo"
><a
href=
"
{{
url
(
'core:index'
)
}}
"
><img
src=
"
{{
static
(
'core/img/logo.png'
)
}}
"
alt=
"
{%
trans
%}
Logo
{%
endtrans
%}
"
/></a></div>
<header>
...
...
@@ -25,8 +26,12 @@
<a
href=
"
{{
url
(
'core:logout'
)
}}
"
>
{%
trans
%}
Logout
{%
endtrans
%}
</a>
{%
endif
%}
</header>
{%
else
%}
<div
id=
"popupheader"
>
{{
user.get_display_name
()
}}
</div>
{%
endif
%}
{%
endblock
%}
{%
block
nav
%}
{%
if
not
popup
%}
<nav>
<a
href=
"
{{
url
(
'core:user_list'
)
}}
"
>
{%
trans
%}
Users
{%
endtrans
%}
</a>
<a
href=
"
{{
url
(
'core:page'
,
page_name
=
"Index"
)
}}
"
>
{%
trans
%}
Wiki
{%
endtrans
%}
</a>
...
...
@@ -34,6 +39,7 @@
<a
href=
"
{{
url
(
'club:club_list'
)
}}
"
>
{%
trans
%}
Clubs
{%
endtrans
%}
</a>
<a
href=
"
{{
url
(
'core:page'
,
"Services"
)
}}
"
>
{%
trans
%}
Services
{%
endtrans
%}
</a>
</nav>
{%
endif
%}
{%
endblock
%}
<div
id=
"content"
>
...
...
@@ -59,8 +65,7 @@
<script
src=
"
{{
static
(
'core/js/multiple-select.js'
)
}}
"
></script>
<script
src=
"
{{
static
(
'core/js/script.js'
)
}}
"
></script>
<script>
$
(
'
select
'
).
multipleSelect
({
filter
:
true
,
$
(
'
select:not([multiple])
'
).
multipleSelect
({
single
:
true
,
{%
if
not
popup
%}
position
:
'
top
'
,
...
...
core/templates/core/file.jinja
View file @
830c15a5
...
...
@@ -21,20 +21,6 @@
{%
endif
%}
{%
endmacro
%}
{%
block
header
%}
{%
if
popup
!=
""
%}
<div
id=
"popupheader"
>
{{
user.get_display_name
()
}}
</div>
{%
else
%}
{{
super
()
}}
{%
endif
%}
{%
endblock
%}
{%
block
nav
%}
{%
if
popup
!=
""
%}
{%
else
%}
{{
super
()
}}
{%
endif
%}
{%
endblock
%}
{%
block
content
%}
{{
print_file_name
(
file
)
}}
...
...
core/templates/core/file_detail.jinja
View file @
830c15a5
...
...
@@ -12,11 +12,13 @@
</h3>
<p>
{%
trans
%}
Owner:
{%
endtrans
%}{{
file.owner.get_display_name
()
}}
</p>
{%
if
file.is_folder
%}
{%
if
user.can_edit
(
file
)
%}
<form
action=
""
method=
"post"
enctype=
"multipart/form-data"
>
{%
csrf_token
%}
{{
form.as_p
()
}}
<p><input
type=
"submit"
value=
"
{%
trans
%}
Add
{%
endtrans
%}
"
></p>
</form>
{%
endif
%}
<ul>
{%
for
f
in
file.children.order_by
(
'-is_folder'
,
'name'
)
.
all
()
%}
<li>
...
...
core/templates/core/file_list.jinja
View file @
830c15a5
...
...
@@ -2,11 +2,13 @@
{%
block
content
%}
{{
super
()
}}
{%
if
user.is_in_group
(
settings.SITH_MAIN_BOARD_GROUP
)
%}
<form
action=
""
method=
"post"
enctype=
"multipart/form-data"
>
{%
csrf_token
%}
{{
form.as_p
()
}}
<p><input
type=
"submit"
value=
"
{%
trans
%}
Add
{%
endtrans
%}
"
></p>
</form>
{%
endif
%}
{%
if
file_list
%}
<h3>
{%
trans
%}
File list
{%
endtrans
%}
</h3>
<ul>
...
...
core/views/__init__.py
View file @
830c15a5
...
...
@@ -9,7 +9,7 @@ from core.models import Group
def
forbidden
(
request
):
return
HttpResponseForbidden
(
render
(
request
,
"core/403.jinja"
,
context
=
{
'next'
:
request
.
path
,
'form'
:
AuthenticationForm
()}))
AuthenticationForm
()
,
'popup'
:
request
.
resolver_match
.
kwargs
[
'popup'
]
or
""
}))
def
not_found
(
request
):
return
HttpResponseNotFound
(
render
(
request
,
"core/404.jinja"
))
...
...
core/views/files.py
View file @
830c15a5
...
...
@@ -62,7 +62,7 @@ class AddFileForm(forms.Form):
self
.
add_error
(
None
,
_
(
"Error uploading file %(file_name)s: %(msg)s"
)
%
{
'file_name'
:
f
,
'msg'
:
str
(
e
.
message
)})
class
FileListView
(
CanViewMixin
,
ListView
,
FormMixin
):
class
FileListView
(
ListView
,
FormMixin
):
template_name
=
'core/file_list.jinja'
context_object_name
=
"file_list"
form_class
=
AddFileForm
...
...
@@ -75,7 +75,7 @@ class FileListView(CanViewMixin, ListView, FormMixin):
self
.
object_list
=
self
.
get_queryset
()
self
.
form
=
self
.
get_form
()
files
=
request
.
FILES
.
getlist
(
'file_field'
)
if
self
.
form
.
is_valid
():
if
request
.
user
.
is_authenticated
()
and
request
.
user
.
is_in_group
(
settings
.
SITH_MAIN_BOARD_GROUP
)
and
self
.
form
.
is_valid
():
self
.
form
.
process
(
parent
=
None
,
owner
=
request
.
user
,
files
=
files
)
if
self
.
form
.
is_valid
():
return
super
(
FileListView
,
self
).
form_valid
(
self
.
form
)
...
...
@@ -141,7 +141,7 @@ class FileEditPropView(CanEditPropMixin, UpdateView):
kwargs
[
'popup'
]
=
'popup'
return
kwargs
class
FileView
(
Can
Edit
Mixin
,
DetailView
,
FormMixin
):
class
FileView
(
Can
View
Mixin
,
DetailView
,
FormMixin
):
"""This class handle the upload of new files into a folder"""
model
=
SithFile
pk_url_kwarg
=
"file_id"
...
...
@@ -157,7 +157,7 @@ class FileView(CanEditMixin, DetailView, FormMixin):
self
.
object
=
self
.
get_object
()
self
.
form
=
self
.
get_form
()
files
=
request
.
FILES
.
getlist
(
'file_field'
)
if
self
.
form
.
is_valid
():
if
request
.
user
.
is_authenticated
()
and
request
.
user
.
can_edit
(
self
.
object
)
and
self
.
form
.
is_valid
():
self
.
form
.
process
(
parent
=
self
.
object
,
owner
=
request
.
user
,
files
=
files
)
if
self
.
form
.
is_valid
():
return
super
(
FileView
,
self
).
form_valid
(
self
.
form
)
...
...
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