Source code for vulyk.cli.admin
# -*- coding: utf-8 -*-
"""Package contains CLI tools implementation related to admins"""
from click import echo
from vulyk.models.user import User
[docs]def list_admin() -> None:
"""
Outputs a list of emails of administrators.
"""
admin_users = list(User.objects(admin=True).scalar('email'))
if admin_users:
echo('Allowed admins are')
for email in admin_users:
echo('- %s' % email)
else:
echo('No admins found')
users = list(User.objects(admin=False).scalar('email'))
if users:
echo('Rest of users are:')
for email in users:
echo('- %s' % email)
[docs]def toggle_admin(email, state) -> None:
"""
Toggles admin state of given user.
:param email: email address.
:type email: str
:param state: State we want to set.
:type state: bool
"""
users = User.objects.filter(email=email)
if users.count() == 0:
echo('User %s does not exists' % email)
for user in users:
user.admin = state
user.save()
echo('Done')