def create_root()

in redash/cli/users.py [0:0]


def create_root(email, name, google_auth=False, password=None, organization="default"):
    """
    Create root user.
    """
    print(
        "Creating root user (%s, %s) in organization %s..."
        % (email, name, organization)
    )
    print("Login with Google Auth: %r\n" % google_auth)

    user = models.User.query.filter(models.User.email == email).first()
    if user is not None:
        print("User [%s] is already exists." % email)
        exit(1)

    org_slug = organization
    org = models.Organization.query.filter(
        models.Organization.slug == org_slug
    ).first()
    if org is None:
        org = models.Organization(name=org_slug, slug=org_slug, settings={})

    admin_group = models.Group(
        name="admin",
        permissions=["admin", "super_admin"],
        org=org,
        type=models.Group.BUILTIN_GROUP,
    )
    default_group = models.Group(
        name="default",
        permissions=models.Group.DEFAULT_PERMISSIONS,
        org=org,
        type=models.Group.BUILTIN_GROUP,
    )

    models.db.session.add_all([org, admin_group, default_group])
    models.db.session.commit()

    user = models.User(
        org=org,
        email=email,
        name=name,
        group_ids=[admin_group.id, default_group.id],
    )
    if not google_auth:
        user.hash_password(password)

    try:
        models.db.session.add(user)
        models.db.session.commit()
    except Exception as e:
        print("Failed creating root user: %s" % e)
        exit(1)