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(), )
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()
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)
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)
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)
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)
def sign_out(): assert_user_signed_in() set_current_user_key(None) return redirect(HOME)