Skip to content
Snippets Groups Projects
Commit 4c6021cd authored by magicfelix's avatar magicfelix
Browse files

Support public live documents

parent 574d52df
No related branches found
No related tags found
1 merge request!62Resolve "Support public live documents"
# Generated by Django 3.2.18 on 2023-05-17 20:57
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('resint', '0007_current_file_not_null'),
]
operations = [
migrations.AddField(
model_name='livedocument',
name='public',
field=models.BooleanField(default=False, verbose_name='Show for not logged-in users'),
),
]
......@@ -196,6 +196,7 @@ class LiveDocument(ExtensiblePolymorphicModel):
help_text=_("This will be used for the name of the current PDF file."),
)
name = models.CharField(max_length=255, verbose_name=_("Name"))
public = models.BooleanField(default=False, verbose_name=_("Show for not logged-in users"))
current_file = models.FileField(
upload_to="live_documents/",
......
......@@ -3,7 +3,7 @@ from django.http import HttpRequest
from rules import add_perm, predicate
from aleksis.apps.resint.models import Poster, PosterGroup
from aleksis.apps.resint.models import LiveDocument, Poster, PosterGroup
from aleksis.core.util.predicates import (
check_object_permission,
has_any_object,
......@@ -31,7 +31,7 @@ def permission_validator(request: HttpRequest, perm: str, obj) -> bool:
@predicate
def is_public_poster_group(user: User, obj: PosterGroup):
def is_public(user: User, obj: [LiveDocument, PosterGroup]):
return obj.public
......@@ -96,7 +96,7 @@ delete_poster_predicate = view_posters_predicate & (
add_perm("resint.delete_poster_rule", delete_poster_predicate)
# View poster PDF file
view_poster_pdf_predicate = is_public_poster_group | (
view_poster_pdf_predicate = is_public | (
has_person
& (has_global_perm("resint.view_postergroup") | has_global_perm("resint.view_poster"))
)
......@@ -118,8 +118,9 @@ view_live_documents_predicate = has_person & has_global_perm("resint.view_livedo
add_perm("resint.view_livedocuments_rule", view_live_documents_predicate)
# View live document
view_live_document_predicate = has_person & (
has_global_perm("resint.view_livedocument") | has_object_perm("resint.view_livedocument")
view_live_document_predicate = is_public | (
has_person
& (has_global_perm("resint.view_livedocument") | has_object_perm("resint.view_livedocument"))
)
add_perm("resint.view_livedocument_rule", view_live_document_predicate)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment