[RM-33221]: <NALT DSpace> ตรวจสอบปัญหาการส่งเมล์มายัง prt@parliament.go.th ในกรณีที่เอกสารล็อกไฟล์ไว้ และมีผู้ใช้ร้องขอเข้ามา

Viewed 16

Problem Summary

From Redmine:
ตรวจสอบปัญหาการส่งเมล์มายัง prt@parliament.go.th ในกรณีที่เอกสารล็อกไฟล์ไว้ และมีผู้ใช้ร้องขอเข้ามา

งาน ma

Root Cause Analysis

1 Answers

Solution / Workaround

เมื่อ item ไดๆ ที่ตั้งค่า policy ให้ไม่สามารถ download ได้

ตัวอย่าง item ที่ตั้งค่า lock files
🔒2564_ปัญหา_การปฏิบัติหน้าที่ล่าม_พรพิมล.pdf (2.76 MB)

เมื่อผู้ใช้กดปุ่ม 🔒 จะแสดงหน้า Request a copy
และเมื่อผู้ใช้กรอกข้อมูบ (Request a copy ) ระบบจะส่งอีเมลไปหา

  1. เจ้าของผลงาน (Submitter)
  2. helpdesk

ปัจจุบันถูกตั้งค่าไปส่งไปยัง helpdesk (prt.parliament.go.th)

คำถาม ❔
ต้องการให้ส่งยัง submitter หรือ helpdesk

ตั้งค่า local.cfg

request.item.helpdesk.override = true

วิธีดูว่า item ไหนตั้งค่า policy ให้ไม่สามารถ download ได้

SELECT
    i.*,
    b.*,
    b2b.bitstream_id AS bitstream_id
FROM
    bundle b
    LEFT JOIN bundle2bitstream b2b ON b.uuid = b2b.bundle_id
    LEFT JOIN item2bundle i2b ON i2b.bundle_id = b.uuid
WHERE
    -- bundle is ORIGINAL AND policy is Anonymous READ
    (
        SELECT
            text_value
        FROM
            metadatavalue mv
            LEFT JOIN metadatafieldregistry mfr USING (metadata_field_id)
            LEFT JOIN metadataschemaregistry msr USING (metadata_schema_id)
        WHERE
            short_id = 'dc'
            AND element = 'title'
            AND qualifier IS NULL
            AND dspace_object_id = b.uuid
    ) = 'ORIGINAL'
    AND EXISTS (
        SELECT
            1
        FROM
            resourcepolicy p
            LEFT JOIN epersongroup g ON g.uuid = p.epersongroup_id
        WHERE
            p.dspace_object = b.uuid
            AND p.action_id = 0
            AND g.name = 'Anonymous'
    )
    -- bitstream policy is not Annonymous READ
    AND EXISTS (
        SELECT
            1
        FROM
            bitstream bs
            LEFT JOIN bundle2bitstream b2b2 ON b2b2.bitstream_id = bs.uuid
            LEFT JOIN resourcepolicy p2 ON p2.dspace_object = bs.uuid
            LEFT JOIN epersongroup g2 ON g2.uuid = p2.epersongroup_id
        WHERE
            b2b2.bundle_id = b.uuid
            AND p2.action_id = 0
            AND g2.name != 'Anonymous'
    );

Verification Steps

รอคำตอบก่อน

Related