Add protected_usernames()
config function
This commit is contained in:
parent
808e737202
commit
7d158e58b5
|
@ -56,3 +56,6 @@ class ConfigExtension(BaseExtension):
|
||||||
def legacy_mobile_enabled(config):
|
def legacy_mobile_enabled(config):
|
||||||
return config.getbool('tailbone', 'legacy_mobile.enabled',
|
return config.getbool('tailbone', 'legacy_mobile.enabled',
|
||||||
default=True)
|
default=True)
|
||||||
|
|
||||||
|
def protected_usernames(config):
|
||||||
|
return config.getlist('tailbone', 'protected_usernames')
|
||||||
|
|
|
@ -42,6 +42,7 @@ from tailbone import forms
|
||||||
from tailbone.db import Session
|
from tailbone.db import Session
|
||||||
from tailbone.views import MasterView
|
from tailbone.views import MasterView
|
||||||
from tailbone.views.principal import PrincipalMasterView, PermissionsRenderer
|
from tailbone.views.principal import PrincipalMasterView, PermissionsRenderer
|
||||||
|
from tailbone.config import protected_usernames
|
||||||
|
|
||||||
|
|
||||||
class UsersView(PrincipalMasterView):
|
class UsersView(PrincipalMasterView):
|
||||||
|
@ -139,9 +140,9 @@ class UsersView(PrincipalMasterView):
|
||||||
user is "root". But if the given user is not protected, this simply
|
user is "root". But if the given user is not protected, this simply
|
||||||
returns ``True``.
|
returns ``True``.
|
||||||
"""
|
"""
|
||||||
if self.user_is_protected(user):
|
if self.request.is_root:
|
||||||
return self.request.is_root
|
return True
|
||||||
return True
|
return not self.user_is_protected(user)
|
||||||
|
|
||||||
def deletable_instance(self, user):
|
def deletable_instance(self, user):
|
||||||
"""
|
"""
|
||||||
|
@ -149,9 +150,9 @@ class UsersView(PrincipalMasterView):
|
||||||
user is "root". But if the given user is not protected, this simply
|
user is "root". But if the given user is not protected, this simply
|
||||||
returns ``True``.
|
returns ``True``.
|
||||||
"""
|
"""
|
||||||
if self.user_is_protected(user):
|
if self.request.is_root:
|
||||||
return self.request.is_root
|
return True
|
||||||
return True
|
return not self.user_is_protected(user)
|
||||||
|
|
||||||
def user_is_protected(self, user):
|
def user_is_protected(self, user):
|
||||||
"""
|
"""
|
||||||
|
@ -165,8 +166,7 @@ class UsersView(PrincipalMasterView):
|
||||||
"root", otherwise will return ``False``.
|
"root", otherwise will return ``False``.
|
||||||
"""
|
"""
|
||||||
if not hasattr(self, 'protected_usernames'):
|
if not hasattr(self, 'protected_usernames'):
|
||||||
self.protected_usernames = self.rattail_config.getlist(
|
self.protected_usernames = protected_usernames(self.rattail_config)
|
||||||
'tailbone', 'protected_usernames')
|
|
||||||
if self.protected_usernames and user.username in self.protected_usernames:
|
if self.protected_usernames and user.username in self.protected_usernames:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
Loading…
Reference in a new issue