def delete_role(query): """ Delete a role. """ role = _query_to_role(query) if click.confirm(f'Are you sure you want to delete {role!r}?'): role_manager.delete(role, commit=True) click.echo(f'Successfully deleted {role!r}') else: click.echo('Cancelled.')
def delete_user(query): """ Delete a user. """ user = _query_to_user(query) if click.confirm(f'Are you sure you want to delete {user!r}?'): user_manager.delete(user, commit=True) click.echo(f'Successfully deleted {user!r}') else: click.echo('Cancelled.')
def create_role(name): """ Create a new role. """ role = role_manager.create(name=name) if click.confirm(f'Are you sure you want to create {role!r}?'): role_manager.save(role, commit=True) click.echo(f'Successfully created {role!r}') else: click.echo('Cancelled.')
def activate_user(query): """ Activate a user. """ user = _query_to_user(query) if click.confirm(f'Are you sure you want to activate {user!r}?'): user.active = True user_manager.save(user, commit=True) click.echo(f'Successfully activated {user!r}') else: click.echo('Cancelled.')
def set_password(query, password, send_email): """ Set a user's password. """ user = _query_to_user(query) if click.confirm(f'Are you sure you want to change {user!r}\'s password?'): security_service.change_password(user, password, send_email=send_email) user_manager.save(user, commit=True) click.echo(f'Successfully updated password for {user!r}') else: click.echo('Cancelled.')
def add_role_to_user(user, role): """ Add a role to a user. """ user = _query_to_user(user) role = _query_to_role(role) if click.confirm(f'Are you sure you want to add {role!r} to {user!r}?'): user.roles.append(role) user_manager.save(user, commit=True) click.echo(f'Successfully added {role!r} to {user!r}') else: click.echo('Cancelled.')
def remove_role_from_user(user, role): """ Remove a role from a user. """ user = _query_to_user(user) role = _query_to_role(role) if click.confirm( f'Are you sure you want to remove {role!r} from {user!r}?'): user.roles.remove(role) user_manager.save(user, commit=True) click.echo(f'Successfully removed {role!r} from {user!r}') else: click.echo('Cancelled.')
def confirm_user(query): """ Confirm a user account. """ user = _query_to_user(query) if click.confirm(f'Are you sure you want to confirm {user!r}?'): if security_service.confirm_user(user): click.echo(f'Successfully confirmed {user!r} at ' f'{user.confirmed_at.strftime("%Y-%m-%d %H:%M:%S%z")}') user_manager.save(user, commit=True) else: click.echo(f'{user!r} has already been confirmed.') else: click.echo('Cancelled.')
def project(dest, app_bundle, force, dev, admin, api, celery, graphene, mail, oauth, security, session, sqlalchemy, webpack): """ Create a new Flask Unchained project. """ if os.path.exists(dest) and os.listdir(dest) and not force: if not click.confirm( f'WARNING: Project directory {dest!r} exists and is ' f'not empty. It will be DELETED!!! Continue?'): click.echo(f'Exiting.') sys.exit(1) # build up a list of dependencies # IMPORTANT: keys here must match setup.py's `extra_requires` keys ctx = dict(dev=dev, admin=admin, api=api, celery=celery, graphene=graphene, mail=mail, oauth=oauth, security=security or oauth, session=security or session, sqlalchemy=security or sqlalchemy, webpack=webpack) ctx['requirements'] = [k for k, v in ctx.items() if v] # remaining ctx vars ctx['app_bundle_module_name'] = app_bundle # copy the project template into place copy_file_tree(PROJECT_TEMPLATE, dest, ctx, [(option, files) for option, files in [ ('api', ['app/serializers']), ('celery', ['app/tasks', 'celery.py']), ('graphene', ['app/graphql']), ('mail', ['templates/email']), ('security', [ 'app/models/role.py', 'app/models/user.py', 'db/fixtures/Role.yaml', 'db/fixtures/User.yaml' ]), ('webpack', ['assets', 'package.json', 'webpack']), ] if not ctx[option]]) click.echo(f'Successfully created a new project at: {dest}')
def create_user(email, password, active, confirmed_at, send_email): """ Create a new user. """ if confirmed_at == 'now': confirmed_at = security.datetime_factory() user = user_manager.create(email=email, password=password, active=active, confirmed_at=confirmed_at) if click.confirm(f'Are you sure you want to create {user!r}?'): security_service.register_user(user, allow_login=False, send_email=send_email) user_manager.save(user, commit=True) click.echo(f'Successfully created {user!r}') else: click.echo('Cancelled.')