จากบทความการจัดการการเข้าถึงข้อมูลให้มีความปลอดภัยบน Alfresco นั้น เราจะสามารถกำหนดสิทธิ์การเข้าถึง Folder และ Content ต่างๆ ได้ โดยการเพิ่ม คลิกที่ Manage Permission ดังรูป

null

จากนั้นก็ทำการเพิ่ม Group หรือ User ที่จะกำหนดการใช้งานใน Folder หรือ Content ซึ่งการกำหนดสิทธิ์ต่างๆ เราจะกำหนดให้เป็น Role โดย Alfresco จะมี Role ให้เราได้เลือกใช้งานกันอยู่ทั้งหมด 5 Role ด้วยกันนะครับ ได้แก่ Editor, Consumer, Collaborator, Coordinator, Contributor ดังรูป

null

ตามปกติเรา Implement นั้น เราก็จะพยายามให้การกำหนด Role อยู่ในกลุ่มพวกนี้นะครับ แต่บางครั้ง Role ที่ Alfresco กำหนดมาให้ยังไม่เพียงพอต่อความต้องการ จำเป็นต้องมีการสร้าง Role ขึ้นมาเองนะครับ ซึ่ง Alfresco เปิดช่องให้เราทำได้อยู่แล้วนะครับ ดังนั้นมาเริ่มต้นสร้าง Custom Role กันเลยครับ
ทำการเปิด File ชื่อ PermissionDefinitions.xml นะครับ ซึ่งอยู่ที่ /tomcat/webapps/alfresco/WEB-INF/classes/alfresco/model/permissionDefinitions.xml ไฟล์นี้จะเป็นการเก็บ Config ต่างๆ ของ Permission Set, Permission Group, Permission Name ต่างๆ ดังรูปนะครับ

null

จะพบว่าในไฟล์ permissionDefinitions.xml จะเป็น file ที่มีโครงสร้างเหมือนกับไฟล์อื่นๆ ของ Alfresco นะครับ คือ ส่วนแรกจะเป็น Namespaces นะครับ โดยจะเป็นการ Import System Model (sys), Content Model (cm), Web Content Model (wcm)
ส่วนต่อมาจะเป็น permission set ซึ่งก็คือ Set ของชุด Permission Group ต่างๆ นั่นเอง โดยเริ่มจาก

PermissionSet type=”sys:base” จะเป็น PermissionSet พื้นฐานของ Alfresco นะครับ ประกอบด้วยPermissionGroup ดังนี้ครับ FullControl, Read, Write, Delete, AddChildren, Execute ซึ่งในแต่ละ PermissionGroup ก็จะประกอบไปด้วย Low level Permission group ที่แตกต่างกันไป

  • ReadProperties
  • ReadChildren
  • WriteProperties
  • ReadContent
  • WriteContent
  • ExecuteContent
  • DeleteNode
  • DeleteChildren
  • CreateChildren
  • LinkChildren
  • DeleteAssociations
  • ReadAssociations
  • CreateAssociations
  • ReadPermissions
  • ChangePermissions
  • Flatten

ถัดมาจะเป็น PermissionSet type=”cm:cmobject” จะเป็น PermissionSet ที่เราคุ้นตากันมากที่สุด ซึ่งจะเกี่ยวข้องกับการ กำหนดสิทธิ์ใน Content และ Folder โดยจะประกอบไปด้วย PermissionGroup ดังนี้ Administrator, Coordinator, Collaborator, Contributor, Editor, Consumer

ถัดมาจะเป็น PermissionSet type=”cm:cmcontent” จะประกอบไปด้วย Permission ที่เหมือนกับ cm:cmobject เพียงแต่จะ Scope ให้มีการ Apply ที่ content นั่นเอง

ถัดมาจะเป็น PermissionSet type=”cm:cmfolder” จะประกอบไปด้วย Permission ที่เหมือนกับ cm:cmobject เพียงแต่จะ Scope ให้มีการ Apply ที่ folder นั่นเอง

นอกจาก Permission ที่กล่าวมาข้างต้นแล้ว ยังมี PermissionSet อื่นๆ อีก ซึ่งในโอกาสต่อๆไป จะได้นำเสนอนะครับ

ซึ่งโดยปกติแล้วเรามักจะใช้ Permission Role ที่ Alfresco ได้จัดเตรียมไว้ให้นะครับ เพียงแต่บางครั้งอาจจะมีความต้องการ Role บางอย่างที่เพิ่มขึ้นจาก Role ที่มีมาให้ ซึ่ง Alfresco ได้เปิดโอกาสให้เราสามารถสร้าง Role ใหม่ขึ้นมาได้เองนะครับ โดยตามปกติ Role ใน Alfresco จะมีทั้งหมด 6 Role นะครับ คือ Administrator, Coordinator, Collaborator, Contributor, Editor, Consumer ในแต่ละ Role ก็จะมีสิทธิ์ในการเข้าถึง Content และ Folder ที่แตกต่างกัน ทีนี้เราจะมาสร้าง Role ขึ้นมาใหม่ ชื่อ MyCustomRole นะครับ โดยเราจะเพิ่ม Code เข้าไปในส่วนของ cm:cmobject, cm:content และ cm:folder นะครับ

เริ่มจาก เพิ่ม code ทางด้านล่าง เข้าไปที่ cm:cmobject นะครับ โดย code ทางด้านล่างจะเป็น การ define Role ใหม่ขึ้นมานะครับ ชื่อ MyConsumer

null

จากนั้นเพิ่ม Code ทางด้านล่างเข้าไปในส่วน cm:content นะครับ โดยการเพิ่มจะเป็นการกำหนดว่า ให้เราสามารถกำหนด Role ที่สร้างขึ้นมา(MyConsumer) ที่ Content ได้

null

เพิ่ม Code ทางด้านล่างเข้าไปในส่วนของ cm:folder นะครับ โดยการเพิ่มจะเป็นการกำหนดว่า ให้เราสามารถกำหนด Role ที่สร้างขึ้นมา(MyConsumer) ที่ Folder ได้

null

ต่อจากนั้นให้ทำการแก้ไขไฟล์ common.properties และ common_en.properties เพื่อเพิ่ม label ให้กับ Role “MyConsumer” ตามรูปด้านล่าง นะครับ

null

ทำการ restart tomcat แล้วทดสอบนะครับ โดยการคลิกที่ Manage Permissions ของ Folder ที่เราต้องการ Set Permission

null

เพิ่ม User ที่ต้องการ Set Permission จากนั้นที่ช่องของ Role ให้เลือกเป็น My Consumer แล้วคลิกที่ปุ่ม Save ดังรูป

null

นอกจากที่ Folder แล้ว เรายังสามารถทำการกำหนดสิทธิ์ให้ที่ Content ได้อีกด้วยนะครับ ทดลอง Login ด้วย User ที่ได้ทำการ Set Permission นะครับ แล้วดูผลการเปลี่ยนแปลง

Comments are closed.