Sign up to take part
Registered users can ask their own questions, contribute to discussions, and be part of the Community!
Registered users can ask their own questions, contribute to discussions, and be part of the Community!
Hi All,
I have created a script to modify the project seeting, and have scheduled it as a scenario to run daily but the list keeps on getting append by the same group name on daily basis. can you please suggest how to break this. -- please find the image attached for reference.
below is the script which i am using ---
import dataiku
client = dataiku.api_client()
for project_key in PROJECT_KEYS:
project = client.get_project(project_key)
project_permissions = project.get_permissions()
project_permissions['permissions'].append({'group':'Test1','admin': True})
project_permissions['permissions'].append({'group':'Test2','readProjectContent': True})
project_permissions['permissions'].append({'group':'Test3','readProjectContent': True})
project.set_permissions(project_permissions)
Operating system used: linux
Operating system used: linux
Hi @Srkanoje ,
The API call will not check if the values already exist you will need to do this yourself something like this:
import dataiku
client = dataiku.api_client()
for project_key in PROJECT_KEYS:
project = client.get_project(project_key)
project_permissions = project.get_permissions()
# Define permissions to add
permissions_to_add = [
{'group': 'Test1', 'admin': True},
{'group': 'Test2', 'readProjectContent': True},
{'group': 'Test3', 'readProjectContent': True}
]
# Check if permissions already exist, if not append
for permission in permissions_to_add:
if permission not in project_permissions['permissions']:
project_permissions['permissions'].append(permission)
project.set_permissions(project_permissions)
@AlexT thank you for helping this works
@AlexT is there a way to delete the same permission
yes, you can same approach to delete a list of permissions:
import dataiku
client = dataiku.api_client()
for project_key in PROJECT_KEYS:
project = client.get_project(project_key)
project_permissions = project.get_permissions()
# Define permissions to delete
permissions_to_delete = [
{'group': 'Test1', 'admin': True},
{'group': 'Test2', 'readProjectContent': True},
{'group': 'Test3', 'readProjectContent': True}
]
# Check if permissions exist, if yes, remove them
updated_permissions = []
for permission in project_permissions['permissions']:
if permission not in permissions_to_delete:
updated_permissions.append(permission)
project_permissions['permissions'] = updated_permissions
project.set_permissions(project_permissions)