|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from .. import * |
|
|
|
CMD_HELP = {} |
|
|
|
|
|
|
|
class _SudoManager: |
|
def __init__(self): |
|
self.db = None |
|
self.owner = None |
|
self._owner_sudos = [] |
|
|
|
def _init_db(self): |
|
if not self.db: |
|
from .. import udB |
|
|
|
self.db = udB |
|
return self.db |
|
|
|
def get_sudos(self): |
|
db = self._init_db() |
|
SUDOS = db.get_key("SUDOS") |
|
return SUDOS or [] |
|
|
|
@property |
|
def should_allow_sudo(self): |
|
db = self._init_db() |
|
return db.get_key("SUDO") |
|
|
|
def owner_and_sudos(self): |
|
if not self.owner: |
|
db = self._init_db() |
|
self.owner = db.get_key("OWNER_ID") |
|
return [self.owner, *self.get_sudos()] |
|
|
|
@property |
|
def fullsudos(self): |
|
db = self._init_db() |
|
fsudos = db.get("FULLSUDO") |
|
if not self.owner: |
|
self.owner = db.get_key("OWNER_ID") |
|
if not fsudos: |
|
return [self.owner] |
|
fsudos = fsudos.split() |
|
fsudos.append(self.owner) |
|
return [int(_) for _ in fsudos] |
|
|
|
def is_sudo(self, id_): |
|
return bool(id_ in self.get_sudos()) |
|
|
|
|
|
SUDO_M = _SudoManager() |
|
owner_and_sudos = SUDO_M.owner_and_sudos |
|
sudoers = SUDO_M.get_sudos |
|
is_sudo = SUDO_M.is_sudo |
|
|
|
|
|
|
|
|
|
def append_or_update(load, func, name, arggs): |
|
if isinstance(load, list): |
|
return load.append(func) |
|
if isinstance(load, dict): |
|
if load.get(name): |
|
return load[name].append((func, arggs)) |
|
return load.update({name: [(func, arggs)]}) |
|
|