def post(self, resource_path): # note: should check parent permissions, not org permissions, but no need to fix since we'll delete this code org_name = resource_path.split('/')[0] org_resource = find_resource('/' + org_name) if not org_resource: abort(403) if access_level(org_resource.query_permissions()) < ACCESS_LEVEL_WRITE: abort(403) # get attributes of new file args = request.values if 'contents' in args: data = base64.b64decode(args['contents']) # fix(clean): remove this case else: data = base64.b64decode(args.get('data', '')) if 'creation_timestamp' in args: creation_timestamp = parse_json_datetime(args['creation_timestamp']) else: creation_timestamp = datetime.datetime.utcnow() if 'modification_timestamp' in args: modification_timestamp = parse_json_datetime(args['modification_timestamp']) else: modification_timestamp = creation_timestamp # create the file or folder r = _create_file(resource_path, creation_timestamp, modification_timestamp, data) return {'status': 'ok', 'id': r.id}
def create_flow_user(email, username, password, fullname, is_sso, is_admin): # # Check if user exists # user = User.query.filter(User.user_name == username).first() if user is not None: print("User %s exists." % (username)) return user_type = User.STANDARD_USER if is_admin: user_type = User.SYSTEM_ADMIN # # Create user # print("Creating user %s" % (username)) user_id = create_user(email, username, password, fullname, user_type) # # Add user to flow organization # print("Creating organization user.") org_user = OrganizationUser() org_user.organization_id = find_resource('/testing').id org_user.user_id = user_id org_user.is_admin = is_admin db.session.add(org_user) db.session.commit() # # Create a folder for this user to store their programs # and a folder for recorded datasets (sequences) # folders = [ 'testing/student-folders/%s/programs' % (username), 'testing/student-folders/%s/datasets' % (username) ] for folder in folders: print("Creating student folder %s." % (folder)) _create_folders(folder) # # Add some user metadata # path = '%s/%s/%s/userinfo' % ('testing', 'student-folders', username) content = json.dumps({'is_sso': is_sso}) now = datetime.datetime.now() resource = _create_file(path, now, now, content) # print('Created flow user: %s' % (email)) user = User.query.filter(User.id == user_id).first() return user
def _save(): if type == 'programmeta' or type == 'datasetmeta': contentmetadata = request.values.get('metadata').encode('utf-8') now = datetime.datetime.now() pathm = '%s/%s' % (path, 'metadata') resourcem = _create_file(pathm, now, now, contentmetadata) return json.dumps({ 'success': True, 'message': 'Saved file metadata %s.' % (pathm) }) else: content = request.values.get('content').encode('utf-8') contentmetadata = request.values.get('metadata').encode('utf-8') now = datetime.datetime.now() _create_folders(path) pathp = '%s/%s' % (path, 'program') pathm = '%s/%s' % (path, 'metadata') resourcep = _create_file(pathp, now, now, content) resourcem = _create_file(pathm, now, now, contentmetadata) return json.dumps({ 'success': True, 'message': 'Saved file %s.' % (filename) })