Beispiel #1
0
def datasets_access(auth, project_id, dataset_id, role='READER', emails=[], groups=[], views=[]):

  if emails or groups or views:
    access = API_BigQuery(auth).datasets().get(projectId=project_id, datasetId=dataset_id).execute()["access"]

    # if emails
    for email in emails:
      access.append({
        "userByEmail": email,
        "role": role,
      })

    # if groups
    for group in groups:
      access.append({
        "groupByEmail": group,
        "role": role,
      })

    for view in views:
      access.append({
        "view": {
          "projectId": project_id,
          "datasetId": view['dataset'],
          "tableId": view['view']
        }
      })

    API_BigQuery(auth).datasets().patch(projectId=project_id, datasetId=dataset_id, body={'access': access}).execute()
Beispiel #2
0
def datasets_access(config,
                    auth,
                    project_id,
                    dataset_id,
                    role='READER',
                    emails=[],
                    groups=[],
                    views=[]):

    if emails or groups or views:
        access = API_BigQuery(config, auth).datasets().get(
            projectId=project_id, datasetId=dataset_id).execute()['access']

        # if emails
        for email in emails:
            access.append({
                'userByEmail': email,
                'role': role,
            })

        # if groups
        for group in groups:
            access.append({
                'groupByEmail': group,
                'role': role,
            })

        for view in views:
            access.append({
                'view': {
                    'projectId': project_id,
                    'datasetId': view['dataset'],
                    'tableId': view['view']
                }
            })

        API_BigQuery(config, auth).datasets().patch(projectId=project_id,
                                                    datasetId=dataset_id,
                                                    body={
                                                        'access': access
                                                    }).execute()