07-27-2023 05:11 AM
The easiest thing in the world I want to retrieve the list of members of a site and filter them by role with the official rest api.
I'm using the alfresco community version 7.4.0 and postman with a basic authentication.
Here the get call whitout the where clause (is working):
https://www.mysite.com/alfresco/api/-default-/public/alfresco/versions/1/sites/mysite01/members
here the repsonse:
{
    "list": {
        "pagination": {
            "count": 6,
            "hasMoreItems": false,
            "totalItems": 6,
            "skipCount": 0,
            "maxItems": 100
        },
        "entries": [
            {
                "entry": {
                    "role": "SiteManager",
                    "person": {
                        "firstName": "test1",
                        "lastName": "",
                        "capabilities": {
                            "isGuest": false,
                            "isAdmin": false,
                            "isMutable": true
                        },
                        "displayName": "test1",
                        "emailNotificationsEnabled": true,
                        "company": {},
                        "id": "test1username",
                        "enabled": true,
                        "email": "test1@gmail.com"
                    },
                    "id": "test1username",
                    "isMemberOfGroup": false
                }
            },
            {
                "entry": {
                    "role": "SiteCollaborator",
                    "person": {
                        "firstName": "test2",
                        "lastName": "",
                        "capabilities": {
                            "isGuest": false,
                            "isAdmin": false,
                            "isMutable": true
                        },
                        "displayName": "test2",
                        "emailNotificationsEnabled": true,
                        "company": {},
                        "id": "test2username",
                        "enabled": true,
                        "email": "test2@gmail.com"
                    },
                    "id": "test2username",
                    "isMemberOfGroup": false
                }
            },
            {
                "entry": {
                    "role": "SiteConsumer",
                    "person": {
                        "aspectNames": [
                            ...
                        ],
                        "firstName": "test3",
                        "lastName": "",
                        "capabilities": {
                            "isGuest": false,
                            "isAdmin": true,
                            "isMutable": true
                        },
                        "displayName": "test3",
                        "emailNotificationsEnabled": true,
                        "company": {},
                        "id": "test3username",
                        "enabled": true,
                        "email": "test3@gmail.com",
                        "properties": {
                           ...
                        }
                    },
                    "id": "test3username",
                    "isMemberOfGroup": false
                }
            }
        ]
    }
    ...
}Here the get call whit the "where" clause, for filter the response only fot he manager, but it doen't filter (is not working):
https://www.mysite.com/alfresco/api/-default-/public/alfresco/versions/1/sites/mysite01/members?where=(role='SiteManager')
but it doesn't filter....WHY ???? and it give me this error...
{
    "error": {
        "errorKey": "framework.exception.InvalidProperty",
        "statusCode": 400,
        "briefSummary": "06270120 La proprietà \"role\" con valore \"SiteManager\" non è valida per il confronto EQUALS",
        "stackTrace": "Per motivi di sicurezza l'analisi dello stack non viene più visualizzata, ma viene mantenuta la proprietà per le versioni precedenti",
        "descriptionURL": "https://api-explorer.alfresco.com"
    }
}Am I using the "where" variable in the wrong way ? should I use the "fields" parameter instead ?
08-30-2023 05:21 AM
The only parameter accepted for the WHERE clause is "isMemberOfGroup":
You can apply the same workaround described in the other thread. Use the Search API instead:
curl --location 'http://localhost:8080/alfresco/api/-default-/public/search/versions/1/search' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data '{
  "query": {
    "query": "PATH:\"/sys:system/sys:authorities/cm:GROUP_site_swsdp_SiteManager//*\""
  }
}'
					
				
			
			
				08-30-2023 03:28 AM
Forgive me @angelborroy I generally don't ping people directly, but I would like to get answer on this question.
08-30-2023 05:21 AM
The only parameter accepted for the WHERE clause is "isMemberOfGroup":
You can apply the same workaround described in the other thread. Use the Search API instead:
curl --location 'http://localhost:8080/alfresco/api/-default-/public/search/versions/1/search' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic YWRtaW46YWRtaW4=' \
--data '{
  "query": {
    "query": "PATH:\"/sys:system/sys:authorities/cm:GROUP_site_swsdp_SiteManager//*\""
  }
}'
					
				
			
			
				08-30-2023 08:44 AM
thank you and sorry for the trouble
 
					
				
				
			
		
Explore our Alfresco products with the links below. Use labels to filter content by product module.