Resource permissions¶
Permissions can be set on resources, files are the main type of resource. Permissions can be set on individual resources, a list of resources, all resources in a folder, or all resources in a dataset.
Add permissions to a dataset¶
Recursively set permissions on all resources in a dataset.
from crux import Crux
conn = Crux()
dataset = conn.get_dataset(id="A_DATASET_ID")
added = dataset.add_permission(
identity_id="_subscribed_",
permission="Read"
)
if added:
print("Permission applied")
Add permissions to a list of resources¶
Using resource paths:
from crux import Crux
conn = Crux()
dataset = conn.get_dataset(id="A_DATASET_ID"))
added = dataset.add_permission(
identity_id="_subscribed_",
permission="Read",
resource_paths=[
"/path/to/file/in/folder/file1.csv",
"/path/to/another/file2.csv",
]
)
if added:
print("Permission applied")
Using Resource
/File
objects:
from crux import Crux
conn = Crux()
dataset = conn.get_dataset(id="A_DATASET_ID")
file = dataset.get_file(path="/path/to/file/in/folder/file1.csv")
file2 = dataset.get_file(path="/path/to/another/file2.csv")
added = dataset.add_permission(
identity_id="_subscribed_",
permission="Read",
resource_objects=[file, file2]
)
if added:
print("Permission applied")
Using resource IDs:
from crux import Crux
conn = Crux()
dataset = conn.get_dataset(id="A_DATASET_ID")
file = dataset.get_file(path="/path/to/file/in/folder/file1.csv")
file2 = dataset.get_file(path="/path/to/another/file2.csv")
added = dataset.add_permission(
identity_id="_subscribed_",
permission="Read",
resource_ids=[filet.id, file2.id]
)
if added:
print("Permission applied")
Add permissions to folder recursively¶
Add permissions recursively to all resources in a folder, using a Folder
object.
from crux import Crux
conn = Crux()
dataset = conn.get_dataset(id="A_DATASET_ID")
folder = dataset.get_folder(path="/some/folder")
added = folder.add_permission(
identity_id="_subscribed_",
permission="Read",
recursive=True
)
if added:
print("Permission recursively applied to the folder")
Apply permissions to single resource¶
Add permissions to a single resource, using a File
object.
from crux import Crux
conn = Crux()
dataset = conn.get_dataset(id="A_DATASET_ID")
file = dataset.get_file(path="/path/to/file.csv")
permission = file.add_permission(
identity_id="_subscribed_",
permission="Read"
)
print(permission.target_id, permission.identity_id, permission.permission_name)
List resource permissions¶
List all permissions on a resource.
from crux import Crux
conn = Crux()
dataset = conn.get_dataset(id="A_DATASET_ID")
file = dataset.get_file(path="/path/to/file.csv")
permission_list = file.list_permissions()
for permission in permission_list:
print(permission.target_id, permission.identity_id, permission.permission_name)