Commit 4a7df31f authored by Skia's avatar Skia
Browse files

Some other performance improvements

parent bf648303
Pipeline #533 passed with stage
in 2 minutes and 53 seconds
......@@ -385,7 +385,7 @@ class User(AbstractBaseUser):
"""
Determine if the object can be edited by the user
"""
if self.is_owner(obj):
if hasattr(obj, "can_be_edited_by") and obj.can_be_edited_by(self):
return True
if hasattr(obj, "edit_groups"):
for g in obj.edit_groups.all():
......@@ -393,7 +393,7 @@ class User(AbstractBaseUser):
return True
if isinstance(obj, User) and obj == self:
return True
if hasattr(obj, "can_be_edited_by") and obj.can_be_edited_by(self):
if self.is_owner(obj):
return True
return False
......@@ -401,13 +401,13 @@ class User(AbstractBaseUser):
"""
Determine if the object can be viewed by the user
"""
if self.can_edit(obj):
if hasattr(obj, "can_be_viewed_by") and obj.can_be_viewed_by(self):
return True
if hasattr(obj, "view_groups"):
for g in obj.view_groups.all():
if self.is_in_group(g.name):
return True
if hasattr(obj, "can_be_viewed_by") and obj.can_be_viewed_by(self):
if self.can_edit(obj):
return True
return False
......
......@@ -18,6 +18,7 @@ import os
from core.models import SithFile, RealGroup, Notification
from core.views import CanViewMixin, CanEditMixin, CanEditPropMixin, CanCreateMixin, can_view, not_found
from counter.models import Counter
def send_file(request, file_id, file_class=SithFile, file_attr="file"):
"""
......@@ -28,7 +29,6 @@ def send_file(request, file_id, file_class=SithFile, file_attr="file"):
f = file_class.objects.filter(id=file_id).first()
if f is None or not f.file:
return not_found(request)
from counter.models import Counter
if not (can_view(f, request.user) or
('counter_token' in request.session.keys() and
request.session['counter_token'] and # check if not null for counters that have no token set
......
......@@ -17,7 +17,8 @@
<h3>{{ album.get_display_name() }}</h3>
<a href="{{ url('sas:album_edit', album_id=album.id) }}">{% trans %}Edit{% endtrans %}</a><br>
<hr>
{% if user.can_edit(album) %}
{% set edit_mode = user.can_edit(album) %}
{% if edit_mode %}
<form action="" method="post" enctype="multipart/form-data" style="width: 100%;">
{% csrf_token %}
<p>
......@@ -39,7 +40,7 @@
<div>
{% for a in album.children.filter(is_folder=True).order_by('-id') %}
<div style="display: inline-block;">
{% if user.can_edit(album) %}
{% if edit_mode %}
<input type="checkbox" name="file_list" value="{{ a.id }}">
{% endif %}
{% if user.can_view(a.as_album) %}
......@@ -64,7 +65,7 @@
<div>
{% for p in album.children.filter(is_folder=False).order_by('id') %}
<div style="display: inline-block;">
{% if user.can_edit(album) %}
{% if edit_mode %}
<input type="checkbox" name="file_list" value="{{ p.id }}">
{% endif %}
{% if user.can_view(p.as_picture) %}
......@@ -77,7 +78,7 @@
</div>
{% endfor %}
</div>
{% if user.can_edit(album) %}
{% if edit_mode %}
</form>
{% endif %}
<form action="" method="post" enctype="multipart/form-data">
......
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