mirror of
https://github.com/apache/superset.git
synced 2026-04-07 18:35:15 +00:00
82 lines
2.7 KiB
Python
Executable File
82 lines
2.7 KiB
Python
Executable File
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
import logging
|
|
|
|
import click
|
|
from colorama import Fore
|
|
from flask import current_app
|
|
from flask.cli import with_appcontext
|
|
|
|
import superset.utils.database as database_utils
|
|
from superset import security_manager
|
|
from superset.utils.decorators import transaction
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@click.command()
|
|
@with_appcontext
|
|
@transaction()
|
|
def load_test_users() -> None:
|
|
"""
|
|
Loads admin, alpha, and gamma user for testing purposes
|
|
|
|
Syncs permissions for those users/roles
|
|
"""
|
|
print(Fore.GREEN + "Loading a set of users for unit tests")
|
|
|
|
if current_app.config["TESTING"]:
|
|
sm = security_manager
|
|
|
|
examples_db = database_utils.get_example_database()
|
|
|
|
examples_pv = sm.add_permission_view_menu("database_access", examples_db.perm)
|
|
|
|
sm.sync_role_definitions()
|
|
gamma_sqllab_role = sm.add_role("gamma_sqllab")
|
|
sm.add_permission_role(gamma_sqllab_role, examples_pv)
|
|
|
|
gamma_no_csv_role = sm.add_role("gamma_no_csv")
|
|
sm.add_permission_role(gamma_no_csv_role, examples_pv)
|
|
|
|
for role in ["Gamma", "sql_lab"]:
|
|
for perm in sm.find_role(role).permissions:
|
|
sm.add_permission_role(gamma_sqllab_role, perm)
|
|
|
|
if str(perm) != "can csv on Superset":
|
|
sm.add_permission_role(gamma_no_csv_role, perm)
|
|
|
|
users = (
|
|
("admin", "Admin"),
|
|
("gamma", "Gamma"),
|
|
("gamma2", "Gamma"),
|
|
("gamma_sqllab", "gamma_sqllab"),
|
|
("alpha", "Alpha"),
|
|
("gamma_no_csv", "gamma_no_csv"),
|
|
)
|
|
for username, role in users:
|
|
user = sm.find_user(username)
|
|
if not user:
|
|
sm.add_user(
|
|
username,
|
|
username,
|
|
"user",
|
|
username + "@fab.org",
|
|
sm.find_role(role),
|
|
password="general", # noqa: S106
|
|
)
|