Hello, We're evaluating Authzed for our Permissio...
# spicedb
f
Hello, We're evaluating Authzed for our Permissions portal (Golang) at telecom26.ch. A key requirement is listing all permissions a given user may have. It appears Authzed's API is optimized for specific permission checks ( subject-permission-resource relationships.), not enumerating all potential user permissions. 'LookupResources' seems the current workaround, requiring us to maintain and query a list of all possible permissions per resource For example:
Copy code
[...]
// Define the resource types and permissions you want to check
    resourcePermissions := map[string][]string{
        "telecom26_boss/document":    {"view", "edit", "manage"},
        "telecom26_boss/account":     {"view", "manage"},
        "telecom26_boss/billing_group": {"view", "manage"},
    }

    // Iterate over the resource types and permissions to find the resources Alice has permissions on
    for resourceType, permissions := range resourcePermissions {
        for _, permission := range permissions {
            // Use LookupResources to find all resources of this type that Alice has the permission on
            response, err := client.LookupResources(context.TODO(), &v1.LookupResourcesRequest{
                ResourceObjectType: resourceType,
                Permission:         permission,
                Subject:            subject,
            })
            if err != nil {
                log.Printf("Error looking up resources for permission %s on %s: %v", permission, resourceType, err)
                continue
            }

            // Print out the resources Alice has this permission on
            for _, resourceID := range response.ResourceIds {
                fmt.Printf("Alice has %s permission on %s:%s\n", permission, resourceType, resourceID)
            }
        }
    }
Performance-wise, what's the impact of this approach? Is there a more efficient way to retrieve all permissions for a given entity? Thank you for your assistance. Best regards, Felix
2 Views