Example #1
0
def save_file(file_name, content, directory=ATTACHMENT_DIRECTORY):
    info('save_file: file_name %s', file_name)
    mode = 0o777
    os.makedirs(UPLOAD_DIRECTORY, mode, True)
    os.makedirs(UPLOAD_DIRECTORY + '/' + directory, mode, True)
    file_path = os.path.join(UPLOAD_DIRECTORY + '/' + directory, file_name)
    with open(file_path, "w") as file:
        file.write(str(content))
    return file_path
 def download(self, path: str):
     check_resource_extension(path)
     path = UPLOAD_ABS_DIRECTORY + path
     info('server.download: path %s', path)
     if not os.path.isfile(path):
         raise StorageBadRequest('resource does not exist for path ' + path,
                                 STORAGE_0119)
     attachment_file_name = extract_resource_name(path)
     return send_file(path, None, True, attachment_file_name)
Example #3
0
def get_health():
    returned_server_time = convert_date_to_string(now())
    query = '''select now() as current_time from dual'''
    returned_database_time = first(text(query))['current_time']
    info("server_time: %s; database_time: %s", returned_server_time,
         returned_database_time)
    processed = int(round(time.time() * 1000)) - g.requested_ms
    json = empty_json_object()
    json['processed_time_ms'] = processed
    json['returned_server_time'] = returned_server_time
    json['returned_database_time'] = returned_database_time
    return make_json_response(json, 200)
 def create_directories(path: str):
     info('server.create_directories: path %s', path)
     path_parts = split_path(path)
     resource_name = extract_resource_name(path)
     info('server.create_directories: resource_name %s', resource_name)
     os.makedirs(UPLOAD_ABS_DIRECTORY, DEFAULT_FILE_PERMISSIONS, True)
     directory_path = ''
     for path_part in path_parts:
         if resource_name not in path_part and '/' not in path_part:
             directory_path += '/' + path_part
             absolute_path = UPLOAD_ABS_DIRECTORY + directory_path
             os.makedirs(absolute_path, DEFAULT_FILE_PERMISSIONS, True)
     return directory_path
Example #5
0
def verify_auth_token(token,
                      ip='0.0.0.0',
                      path='/',
                      grant='get_all',
                      raise_error=True):
    token_checked = ("token_checked" in g and g.token_checked)
    if token_checked:
        return True

    if '127.0.0.1' in ip or '0.0.0.0' in ip:
        info('Permission granted. System request.')
        g.token_checked = True
        return True

    try:
        payload = decode_token(token)
        if "login" in payload:
            g.login = payload['login']
        if "id" in payload:
            g.user_id = payload['id']
        if "role" in payload:
            g.user_role = payload['role']
    except Exception as e:
        exception(e)
        if raise_error:
            raise e
        else:
            return False

    permission = check_grants(payload['role'], path, grant)
    if permission is None:
        error('Permission denied. No rights for ' + path)
        if raise_error:
            raise Unauthorized('Permission denied. No rights for ' + path)
        else:
            return False

    g.token_checked = True
    return True
 def upload(self, path: str, data):
     check_resource_extension(path)
     info('server.upload: path %s', path)
     self.create_directories(path)
     data.save(UPLOAD_ABS_DIRECTORY + path)
     return success(path, 200, 'Success', REST_GUIDE + 'resources')