Move the deny_anonymous decorator to the poezio.decorators module

This commit is contained in:
mathieui 2020-05-09 23:12:57 +02:00
parent f68fa1da5e
commit 2eb362ffe8
2 changed files with 13 additions and 12 deletions

View file

@ -162,3 +162,15 @@ class CommandArgParser:
command_args_parser = CommandArgParser()
def deny_anonymous(func: Callable) -> Callable:
"""Decorator to disable commands when using an anonymous account."""
def wrap(self: 'RosterInfoTab', *args, **kwargs):
if self.core.xmpp.anon:
return self.core.information(
'This command is not available for anonymous accounts.',
'Info'
)
return func(self, *args, **kwargs)
return wrap

View file

@ -24,7 +24,7 @@ from poezio.contact import Contact, Resource
from poezio.decorators import refresh_wrapper
from poezio.roster import RosterGroup, roster
from poezio.theming import get_theme, dump_tuple
from poezio.decorators import command_args_parser
from poezio.decorators import command_args_parser, deny_anonymous
from poezio.core.structs import Command, Completion
from poezio.tabs import Tab
from poezio.ui.types import InfoMessage
@ -32,17 +32,6 @@ from poezio.ui.types import InfoMessage
log = logging.getLogger(__name__)
def deny_anonymous(func: Callable) -> Callable:
def wrap(self: 'RosterInfoTab', *args, **kwargs):
if self.core.xmpp.anon:
return self.core.information(
'This command is not available for anonymous accounts.',
'Info'
)
return func(self, *args, **kwargs)
return wrap
class RosterInfoTab(Tab):
"""
A tab, split in two, containing the roster and infos