[Plugin] auth_plain: Create admin user if installed and no users exist.
This commit is contained in:
parent
251648e9a4
commit
f9ac002b53
|
@ -9,10 +9,25 @@ import binascii
|
||||||
from werkzeug.exceptions import BadRequest, NotFound
|
from werkzeug.exceptions import BadRequest, NotFound
|
||||||
|
|
||||||
from flaschengeist.plugins import AuthPlugin
|
from flaschengeist.plugins import AuthPlugin
|
||||||
from flaschengeist.models.user import User
|
from flaschengeist.models.user import User, Role, Permission
|
||||||
|
from flaschengeist.database import db
|
||||||
|
from flaschengeist import logger
|
||||||
|
|
||||||
|
|
||||||
class AuthPlain(AuthPlugin):
|
class AuthPlain(AuthPlugin):
|
||||||
|
def post_install(self):
|
||||||
|
if User.query.first() is None:
|
||||||
|
logger.info("Installing admin user")
|
||||||
|
role = Role(name="Superuser", permissions=Permission.query.all())
|
||||||
|
admin = User(userid="admin", firstname="Admin", lastname="Admin", mail="", roles_=[role])
|
||||||
|
self.modify_user(admin, None, "admin")
|
||||||
|
db.session.add(admin)
|
||||||
|
db.session.commit()
|
||||||
|
logger.warning("New administrator user was added, please change the password or remove it before going into"
|
||||||
|
"production mode. Initial credentials:\n"
|
||||||
|
"name: admin\n"
|
||||||
|
"password: admin")
|
||||||
|
|
||||||
def login(self, user: User, password: str):
|
def login(self, user: User, password: str):
|
||||||
if user.has_attribute("password"):
|
if user.has_attribute("password"):
|
||||||
return AuthPlain._verify_password(user.get_attribute("password"), password)
|
return AuthPlain._verify_password(user.get_attribute("password"), password)
|
||||||
|
|
Loading…
Reference in New Issue