@@ -44,3 +44,54 @@ Feature: page/validate
4444 | /apps /libresign /p /validation |
4545 | /apps /libresign /pdf /fakeuuid -6037 -47be -9d9e -3d90b9d0a3ea |
4646 | /apps /libresign /p /pdf /fakeuuid -6037 -47be -9d9e -3d90b9d0a3ea |
47+
48+ Scenario : Authenticated signer can fetch PDF using sign request UUID
49+ Given user "validate-signer" exists
50+ And as user "admin"
51+ And sending "post" to ocs "/apps/libresign/api/v1/request-signature"
52+ | file | {"base64":"data:application/pdf;base64,JVBERi0xLjYKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nDPQM1Qo5ypUMFAw0DMwslAwtTTVMzIxV7AwMdSzMDNUKErlCtdSyOMyVADBonQuA4iUhaVCLheKYqBIDlw7xLAcuLEgFlwVVwZXmhZXoAIAI+sZGAplbmRzdHJlYW0KZW5kb2JqCgozIDAgb2JqCjg2CmVuZG9iagoKNSAwIG9iago8PAo+PgplbmRvYmoKCjYgMCBvYmoKPDwvRm9udCA1IDAgUgovUHJvY1NldFsvUERGL1RleHRdCj4+CmVuZG9iagoKMSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDQgMCBSL1Jlc291cmNlcyA2IDAgUi9NZWRpYUJveFswIDAgNTk1LjI3NTU5MDU1MTE4MSA4NDEuODg5NzYzNzc5NTI4XS9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyAyIDAgUj4+CmVuZG9iagoKNCAwIG9iago8PC9UeXBlL1BhZ2VzCi9SZXNvdXJjZXMgNiAwIFIKL01lZGlhQm94WyAwIDAgNTk1IDg0MSBdCi9LaWRzWyAxIDAgUiBdCi9Db3VudCAxPj4KZW5kb2JqCgo3IDAgb2JqCjw8L1R5cGUvQ2F0YWxvZy9QYWdlcyA0IDAgUgovT3BlbkFjdGlvblsxIDAgUiAvWFlaIG51bGwgbnVsbCAwXQo+PgplbmRvYmoKCjggMCBvYmoKPDwvQ3JlYXRvcjxGRUZGMDA0NDAwNzIwMDYxMDA3Nz4KL1Byb2R1Y2VyPEZFRkYwMDRDMDA2OTAwNjIwMDcyMDA2NTAwNEYwMDY2MDA2NjAwNjkwMDYzMDA2NTAwMjAwMDM3MDAyRTAwMzA+Ci9DcmVhdGlvbkRhdGUoRDoyMDIxMDIyMzExMDgwOS0wMycwMCcpPj4KZW5kb2JqCgp4cmVmCjAgOQowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAyNzAgMDAwMDAgbiAKMDAwMDAwMDAxOSAwMDAwMCBuIAowMDAwMDAwMTc2IDAwMDAwIG4gCjAwMDAwMDA0MzggMDAwMDAgbiAKMDAwMDAwMDE5NSAwMDAwMCBuIAowMDAwMDAwMjE3IDAwMDAwIG4gCjAwMDAwMDA1MzYgMDAwMDAgbiAKMDAwMDAwMDYxOSAwMDAwMCBuIAp0cmFpbGVyCjw8L1NpemUgOS9Sb290IDcgMCBSCi9JbmZvIDggMCBSCi9JRCBbIDw1RkQ4MDlEMTdFODMwQUU5OTRDODkxNDVBMTMwNUQyQz4KPDVGRDgwOUQxN0U4MzBBRTk5NEM4OTE0NUExMzA1RDJDPiBdCi9Eb2NDaGVja3N1bSAvRDZBQThGQTBBQjMwODg2QkQ5ODU0QzYyMTg5QjI2NDQKPj4Kc3RhcnR4cmVmCjc4NQolJUVPRgo="} |
53+ | signers | [{"identifyMethods ":[{"method ":"account ","value ":"validate -signer "}]}] |
54+ | name | signer -pdf |
55+ And the response should have a status code 200
56+ And as user "validate-signer"
57+ And sending "get" to ocs "/apps/libresign/api/v1/file/list?details=1"
58+ And fetch field "(SIGN_REQUEST_UUID)ocs.data.data.0.signers.0.sign_request_uuid" from previous JSON response
59+ When sending "get" to "/apps/libresign/pdf/<SIGN_REQUEST_UUID>"
60+ Then the response should have a status code 200
61+
62+ Scenario : Missing sign request UUID returns controlled File not found response
63+ Given user "validate-signer-2" exists
64+ And as user "validate-signer-2"
65+ And sending "get" to "/apps/libresign/pdf/fakeuuid-6037-47be-9d9e-3d90b9d0a3ea"
66+ Then the response should have a status code 404
67+ And the response should be a JSON array with the following mandatory values
68+ | key | value |
69+ | action | 2000 |
70+ | errors | [{"message ":"Invalid UUID "}] |
71+
72+ Scenario : Unauthenticated email signer can fetch PDF and gets controlled error after source deletion
73+ Given as user "admin"
74+ And sending "post" to ocs "/apps/provisioning_api/api/v1/config/apps/libresign/identify_methods"
75+ | value | (string )[{"name ":"email ","enabled ":true ,"mandatory ":true ,"signatureMethods ":{"clickToSign ":{"enabled ":true }},"can_create_account ":false }] |
76+ And my inbox is empty
77+ When sending "post" to ocs "/apps/libresign/api/v1/request-signature"
78+ | file | {"url ":"<BASE_URL >/apps /libresign /develop /pdf "} |
79+ | signers | [{"displayName ":"External Signer ","identifyMethods ":[{"method ":"email ","value ":"external @domain .test "}]}] |
80+ | name | external -email -pdf |
81+ | settings | {"folderName ":"rm -target -folder "} |
82+ Then the response should have a status code 200
83+ And I open the latest email to "external@domain.test" with subject "LibreSign: There is a file for you to sign"
84+ And I fetch the signer UUID from opened email
85+ And as user ""
86+ When sending "get" to "/apps/libresign/pdf/<SIGN_REQUEST_UUID>"
87+ Then the response should have a status code 200
88+ And as user "admin"
89+ And user "admin" sends WebDAV "DELETE" to "LibreSign/rm-target-folder/external-email-pdf.pdf"
90+ And the response should have a status code 204
91+ And as user ""
92+ When sending "get" to "/apps/libresign/pdf/<SIGN_REQUEST_UUID>"
93+ Then the response should have a status code 404
94+ And the response should be a JSON array with the following mandatory values
95+ | key | value |
96+ | action | 2000 |
97+ | errors | [{"message ":"File not found "}] |
0 commit comments