09-28-2021 07:17 AM
Hi All,
I was just wondering if anyone know how to get an sql query to return all users and their emails i have a query that shows all users just nee to edit it to show all email address also.
SELECT n.id, n.uuid, p1.string_value AS "Username" FROM alf_node AS n, alf_qname AS q, alf_node_properties AS p1, alf_node_properties AS p2 WHERE n.type_qname_id=q.id AND n.id=p1.node_id AND p1.node_id=p2.node_id AND p1.string_value!='' AND (( q.local_name='person' AND p1.qname_id IN (SELECT id FROM alf_qname WHERE local_name='userName') ) OR ( q.local_name='user' AND p1.qname_id IN (SELECT id FROM alf_qname WHERE local_name='username') )) AND p2.qname_id IN (SELECT id FROM alf_qname WHERE local_name='enabled') ORDER BY p1.string_value;
09-28-2021 11:14 AM
Why don't you use the REST Apis:
V1 rest api: http://localhost:8080/alfresco/api/people
V2 rest api: https://docs.alfresco.com/content-services/6.2/develop/rest-api-guide/people-groups/
GET - http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/people
$ curl -X GET -H 'Accept: application/json' -H 'Authorization: Basic VElDS0VUXzA4ZWI3ZTJlMmMxNzk2NGNhNTFmMGYzMzE4NmNjMmZjOWQ1NmQ1OTM=' 'http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/people' | jq % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1686 100 1686 0 0 4052 0 --:--:-- --:--:-- --:--:-- 4052 { "list": { "pagination": { "count": 4, "hasMoreItems": false, "totalItems": 4, "skipCount": 0, "maxItems": 100 }, "entries": [ { "entry": { "lastName": "Beecher", "userStatus": "Helping to design the look and feel of the new web site", "jobTitle": "Graphic Designer", "statusUpdatedAt": "2011-02-15T20:20:13.432+0000", "mobile": "0112211001100", "emailNotificationsEnabled": true, "description": "Alice is a demo user for the sample Alfresco Team site.", "telephone": "0112211001100", "enabled": false, "firstName": "Alice", "skypeId": "abeecher", "avatarId": "198500fc-1e99-4f5f-8926-248cea433366", "location": "Tilbury, UK", "company": { "organization": "Moresby, Garland and Wedge", "address1": "200 Butterwick Street", "address2": "Tilbury", "address3": "UK", "postcode": "ALF1 SAM1" }, "id": "abeecher", "email": "abeecher@example.com" } }, { "entry": { "firstName": "Administrator", "emailNotificationsEnabled": true, "company": {}, "id": "admin", "enabled": true, "email": "admin@alfresco.com" } }, { "entry": { "firstName": "Guest", "emailNotificationsEnabled": true, "company": {}, "id": "guest", "enabled": false } }, { "entry": { "lastName": "Jackson", "userStatus": "Working on a new web design for the corporate site", "jobTitle": "Web Site Manager", "statusUpdatedAt": "2011-02-15T20:13:09.649+0000", "mobile": "012211331100", "emailNotificationsEnabled": true, "description": "Mike is a demo user for the sample Alfresco Team site.", "telephone": "012211331100", "enabled": false, "firstName": "Mike", "skypeId": "mjackson", "avatarId": "3fbde500-298b-4e80-ae50-e65a5cbc2c4d", "location": "Threepwood, UK", "company": { "organization": "Green Energy", "address1": "100 Cavendish Street", "address2": "Threepwood", "address3": "UK", "postcode": "ALF1 SAM1" }, "id": "mjackson", "email": "mjackson@example.com" } } ] } }
09-30-2021 04:54 AM
Hi:
Just check the following projects, they are using rest api (v1):
https://github.com/ecm4u/alfresco-shell-tools/blob/master/bin/alfListUsers.sh
or this:
https://github.com/zylklab/alfresco-export-scripts#getpeoplesh
Regards.
--C.
10-01-2021 02:44 PM
If you really need that as database sql query this should do the job:
SELECT n.id AS node_id , concat(s.protocol,'://',s.identifier,'/', n.uuid) AS node_ref , np1.string_value AS username , np2.string_value AS email FROM alf_node n JOIN alf_store s ON (n.store_id=s.id) -- filter on type person JOIN alf_qname qn ON (n.type_qname_id=qn.id AND qn.local_name='person' AND ns_id=(SELECT id FROM alf_namespace WHERE uri='http://www.alfresco.org/model/content/1.0') ) -- join property userName left JOIN alf_node_properties np1 ON (n.id=np1.node_id AND np1.qname_id =(SELECT id FROM alf_qname WHERE local_name='userName' AND ns_id=(SELECT id FROM alf_namespace WHERE uri='http://www.alfresco.org/model/content/1.0') ) ) -- join property email left JOIN alf_node_properties np2 ON (n.id=np2.node_id AND np2.qname_id =(SELECT id FROM alf_qname WHERE local_name='email' AND ns_id=(SELECT id FROM alf_namespace WHERE uri='http://www.alfresco.org/model/content/1.0') ) )
ORDER BY np1.string_value;
Explore our Alfresco products with the links below. Use labels to filter content by product module.