วันจันทร์ที่ 21 ตุลาคม พ.ศ. 2556

How to add user to Alfresco Sites without invite

Share it Please
โดยปกติแล้วเวลาเราจะ Add Users เข้าไปใน Sites ของ Alfresco นั้นเราจะใช้วิธีการ Invite บุคคลนั้นๆ ผ่านเมนู Invite จากนั้นบุคคลนั้นต้อง Accept Invitation ถึงจะเข้าไปอยู่ใน Site ได้ 

ปัญหาคือบางกรณีเราต้องการทำ Pre Invite Users ให้เรียบร้อยก่อนที่จะเริ่มใช้งานจริง ซึ่งสามารถทำได้ผ่าน REST API ของ Alfresco ครับโดย API ที่เราจะใช้งานคือ Membership API http://wiki.alfresco.com/wiki/Repository_RESTful_API_Reference#Membership

ขั้นแรกเราต้องมี REST Client ก่อนครับ ในส่วนนี้จะใช้ตัวไหนก็ได้นะครับ แต่ผมแนะนำให้เป็น Postman ครับ (ความชอบส่วนตัว) http://www.getpostman.com/

การ Add member สามารถทำได้ผ่าน POST Method ครับโดยรายระเอียดของ Membership POST Method มีดังนี้

Adds a new membership to the site.
POST /alfresco/service/api/sites/{shortname}/memberships
Requirements:
  • Default Format: json
  • Authentication: user
  • Transaction: required
  • Format Style: any
Definition:
  • Id: org/alfresco/repository/site/membership/memberships.post
  • Description: classpath:alfresco/templates/webscripts/org/alfresco/repository/site/membership/memberships.post.desc.xml

ซึ่งรายละเอียดได้ได้บอก JSON Format เรามา ดังนั้นผมจึงเข้าไปดู Code ว่า Format ที่จะใช้งานเป็นอย่างไร  ซึ่งสรุปได้ดังนี้
  1. role : กำหนดเป็น SiteConsumer, SiteContributor, .....
  2. member ที่จะ Add เข้าไปใน Site (person หรือ group)
    1. person : กำหนดเป็นชื่อ userName ของบุคคลที่จะ Add เข้าไปใน Site
    2. group : กำหนดเป็น groupId โดยต้องมี GROUP Prefix ด้วย
Example


จากตัวอย่างเป็นการ Add User tantai เข้าไปที่ site other โดยให้สิทธิ์เป็น SiteContributor สังเกตว่าผมใส่ Basic Authentication และ Content-Type ไว้เรียบร้อยแล้ว โดยเมื่อกด Send Request แล้วสำเร็จ จะได้ผลลัพธ์คือ


เท่านี้เราก็สามารถ Add Member เข้าไปใน Site ได้แล้วครับ แต่ว่าจะทำได้ทีละคน ดังนั้นเราอาจใช้ Python Script หรืออะไรก็ตามทำ loop เพื่อ Add Member ทีละเยอะๆ ได้ครับ

Blogroll

About