Exemplo n.º 1
0
    def start_server(self,
                     port,
                     address,
                     *,
                     xsrf_protection=XSRF_PROTECTION_TOKEN):
        file_download_feature = FileDownloadFeature(
            UserFileStorage(b'some_secret'), test_utils.temp_folder)
        config = ServerConfig()
        config.port = port
        config.address = address
        config.xsrf_protection = xsrf_protection
        config.max_request_size_mb = 1

        authorizer = Authorizer(ANY_USER, [], [], EmptyGroupProvider())
        execution_service = MagicMock()
        execution_service.start_script.return_value = 3

        server.init(config,
                    None,
                    authorizer,
                    execution_service,
                    MagicMock(),
                    MagicMock(),
                    ConfigService(authorizer, self.conf_folder),
                    MagicMock(),
                    FileUploadFeature(UserFileStorage(b'cookie_secret'),
                                      test_utils.temp_folder),
                    file_download_feature,
                    'cookie_secret',
                    None,
                    self.conf_folder,
                    start_server=False)
        self.start_loop()
Exemplo n.º 2
0
    def setUp(self):
        super().setUp()
        test_utils.setup()

        authorizer = Authorizer([], ['admin_user'], EmptyGroupProvider())
        self.admin_user = User('admin_user', {})
        self.config_service = ConfigService(authorizer, test_utils.temp_folder)
    def setUp(self):
        test_utils.setup()

        self.authorizer = Authorizer([], [], ['power_user'], [],
                                     EmptyGroupProvider())
        self.logging_service = ExecutionLoggingService(test_utils.temp_folder,
                                                       LogNameCreator(),
                                                       self.authorizer)
Exemplo n.º 4
0
    def assertAllowed(self, user, allowed_users, expected_allowed, groups=None):
        group_provider = PreconfiguredGroupProvider(groups) if groups else EmptyGroupProvider()
        authorizer = Authorizer(allowed_users, [], [], group_provider)

        allowed = authorizer.is_allowed_in_app(user)
        if allowed != expected_allowed:
            self.fail('Expected ' + user + ' to be allowed=' + str(expected_allowed)
                      + ' for ' + str(allowed_users) + ' but was ' + str(allowed))
Exemplo n.º 5
0
    def assert_has_access(self, user, admin_users, history_access_users, expected_allowed, groups=None):
        group_provider = PreconfiguredGroupProvider(groups) if groups else EmptyGroupProvider()
        authorizer = Authorizer([], admin_users, history_access_users, group_provider)

        has_access = authorizer.has_full_history_access(user)
        if has_access != expected_allowed:
            self.fail('Expected ' + user + ' to has_access=' + str(expected_allowed)
                      + ' for ' + str(history_access_users) + ' but was ' + str(has_access))
Exemplo n.º 6
0
    def assertAllowed(self, user, allowed_users, expected_allowed):
        authorizer = Authorizer(allowed_users, [], EmptyGroupProvider())

        allowed = authorizer.is_allowed_in_app(user)
        if allowed != expected_allowed:
            self.fail('Expected ' + user + ' to be allowed=' +
                      str(expected_allowed) + ' for ' + str(allowed_users) +
                      ' but was ' + str(allowed))
Exemplo n.º 7
0
    def assertAdmin(self, user, admin_users, expected_allowed):
        authorizer = Authorizer([], admin_users, EmptyGroupProvider())

        allowed = authorizer.is_admin(user)
        if allowed != expected_allowed:
            self.fail('Expected ' + user + ' to be admin=' +
                      str(expected_allowed) + ' for ' + str(admin_users) +
                      ' but was ' + str(allowed))
Exemplo n.º 8
0
    def setUp(self):
        super().setUp()
        test_utils.setup()

        authorizer = Authorizer([], ['admin_user'], EmptyGroupProvider())
        self.admin_user = User('admin_user', {})
        self.config_service = ConfigService(authorizer, test_utils.temp_folder)

        for suffix in 'XYZ':
            _create_script_config_file('conf' + suffix, name='Conf ' + suffix)
Exemplo n.º 9
0
    def setUp(self):
        test_utils.setup()

        executor._process_creator = _MockProcessWrapper

        authorizer = Authorizer([], [], [], EmptyGroupProvider())
        self.logging_service = ExecutionLoggingService(test_utils.temp_folder, LogNameCreator(), authorizer)
        self.executor_service = ExecutionService(_IdGeneratorMock())

        self.controller = ExecutionLoggingController(self.executor_service, self.logging_service)
        self.controller.start()
Exemplo n.º 10
0
    def setUp(self):
        super().setUp()

        self.socket = None

        application = tornado.web.Application(
            [(r'/scripts/([^/]*)', ScriptConfigSocket)],
            login_url='/login.html',
            cookie_secret='12345')
        application.auth = TornadoAuth(None)
        application.authorizer = Authorizer(ANY_USER, [], [],
                                            EmptyGroupProvider())
        application.identification = IpBasedIdentification(
            TrustedIpValidator(['127.0.0.1']), None)
        application.config_service = ConfigService(application.authorizer,
                                                   test_utils.temp_folder)

        server = httpserver.HTTPServer(application)
        socket, self.port = testing.bind_unused_port()
        server.add_socket(socket)

        test_utils.setup()

        for dir in ['x', 'y', 'z']:
            for file in range(1, 4):
                filename = dir + str(file) + '.txt'
                test_utils.create_file(
                    os.path.join('test1_files', dir, filename))

        test1_files_path = os.path.join(test_utils.temp_folder, 'test1_files')
        test_utils.write_script_config(
            {
                'name':
                'Test script 1',
                'script_path':
                'ls',
                'parameters': [
                    test_utils.create_script_param_config('text 1',
                                                          required=True),
                    test_utils.create_script_param_config(
                        'list 1', type='list', allowed_values=['A', 'B', 'C']),
                    test_utils.create_script_param_config(
                        'file 1',
                        type='server_file',
                        file_dir=test1_files_path),
                    test_utils.create_script_param_config(
                        'list 2',
                        type='list',
                        values_script='ls ' + test1_files_path + '/${file 1}')
                ]
            }, 'test_script_1')
Exemplo n.º 11
0
    def setUp(self) -> None:
        super().setUp()
        test_utils.setup()

        authorizer = Authorizer([], ['admin_user', 'admin_non_editor'], [],
                                ['admin_user'], EmptyGroupProvider())
        self.admin_user = User('admin_user', {})
        self.config_service = ConfigService(authorizer, test_utils.temp_folder)

        for pair in [('script.py', b'123'), ('another.py', b'xyz'),
                     ('binary 1.bin', bytes.fromhex('300000004000000a')),
                     ('my_python', bytes.fromhex('7F454C46'))]:
            path = os.path.join(test_utils.temp_folder, pair[0])
            file_utils.write_file(path, pair[1], byte_content=True)
    def setUp(self):
        super().setUp()
        self.id_generator = _IdGeneratorMock()
        self.authorizer = Authorizer(ANY_USER, [], [], EmptyGroupProvider())
        self.exec_services = []
        self.processes = {}

        def create_process(executor, command, working_directory,
                           env_variables):
            wrapper = _MockProcessWrapper(executor, command, working_directory,
                                          env_variables)
            self.processes[self.get_last_id()] = wrapper
            return wrapper

        executor._process_creator = create_process
Exemplo n.º 13
0
    def start_server(self,
                     port,
                     address,
                     *,
                     xsrf_protection=XSRF_PROTECTION_TOKEN):
        file_download_feature = FileDownloadFeature(
            UserFileStorage(b'some_secret'), test_utils.temp_folder)
        config = ServerConfig()
        config.port = port
        config.address = address
        config.xsrf_protection = xsrf_protection
        config.max_request_size_mb = 1

        authorizer = Authorizer(ANY_USER, ['admin_user'], [], ['admin_user'],
                                EmptyGroupProvider())
        execution_service = MagicMock()
        execution_service.start_script.return_value = 3

        cookie_secret = b'cookie_secret'

        server.init(config,
                    MockAuthenticator(),
                    authorizer,
                    execution_service,
                    MagicMock(),
                    MagicMock(),
                    ConfigService(authorizer, self.conf_folder),
                    MagicMock(),
                    FileUploadFeature(UserFileStorage(cookie_secret),
                                      test_utils.temp_folder),
                    file_download_feature,
                    'cookie_secret',
                    None,
                    self.conf_folder,
                    start_server=False)
        self.start_loop()

        self._user_session = requests.Session()
        self._user_session.cookies['username'] = create_signed_value(cookie_secret, 'username', 'normal_user') \
            .decode('utf8')

        self._admin_session = requests.Session()
        self._admin_session.cookies['username'] = create_signed_value(cookie_secret, 'username', 'admin_user') \
            .decode('utf8')
    def setUp(self) -> None:
        super().setUp()

        def create_process(executor, command, working_directory,
                           env_variables):
            return _MockProcessWrapper(executor, command, working_directory,
                                       env_variables)

        executor._process_creator = create_process

        authorizer = Authorizer([ANY_USER], ['admin_user'], ['history_user'],
                                [], EmptyGroupProvider())
        self.executor_service = ExecutionService(authorizer,
                                                 _IdGeneratorMock())

        self.execution_id = _start(self.executor_service,
                                   self.owner_user.user_id)

        self.script_cleaned = False
Exemplo n.º 15
0
    def start_server(self, port, address):
        file_download_feature = FileDownloadFeature(
            UserFileStorage(b'some_secret'), test_utils.temp_folder)
        config = ServerConfig()
        config.port = port
        config.address = address

        authorizer = Authorizer(ANY_USER, [], [], EmptyGroupProvider())
        server.init(config,
                    None,
                    authorizer,
                    None,
                    None,
                    ConfigService(authorizer, self.conf_folder),
                    None,
                    None,
                    file_download_feature,
                    'cookie_secret',
                    None,
                    start_server=False)
        self.start_loop()