2026.01.14 17:58:06 (cachyos.cmoser.eu)

This commit is contained in:
2026-01-14 17:58:06 +01:00
parent 523fb8bcad
commit 450ea2e845
3 changed files with 26 additions and 23 deletions

View File

@@ -4,67 +4,65 @@ from django.views.generic import FormView as DjangoFormView
from typing import Any
class Base:
base_template_name = settings.TINYWIKI_BASE_TEMPLATE
@property
def user_can_edit_pages(self)->bool:
if (self.request.user.is_staff
if (self.request.user.is_staff
or self.request.user.has_perm('page.tiynwiki-edit')
or self.request.user.has_perm('page.tinywiki-edit-all')):
return True
return False
@property
def user_can_edit_all_pages(self)->bool:
if (self.request.user.is_staff
if (self.request.user.is_staff
or self.request.user.has_perm('page.tinywiki-edit-all')):
return True
return False
@property
def user_can_edit_system_pages(self)->bool:
if (self.request.user.is_staff
if (self.request.user.is_staff
or self.request.user.has_perm('page.tiynwiki-edit-system')):
return True
return False
@property
def user_can_create_pages(self)->bool:
if (self.request.user.is_staff
if (self.request.user.is_staff
or self.request.user.has_perm('page.tiynwiki-create')):
return True
return False
@property
def user_can_create_system_pages(self)->bool:
if (self.request.user.is_staff
if (self.request.user.is_staff
or self.request.user.has_perm('page.tiynwiki-create-system')):
return True
return False
def page_is_creatable(self,slug:str)->bool:
if not slug:
return False
if slug.startswith('tw-'):
return self.user_can_create_system_pages
return self.user_can_create_pages
def page_is_editable(self,page)->bool:
if page.slug.startswith('tw-'):
return self.user_can_edit_system_pages
elif (self.user_can_edit_all_pages
elif (self.user_can_edit_all_pages
or (self.request.user.pk == page.author.pk and self.user_can_edit_pages)):
return True
return False
@classmethod
def get_base_template_name(cls)->str:
return cls.base_template_name
@classmethod
def get_template_name(cls)->str:
return cls.template_name
def get_tinywiki_context_data(self):
create_pages = False
if self.request.user.is_authenticated:
@@ -73,22 +71,20 @@ class Base:
return {
'brand_logo': settings.TINYWIKI_BRAND_LOGO,
'brand_name': settings.TINYWIKI_BRAND_NAME,
'base_template': self.get_base_template_name(),
'use_bootstrap': settings.USE_BOOTSTRAP,
'user_can_create_wiki_pages':create_pages
}
class View(Base,DjangoView):
template_name = "tinywiki"
def get_context_data(self,**kwargs):
context = self.get_tinywiki_context_data()
context.update(kwargs)
return context
class FormView(Base,DjangoFormView):
def get_context_data(self, **kwargs) -> dict[str, Any]:
context = self.get_tinywiki_context_data()
context.update(kwargs)
return super().get_context_data(**context)