mirror of
https://git.cmoser.eu/tinytools/django-tinywiki.git
synced 2026-02-04 06:06:33 +01:00
2025.10.06-03:08:05
This commit is contained in:
@@ -6,6 +6,57 @@ 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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user