コード例 #1
0
ファイル: roles.py プロジェクト: HeathNaylor/flask-unchained
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.')
コード例 #2
0
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.')
コード例 #3
0
ファイル: roles.py プロジェクト: HeathNaylor/flask-unchained
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.')
コード例 #4
0
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.')
コード例 #5
0
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.')
コード例 #6
0
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.')
コード例 #7
0
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.')
コード例 #8
0
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.')
コード例 #9
0
ファイル: new.py プロジェクト: chriamue/flask-unchained
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}')
コード例 #10
0
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.')