def setUp(self) -> None: self.app = create_app('testing') self.app_context = self.app.app_context() self.app_context.push() db.create_all() Role.insert_roles() self.client = self.app.test_client(use_cookies=True)
def setUp(self): self.app = create_app('testing') self.app_context = self.app.app_context() self.app_context.push() db.create_all() Role.insert_roles() self.client = self.app.test_client()
def deploy(): """Run deployment tasks.""" from flask_migrate import upgrade from apps.models import Role, User # migrate database to latest revision upgrade() # create user roles Role.insert_roles() # create self-follows for all users User.add_self_follows()
def test_group_user(): roles = ['FrontUser', 'Operator', 'Administrator', 'Super'] msg = {} for r in roles: role = Role(group=r) u = User() u.telephone = fake.phone_number() u.username = r + '-test' u.email = fake.ascii_free_email() u.password = '******' u.confirm = True u.realname = fake.name() with open('mxavatar.json', 'r') as f: avatar_list = json.load(f) u.avatar = choice(avatar_list) u.signature = fake.paragraph(nb_sentences=3, variable_nb_sentences=True) u.gender = GenderEnum(randint(1, 3)) u.join_time = fake.date_this_year(before_today=True, after_today=False) u.role = role db.session.add(u) msg[r] = u.telephone try: db.session.commit() except Exception as e: print(e) db.session.rollback() print('测试用户生成失败!') return print('测试用户生成成功!') print(msg)
def test_permission_user(): ps = [ 'LOGIN', 'VIEW_POST', 'PUBLISH_POST', 'PUBLISH_COMMENT', 'LOGIN_CMS', 'MANAGE_POST', 'MANAGE_COMMENTE', 'BOARDER', 'BANNER', 'FRONTUSER', 'CMSUSER', 'ADMINER' ] msg = {} for p in ps: permissions = Permission.ALL_PERMISSION - getattr(Permission, p) role = Role(name='FrontUser', permissions=permissions) u = User() u.telephone = fake.phone_number() u.username = '******' + p u.email = fake.ascii_free_email() u.password = '******' u.confirm = True u.realname = 'NOT-' + p with open('mxavatar.json', 'r') as f: avatar_list = json.load(f) u.avatar = choice(avatar_list) u.signature = fake.paragraph(nb_sentences=3, variable_nb_sentences=True) u.gender = GenderEnum(randint(1, 4)) u.join_time = fake.date_this_year(before_today=True, after_today=False) u.role = role db.session.add(u) msg[u.username] = u.telephone try: db.session.commit() except Exception: db.session.rollback() print('测试用户生成成功!') print(msg)
def front_user(count=10): fake = Faker(locale='zh_CN') n = 0 for i in range(count): u = User() u.telephone = fake.phone_number() u.username = fake.user_name() u.email = fake.ascii_free_email() u.password = '******' u.confirm = choice([True, False]) u.realname = fake.name() with open('mxavatar.json', 'r') as f: avatar_list = json.load(f) u.avatar = choice(avatar_list) u.signature = fake.paragraph(nb_sentences=3, variable_nb_sentences=True) u.gender = GenderEnum(randint(1, 4)) u.join_time = fake.date_this_year(before_today=True, after_today=False) role = Role() u.role = role db.session.add(u) try: db.session.commit() n += 1 except Exception: db.session.rollback() print('Front用户添加成功,共同添加%d个用户' % n)
def role_add(): form = RoleForm() if form.validate_on_submit(): data = form.data role = Role(name=data["name"], auths=",".join(map(lambda x: str(x), data["auths"]))) db.session.add(role) db.session.commit() flash("添加角色成功", "ok") return redirect(url_for("admin.role_add")) return render_template('admin/role_add.html', form=form)
def setUpClass(cls): # start Firefox try: cls.client = webdriver.Firefox() except: pass # skip these tests if the browser could not be started if cls.client: # create the application cls.app = create_app('testing') cls.app_context = cls.app.app_context() cls.app_context.push() # suppress logging to keep unittest output clean import logging logger = logging.getLogger('werkzeug') logger.setLevel("ERROR") # create the database and populate with some fake data db.create_all() Role.insert_roles() User.generate_fake(10) Post.generate_fake(10) # add an administrator user admin_role = Role.query.filter_by(permissions=0xff).first() admin = User(email='*****@*****.**', username='******', password='******', role=admin_role, confirmed=True) db.session.add(admin) db.session.commit() # start the Flask server in a thread threading.Thread(target=cls.app.run).start() # give the server a second to ensure it is up time.sleep(1)
def set_permission(): all_users = User.query.all() n = 0 for u in all_users: if not u.role: r = Role() u.role = r db.session.add(u) n += 1 try: db.session.commit() print('设置成功,%d个' % n) except Exception: db.session.rollback() print('设置失败')
def createSuperUser(): from apps.models import User, Role from apps.forms import checkEmail, checkUsername, checkPassword # 从数据库绑定admin id role_admin = Role.select(Role.id).where(Role.name == "admin").get().id if not role_admin: return ("必须先在Role表中创建管理员角色") email = click.prompt("请输入邮箱") checkEmail(email) name = click.prompt("请输入用户名") checkUsername(name) password = click.prompt("请输入密码", hide_input=True, confirmation_prompt=True) checkPassword(password) password = User.generalPassword(password) User.create(email=email, name=name, password=password, sex=User.sex.choices.unknown, role_id=role_admin, signature="I am super admin") print("成功创建超级管理员账户;%s" % name)
def initdb(): from apps.models import S, Role S.createAllTables() Role.initAdmin()
def __init__(self, user, *args, **kwargs): super(EditProfileAdminForm, self).__init__(*args, **kwargs) self.role.choices = [(role.id, role.name) for role in Role.get_role_name(Role.Role.name)] self.user = user