Ejemplo n.º 1
0
def pick_commands():
    assert_user_signed_in()

    checkbox_prefix = 'checkbox_'
    checked = {}
    error = None
    if request.method == 'POST':
        try:
            params = get_params(request.form)

            user = get_current_user()
            for k in params.iterkeys():
                if k.startswith(checkbox_prefix):
                    command = builtin_commands.get(k[len(checkbox_prefix):])
                    if command != None:
                        checked[command.name] = True
            for k in sorted(checked.keys()):
                user.commands.add(builtin_commands.get(k))
            user.put()
            return redirect(COMMANDS)
        except ParamException as e:
            error = e.message

    return render(
        'pick_commands.html',
        builtin_command_groups=builtin_command_groups,
        checkbox_prefix=checkbox_prefix,
        checked=checked,
        error=error,
        csrf_token=get_csrf_token(),
    )
Ejemplo n.º 2
0
    def test_assert_user_signed_in(self):
        self.user_key_exists()

        utils.assert_user_signed_in()

        self.no_user_key()

        with pytest.raises(utils.RedirectException):
            utils.assert_user_signed_in()
Ejemplo n.º 3
0
def set_default_command():
    assert_user_signed_in()

    params = get_params(request.form)
    default_command = params.get('default_command')

    user = get_current_user()
    user.setDefaultCommand(default_command)
    user.put()

    return redirect(COMMANDS)
Ejemplo n.º 4
0
def delete_command():
    assert_user_signed_in()

    params = get_params(request.form)

    user = get_current_user()
    command = user.commands.get(params.get('delete'))
    if command != None:
        user.commands.remove(command.name)
        user.put()

    return redirect(COMMANDS)
Ejemplo n.º 5
0
def edit_command(command_name=None):
    assert_user_signed_in()

    if command_name == None:
        return redirect(NEW_COMMAND_ONLY)

    user = get_current_user()
    command = user.commands.get(command_name)
    if command == None:
        return redirect(NEW_COMMAND_ONLY + command_name)

    params = None
    if request.method == 'POST':
        # remove command, it might be renamed
        user.commands.remove(command.name)
        params = get_params(request.form)
        try:
            save_command(**params)
            return redirect(COMMANDS)
        except ParamException as e:
            params['error'] = e.message
            # add the command back, some other code might use it
            # before response is finalized
            user.commands.add(command)
    else:
        params = {
            'name': command.name,
            'description': command.description,
            'url_pattern': command.url_pattern,
            'default_url': command.default_url,
        }

    params['action'] = EDIT_COMMAND_ONLY + command_name
    params['original_command'] = command_name
    params['csrf_token'] = get_csrf_token()
    params['modifiers'] = modifiers

    return render('new_command.html', **params)
Ejemplo n.º 6
0
def new_command(command_name=None):
    assert_user_signed_in()

    params = {}
    if command_name != None:
        user = get_current_user()
        if user.commands.get(command_name) != None:
            return redirect(EDIT_COMMAND_ONLY + command_name)
        params['name'] = command_name

    if request.method == 'POST':
        params = get_params(request.form)
        try:
            save_command(**params)
            return redirect(COMMANDS)
        except ParamException as e:
            params['error'] = e.message

    params['action'] = NEW_COMMAND_ONLY
    params['csrf_token'] = get_csrf_token()
    params['modifiers'] = modifiers

    return render('new_command.html', **params)
Ejemplo n.º 7
0
def sign_out():
    assert_user_signed_in()

    set_current_user_key(None)
    return redirect(HOME)