Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
645 commits
Select commit Hold shift + click to select a range
ad99809
test(settings): align docmdp settings assertions
vitormattos Apr 9, 2026
642fa90
refactor(ui): align docmdp settings presentation
vitormattos Apr 9, 2026
4749661
test(identify): remove legacy appconfig fallback assertions
vitormattos Apr 9, 2026
107f0f1
test(policy): align service expectations with strict typed values
vitormattos Apr 9, 2026
34958a0
test(policy): update signature flow provider normalization checks
vitormattos Apr 9, 2026
3e389a8
test(policy): update registry normalization expectations
vitormattos Apr 9, 2026
e1d3412
test(policy): align source behavior with strict typed reads
vitormattos Apr 9, 2026
b63b5f2
test(request): align request signature flow expectations
vitormattos Apr 9, 2026
5694133
feat(policy): add docmdp policy provider
vitormattos Apr 9, 2026
c658b29
feat(ui): add docmdp scalar rule editor
vitormattos Apr 9, 2026
d17377e
test(policy): add docmdp provider unit coverage
vitormattos Apr 9, 2026
7be5af0
fix(openapi): add docmdp policy snapshot to api schema
vitormattos Apr 9, 2026
9e7f943
fix(openapi): mirror docmdp snapshot schema in full spec
vitormattos Apr 9, 2026
d850394
fix(types): align openapi snapshot typing for docmdp
vitormattos Apr 9, 2026
fa00500
fix(types): mirror docmdp snapshot typing in full types
vitormattos Apr 9, 2026
256df6a
fix(api): define docmdp policy snapshot metadata type
vitormattos Apr 9, 2026
04730f0
chore(openapi): regenerate api specification
vitormattos Apr 9, 2026
1356fe2
chore(openapi): regenerate full api specification
vitormattos Apr 9, 2026
e81e172
chore(types): regenerate openapi types
vitormattos Apr 9, 2026
c5be4e5
chore(types): regenerate full openapi types
vitormattos Apr 9, 2026
6ef498f
test(e2e): stabilize policy workbench persistence scenario
vitormattos Apr 10, 2026
a6b2e64
test(integration): normalize identify methods setup in admin initial …
vitormattos Apr 10, 2026
f9286f8
fix(identify-method): normalize identify_methods when stored as wrong…
vitormattos Apr 10, 2026
01b7280
test(integration): restore explicit default setup for identify methods
vitormattos Apr 10, 2026
5912256
refactor(migration): drop legacy child override key path
vitormattos Apr 10, 2026
a7ab130
test(policy-workbench): cover instance admin group-rule override
vitormattos Apr 10, 2026
2031f85
fix(policy-workbench): allow instance admin group exceptions
vitormattos Apr 10, 2026
123b86d
refactor(policy-workbench): rename menuHint to context in types
vitormattos Apr 10, 2026
6950d10
refactor(policy-workbench): add context metadata to real definitions
vitormattos Apr 10, 2026
139e882
feat(policy-workbench): render optional context inline in real catalog
vitormattos Apr 10, 2026
87119f8
refactor(policy-workbench): migrate poc summaries to context
vitormattos Apr 10, 2026
2f5f5d0
refactor(policy-workbench): add context to signature flow definition
vitormattos Apr 10, 2026
516d18e
refactor(policy-workbench): add context to confetti definition
vitormattos Apr 10, 2026
98881f8
refactor(policy-workbench): add context to identify factors definition
vitormattos Apr 10, 2026
15f8bb2
refactor(policy-workbench): add context to signature stamp definition
vitormattos Apr 10, 2026
b5abed8
feat(policy-workbench): render optional context inline in poc catalog
vitormattos Apr 10, 2026
e9a66f8
fix(policy-workbench): clear pointer focus after closing rules dialog
vitormattos Apr 10, 2026
ff9651c
refactor(policy-workbench): add shared types for real setting modules
vitormattos Apr 10, 2026
24639e0
refactor(policy-workbench): extract signature flow real setting module
vitormattos Apr 10, 2026
cae4369
refactor(policy-workbench): extract docmdp real setting module
vitormattos Apr 10, 2026
387cd29
refactor(policy-workbench): add registry for real setting modules
vitormattos Apr 10, 2026
4fd74ff
refactor(policy-workbench): consume per-setting modules in real state
vitormattos Apr 10, 2026
586a531
refactor(policy-workbench): extend real setting contract
vitormattos Apr 10, 2026
8174575
refactor(policy-workbench): encapsulate signature flow behavior
vitormattos Apr 10, 2026
90c8a28
refactor(policy-workbench): encapsulate docmdp behavior
vitormattos Apr 10, 2026
ef017e0
refactor(policy-workbench): remove per-key branching from real state
vitormattos Apr 10, 2026
aba83e4
refactor(settings): move DocMDP view to docmdp setting module
vitormattos Apr 10, 2026
af71ce3
refactor(settings): update DocMDP import path in settings page
vitormattos Apr 10, 2026
f81ad6f
test(settings): update DocMDP spec import after component move
vitormattos Apr 10, 2026
b88fdef
refactor(settings): remove standalone docmdp section from settings page
vitormattos Apr 10, 2026
e4e7cd5
test(settings): drop docmdp stub from settings spec
vitormattos Apr 10, 2026
6aae9be
refactor(settings): remove legacy docmdp standalone component
vitormattos Apr 10, 2026
5765d10
test(settings): remove legacy docmdp standalone spec
vitormattos Apr 10, 2026
bfac61e
refactor(settings): remove legacy standalone signature flow view
vitormattos Apr 10, 2026
2fff489
refactor(settings): remove legacy signature flow group policy view
vitormattos Apr 10, 2026
dd05574
refactor(settings): remove legacy signature flow policy catalog view
vitormattos Apr 10, 2026
bf5915d
refactor(settings): remove deprecated signing order policy workbench
vitormattos Apr 10, 2026
6fd259c
test(settings): remove legacy signature flow standalone spec
vitormattos Apr 10, 2026
69cc24f
test(settings): remove legacy signature flow group policy spec
vitormattos Apr 10, 2026
f7f7f3c
test(settings): remove legacy signature flow policy catalog spec
vitormattos Apr 10, 2026
b21fdc3
fix(folder): ensure nested folders exist before writes
vitormattos Apr 10, 2026
3de939e
test(folder): align unit tests with getOrCreateFolder flow
vitormattos Apr 10, 2026
adf3945
test(e2e): update policy workbench group scope expectation
vitormattos Apr 10, 2026
8bdc333
refactor(admin): remove legacy signature flow config endpoint
vitormattos Apr 10, 2026
76eaa7e
chore(openapi): regenerate administration spec
vitormattos Apr 10, 2026
1eb2b63
chore(openapi): regenerate full spec
vitormattos Apr 10, 2026
27f2469
chore(types): regenerate administration openapi types
vitormattos Apr 10, 2026
11d1ea4
chore(types): regenerate full openapi types
vitormattos Apr 10, 2026
52d6efb
feat: implement add_footer policy provider for signature footer control
vitormattos Apr 10, 2026
86b7a2a
feat: restore footer and qrcode toggles in validation settings UI
vitormattos Apr 10, 2026
509d2f8
test: update footer/validation settings tests for restored UI structure
vitormattos Apr 10, 2026
12f3dab
feat: add footer policy workbench UI configuration
vitormattos Apr 10, 2026
d088409
test: add unit tests for AddFooterPolicy provider
vitormattos Apr 10, 2026
a1eefbd
test: update policy and footer handler tests for AddFooterPolicy
vitormattos Apr 10, 2026
a3425e4
feat: register add_footer policy in workbench definitions and fix pan…
vitormattos Apr 10, 2026
802b89e
test: remove legacy write_qrcode_on_footer setting and update workben…
vitormattos Apr 10, 2026
0ed42d5
feat(policy): add structured signature footer value helper
vitormattos Apr 10, 2026
00e64d4
feat(policy): normalize add_footer as structured serialized config
vitormattos Apr 10, 2026
f179703
feat(footer): apply structured policy for enablement qrcode and valid…
vitormattos Apr 10, 2026
60288f4
feat(policy-workbench): add signature footer value model parser
vitormattos Apr 10, 2026
7044ab1
feat(policy-workbench): add full signature footer rule editor
vitormattos Apr 10, 2026
b9f874d
feat(policy-workbench): register composed signature footer setting de…
vitormattos Apr 10, 2026
8cfc612
refactor(policy-workbench): route add_footer to signature-footer module
vitormattos Apr 10, 2026
a99a8fe
refactor(policy-workbench): remove legacy scalar add footer editor
vitormattos Apr 10, 2026
dbd4a3c
refactor(policy-workbench): remove legacy footer scalar definition
vitormattos Apr 10, 2026
14168f6
test(policy): add structured signature footer value normalization tests
vitormattos Apr 10, 2026
7cc5446
test(policy): update add footer policy expectations for structured co…
vitormattos Apr 10, 2026
32a0da8
test(policy): update registry assertions for structured add_footer va…
vitormattos Apr 10, 2026
a482b66
test(footer): cover structured policy and qrcode disabled behavior
vitormattos Apr 10, 2026
cbb5afd
test(policy-workbench): add signature footer model serialization spec
vitormattos Apr 10, 2026
c90b330
feat(policy-workbench): add per-setting editor dialog layout parameter
vitormattos Apr 10, 2026
380f1c3
feat(signature-footer): configure wide editor dialog layout
vitormattos Apr 10, 2026
d33a9b6
style(policy-workbench): apply wide dialog width only for configured …
vitormattos Apr 10, 2026
77a7326
feat(migration): migrate legacy footer settings to structured policy …
vitormattos Apr 10, 2026
d633ac3
test(migration): cover legacy footer settings migration to structured…
vitormattos Apr 10, 2026
f58291c
refactor(csp): remove global AddContentSecurityPolicyListener
vitormattos Apr 11, 2026
e8b3577
test(behat): replace monolithic PDF step with composable steps
vitormattos Apr 11, 2026
503078f
test(behat): use composable steps in footer_template_preview feature
vitormattos Apr 11, 2026
c0ea14a
refactor(footer): extract estimateContainerHeightForFirstRender
vitormattos Apr 11, 2026
4be4d63
feat(helpers): add estimateContainerHeightForFirstRender utility
vitormattos Apr 11, 2026
cc916c6
refactor(footer): import estimateContainerHeightForFirstRender from h…
vitormattos Apr 11, 2026
c0e8d99
test(helpers): add unit tests for estimateContainerHeightForFirstRender
vitormattos Apr 11, 2026
4de9ae8
test(footer): simplify min-height test to a DOM binding check
vitormattos Apr 11, 2026
65a6233
fix: remove redundant cast in theResponseHeaderShouldContain step
vitormattos Apr 11, 2026
46df499
refactor(footer): inline estimateContainerHeightForFirstRender as pri…
vitormattos Apr 11, 2026
674854f
refactor(helpers): remove stand-alone containerHeight helper
vitormattos Apr 11, 2026
a3a14d1
refactor(tests): remove stand-alone containerHeight spec
vitormattos Apr 11, 2026
2f55cd5
test(footer): cover previewContainerMinHeight through defineExpose
vitormattos Apr 11, 2026
5472b4e
chore(deps): bump libresign/nextcloud-behat to ^1.6
vitormattos Apr 11, 2026
66590c8
chore(deps): update composer.lock for nextcloud-behat v1.6.0
vitormattos Apr 11, 2026
e778973
refactor(behat): remove steps now provided by nextcloud-behat ^1.6
vitormattos Apr 11, 2026
210461d
test(footer): convert previewContainerMinHeight tests to it.each data…
vitormattos Apr 11, 2026
9362225
refactor(test): move getForm stubs to setUp helper, slim down CSP test
vitormattos Apr 11, 2026
2ad3e14
feat(footer): add reset template button and track is-default state
vitormattos Apr 11, 2026
75bdfb0
test(footer): add reset template button tests
vitormattos Apr 11, 2026
ea5346b
fix(api): pass template parameter to renderPreviewPdf in saveFooterTe…
vitormattos Apr 11, 2026
e88130b
feat(footer-template): show reset button on real-time template changes
vitormattos Apr 11, 2026
1b00197
test(footer-template): fix reset button visibility tests
vitormattos Apr 11, 2026
8cb86db
fix(footer-template): add timeout for PDF preview loading
vitormattos Apr 11, 2026
e858a2e
fix(footer-template): expose resetDimensions function for tests
vitormattos Apr 11, 2026
3c99e59
fix(build): align pdf-elements runtime with app pdfjs version
vitormattos Apr 11, 2026
8d66b1c
test(build): mirror pdf-elements alias in vitest
vitormattos Apr 11, 2026
a80c210
perf(policy): add bulk IPolicySource methods for group and user layers
vitormattos Apr 11, 2026
57b132e
perf(policy): implement loadAllGroupPolicies and loadAllUserPreferences
vitormattos Apr 11, 2026
09451ce
perf(policy): resolveMany uses bulk data loading via resolveCore
vitormattos Apr 11, 2026
5690f30
test(policy): add coverage for loadAllGroupPolicies and loadAllUserPr…
vitormattos Apr 11, 2026
315cb73
test(policy): extend InMemoryPolicySource and add resolveMany bulk test
vitormattos Apr 11, 2026
5628e18
feat(policy): add loadAllRuleCounts to PolicySource for admin-scoped …
vitormattos Apr 11, 2026
ed88efb
feat(policy): add getAllRuleCounts delegation method to PolicyService
vitormattos Apr 11, 2026
bda1946
feat(policy): embed groupCount and userCount in effective() response,…
vitormattos Apr 11, 2026
af1cdf2
feat(policy): add groupCount/userCount to LibresignEffectivePolicySta…
vitormattos Apr 11, 2026
1bb2bb4
chore(openapi): regenerate spec after embedding rule counts in effect…
vitormattos Apr 11, 2026
7dba92e
chore(types): regenerate TypeScript types with groupCount/userCount i…
vitormattos Apr 11, 2026
3731c6c
feat(policy): simplify hydrateAllSettingRuleCounts to read counts fro…
vitormattos Apr 11, 2026
146aff0
test(policy): add loadAllRuleCounts unit tests to PolicySourceTest
vitormattos Apr 11, 2026
093348e
test(policy): add getAllRuleCounts test to PolicyServiceTest
vitormattos Apr 11, 2026
62f075d
test(policy): update PolicyControllerTest for embedded counts, remove…
vitormattos Apr 11, 2026
6cf58d2
test(policy): add groupCount/userCount to EffectivePolicyState mocks …
vitormattos Apr 11, 2026
f026a76
test(policy): remove fetchRuleCounts mock from SettingsPolicyWorkbenc…
vitormattos Apr 11, 2026
169ef3e
refactor(policy): extract resolveRuleCountsForActor private method fr…
vitormattos Apr 11, 2026
4ceb37a
test(policy): cover all three branches of resolveRuleCountsForActor i…
vitormattos Apr 11, 2026
83f4167
refactor(policy): remove settingRuleCounts local state, read counts d…
vitormattos Apr 11, 2026
728d74b
test(policy): update isolation test to mock groupCount/userCount in g…
vitormattos Apr 11, 2026
f2892a3
fix(policy): correct DISTINCT user count SQL in rule count queries
vitormattos Apr 11, 2026
6a1a7d7
fix(policy): scope admin rule counts to current users and groups
vitormattos Apr 11, 2026
23a1b43
test(policy): cover admin count scoping with user manager
vitormattos Apr 11, 2026
5346da2
refactor(policy): replace deprecated user search API in admin rule co…
vitormattos Apr 11, 2026
fbf4362
test(policy): update admin count test to searchDisplayName
vitormattos Apr 11, 2026
3115d67
test(policy): group-admin catalog hides policies with no group rules
vitormattos Apr 11, 2026
03b239c
fix(policy): hide policies with no group rules from group-admin catalog
vitormattos Apr 11, 2026
ac581ac
fix(policy): allow group-admin to create group and user rules
vitormattos Apr 11, 2026
1909c27
fix(policy): block disallowed group overrides in service
vitormattos Apr 11, 2026
fa1ca64
fix(policy): return forbidden for blocked group overrides
vitormattos Apr 11, 2026
9a54088
fix(policy): hide locked policies from group-admin workbench
vitormattos Apr 11, 2026
b9fa071
test(policy): cover locked policy filtering for group-admin
vitormattos Apr 11, 2026
fbeed4f
test(policy): cover forbidden blocked group override responses
vitormattos Apr 11, 2026
c30bb0d
test(policy): cover blocked group overrides in service
vitormattos Apr 11, 2026
11a73cf
refactor(policy): translate service exceptions at source
vitormattos Apr 11, 2026
9175860
refactor(policy): translate source exceptions at source
vitormattos Apr 11, 2026
b4bb41f
refactor(policy): stop translating exception messages in controller
vitormattos Apr 11, 2026
605aabc
refactor(file): stop translating exception messages in controller
vitormattos Apr 11, 2026
b084bac
refactor(signing): replace dynamic translation mapping
vitormattos Apr 11, 2026
6cf7a0e
refactor(docmdp): translate validation messages at source
vitormattos Apr 11, 2026
c54ad44
test(policy): update service tests for source translations
vitormattos Apr 11, 2026
434483c
test(policy): update source tests for l10n dependency
vitormattos Apr 11, 2026
951021d
test(policy): align controller tests with pretranslated messages
vitormattos Apr 11, 2026
7a4ad48
feat(db): add binding lookup by target type
vitormattos Apr 11, 2026
78b1325
refactor(policy): rename footer policy provider
vitormattos Apr 11, 2026
52b854b
refactor(policy): rename footer policy value
vitormattos Apr 11, 2026
890e045
refactor(policy): register footer policy provider
vitormattos Apr 11, 2026
62c7fd8
fix(footer): use footer policy payload consistently
vitormattos Apr 11, 2026
87939a8
test(footer): cover footer policy payload handling
vitormattos Apr 11, 2026
0062b21
fix(footer): render preview in preview mode
vitormattos Apr 11, 2026
09eb1b5
test(footer): cover preview rendering flag
vitormattos Apr 11, 2026
7e334c5
refactor(migration): fold footer migration into version 18001
vitormattos Apr 11, 2026
5245e15
test(migration): cover consolidated footer migration
vitormattos Apr 11, 2026
4ed1aa5
fix(settings): allow worker sources for admin preview
vitormattos Apr 11, 2026
9cf8dda
fix(pdf): configure worker asset path
vitormattos Apr 11, 2026
3229b3e
test(pdf): cover worker bootstrap helper
vitormattos Apr 11, 2026
ba5f4ad
feat(footer): reset custom template to default
vitormattos Apr 11, 2026
f07fbb3
test(footer): cover default template reset
vitormattos Apr 11, 2026
6c7acea
fix(settings): reset footer template to default
vitormattos Apr 11, 2026
ff372e4
test(settings): cover footer template reset flow
vitormattos Apr 11, 2026
9b21876
feat(policy): forward signature footer template changes
vitormattos Apr 11, 2026
45b8d6e
test(policy): cover signature footer editor events
vitormattos Apr 11, 2026
0e54ecd
fix(policy): propagate footer editor change events
vitormattos Apr 11, 2026
b378df4
test(e2e): cover signature footer template editor
vitormattos Apr 11, 2026
75a7e7a
test(policy): register footer policy in registry
vitormattos Apr 11, 2026
c9223d3
test(policy): rename footer policy provider coverage
vitormattos Apr 11, 2026
397f49a
test(policy): rename footer policy value coverage
vitormattos Apr 11, 2026
8a2210c
test(settings): hide policies menu when no editable policies
vitormattos Apr 11, 2026
820e5aa
fix(settings): gate policies menu by editable policies
vitormattos Apr 11, 2026
26e38e8
test(settings): require delegated rules for policies menu
vitormattos Apr 11, 2026
9fed5c0
fix(settings): hide policies menu without delegated policies
vitormattos Apr 11, 2026
eb92187
test(settings): react to delegated policies menu state
vitormattos Apr 11, 2026
a7300a6
fix(settings): show policies menu from reactive policy store
vitormattos Apr 11, 2026
13b9c07
test(e2e): policies menu visibility follows delegated group rules
vitormattos Apr 11, 2026
80ffc8d
test(settings): hide policies entry when delegated rules are read-only
vitormattos Apr 11, 2026
837af40
test(e2e): assert policies menu visibility by editability
vitormattos Apr 11, 2026
4b473e8
fix(settings): require editable delegated policy for menu
vitormattos Apr 11, 2026
5d0dd53
fix(folder): fallback to appdata when user home is unavailable
vitormattos Apr 11, 2026
a4216f1
fix(policy): tolerate legacy appconfig type conflicts
vitormattos Apr 11, 2026
8674763
test(behat): use policies API for sequential flow setup
vitormattos Apr 11, 2026
cc193e0
test(behat): configure footer via policy endpoint
vitormattos Apr 11, 2026
c52e189
test(playwright): target signing-order card button directly
vitormattos Apr 11, 2026
ddf6b63
test(unit): avoid null delete in file-not-found scenario
vitormattos Apr 11, 2026
3e13f6c
fix(router): gate policies route by management capability
vitormattos Apr 11, 2026
b912db2
test(router): cover policies access guard redirects
vitormattos Apr 11, 2026
3e18618
revert(router): remove policies route guard, nav already controls vis…
vitormattos Apr 11, 2026
3385308
revert(test/router): remove tests for policies access guard
vitormattos Apr 11, 2026
1bc1e94
fix(settings): hide preferences when no personal override is allowed
vitormattos Apr 11, 2026
0124315
test(settings): cover preferences menu visibility
vitormattos Apr 11, 2026
8f3540f
test(policy): cover actor capabilities in context factory
vitormattos Apr 11, 2026
392367f
fix(policy): propagate actor capabilities in context factory
vitormattos Apr 11, 2026
d5e8a49
test(policy): cover resolver editability semantics
vitormattos Apr 11, 2026
3dab7c1
fix(policy): decouple resolver editability from overrides
vitormattos Apr 11, 2026
444610a
test(controller): cover user policy authorization
vitormattos Apr 11, 2026
6a3c483
fix(controller): guard target user policy endpoints
vitormattos Apr 11, 2026
02a50f1
test(policy): align service expectations with actor capabilities
vitormattos Apr 11, 2026
a364753
feat: update user policy controller endpoint
vitormattos Apr 12, 2026
c940d80
feat: expose assigned user policy response
vitormattos Apr 12, 2026
7392c67
feat: extend policy source user policy contract
vitormattos Apr 12, 2026
3ebed03
feat: persist explicit assigned user policies
vitormattos Apr 12, 2026
7f3f5ad
feat: resolve assigned user policy layers
vitormattos Apr 12, 2026
0faac4f
feat: store assigned user policy payloads
vitormattos Apr 12, 2026
2282e36
chore: refresh administration openapi user policy schema
vitormattos Apr 12, 2026
e4da6c8
chore: refresh full openapi user policy schema
vitormattos Apr 12, 2026
208a290
test: harden sequential signer playwright flow
vitormattos Apr 12, 2026
ddbd4c1
test: keep delegated policies menu visible
vitormattos Apr 12, 2026
2364224
test: add playwright app config helpers
vitormattos Apr 12, 2026
ebe7e72
feat: send assigned user policy override flag
vitormattos Apr 12, 2026
4c11a9a
test: cover assigned user policy store payloads
vitormattos Apr 12, 2026
d883f94
test: cover assigned user policy workbench flows
vitormattos Apr 12, 2026
1ed260d
feat: add assigned user policy frontend type
vitormattos Apr 12, 2026
88d8b44
chore: refresh administration openapi frontend types
vitormattos Apr 12, 2026
c023d0c
chore: refresh full openapi frontend types
vitormattos Apr 12, 2026
d3296d1
feat: label assigned user policy in preferences
vitormattos Apr 12, 2026
7d19aee
feat: show user customization toggle in rule editor
vitormattos Apr 12, 2026
0bd101f
feat: keep signature flow override toggle visible
vitormattos Apr 12, 2026
725321f
feat: allow signature flow child override settings
vitormattos Apr 12, 2026
9b99a76
feat: default mock policy overrides to enabled
vitormattos Apr 12, 2026
76a9f6e
feat: map assigned user policies in workbench
vitormattos Apr 12, 2026
6e7a683
test: cover assigned user policy api flow
vitormattos Apr 12, 2026
8f328ff
test: update policy controller assigned user cases
vitormattos Apr 12, 2026
a9ce30a
test: update policy service assigned user cases
vitormattos Apr 12, 2026
6f2f801
test: cover assigned user policy resolution
vitormattos Apr 12, 2026
e074d09
test: fix policy context factory dependency
vitormattos Apr 12, 2026
0317b3a
test: cover assigned user policy persistence
vitormattos Apr 12, 2026
b43b345
fix: add cRLSign usage to openssl root CA
vitormattos Apr 12, 2026
20bb353
test: enforce explicit CRL signature verification
vitormattos Apr 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion lib/AppInfo/Application.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ public function register(IRegistrationContext $context): void {
$context->registerNotifierService(Notifier::class);

$context->registerSearchProvider(FileSearchProvider::class);

$context->registerEventListener(LoadSidebar::class, TemplateLoader::class);
$context->registerEventListener(BeforeNodeDeletedEvent::class, BeforeNodeDeletedListener::class);
$context->registerEventListener(CacheEntryRemovedEvent::class, BeforeNodeDeletedListener::class);
Expand Down
23 changes: 23 additions & 0 deletions lib/Command/Developer/Reset.php
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ protected function configure(): void {
mode: InputOption::VALUE_NONE,
description: 'Reset config'
)
->addOption(
name: 'policy',
shortcut: null,
mode: InputOption::VALUE_NONE,
description: 'Reset policy data'
)
;
}

Expand Down Expand Up @@ -140,6 +146,10 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$this->resetConfig();
$ok = true;
}
if ($input->getOption('policy') || $all) {
$this->resetPolicy();
$ok = true;
}
} catch (\Exception $e) {
$this->logger->error($e->getMessage());
throw $e;
Expand Down Expand Up @@ -254,4 +264,17 @@ private function resetConfig(): void {
} catch (\Throwable) {
}
}

private function resetPolicy(): void {
try {
$delete = $this->db->getQueryBuilder();
$delete->delete('libresign_permission_set_binding')
->executeStatement();

$delete = $this->db->getQueryBuilder();
$delete->delete('libresign_permission_set')
->executeStatement();
} catch (\Throwable) {
}
}
}
55 changes: 3 additions & 52 deletions lib/Controller/AdminController.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
use OCA\Libresign\Service\IdentifyMethodService;
use OCA\Libresign\Service\Install\ConfigureCheckService;
use OCA\Libresign\Service\Install\InstallService;
use OCA\Libresign\Service\Policy\PolicyService;
use OCA\Libresign\Service\ReminderService;
use OCA\Libresign\Service\SignatureBackgroundService;
use OCA\Libresign\Service\SignatureTextService;
Expand Down Expand Up @@ -83,6 +84,7 @@ public function __construct(
private ReminderService $reminderService,
private FooterService $footerService,
private DocMdpConfigService $docMdpConfigService,
private PolicyService $policyService,
private IdentifyMethodService $identifyMethodService,
private FileMapper $fileMapper,
) {
Expand Down Expand Up @@ -875,7 +877,7 @@ public function getFooterTemplate(): DataResponse {
public function saveFooterTemplate(string $template = '', int $width = 595, int $height = 50) {
try {
$this->footerService->saveTemplate($template);
$pdf = $this->footerService->renderPreviewPdf('', $width, $height);
$pdf = $this->footerService->renderPreviewPdf($template, $width, $height);

return new DataDownloadResponse($pdf, 'footer-preview.pdf', 'application/pdf');
} catch (\Exception $e) {
Expand Down Expand Up @@ -960,57 +962,6 @@ private function saveOrDeleteConfig(string $key, ?string $value, string $default
}
}

/**
* Set signature flow configuration
*
* @param bool $enabled Whether to force a signature flow for all documents
* @param string|null $mode Signature flow mode: 'parallel' or 'ordered_numeric' (only used when enabled is true)
* @return DataResponse<Http::STATUS_OK, LibresignMessageResponse, array{}>|DataResponse<Http::STATUS_BAD_REQUEST, LibresignErrorResponse, array{}>|DataResponse<Http::STATUS_INTERNAL_SERVER_ERROR, LibresignErrorResponse, array{}>
*
* 200: Configuration saved successfully
* 400: Invalid signature flow mode provided
* 500: Internal server error
*/
#[ApiRoute(verb: 'POST', url: '/api/{apiVersion}/admin/signature-flow/config', requirements: ['apiVersion' => '(v1)'])]
public function setSignatureFlowConfig(bool $enabled, ?string $mode = null): DataResponse {
try {
if (!$enabled) {
$this->appConfig->deleteKey(Application::APP_ID, 'signature_flow');
return new DataResponse([
'message' => $this->l10n->t('Settings saved'),
]);
}

if ($mode === null) {
return new DataResponse([
'error' => $this->l10n->t('Mode is required when signature flow is enabled.'),
], Http::STATUS_BAD_REQUEST);
}

try {
$signatureFlow = \OCA\Libresign\Enum\SignatureFlow::from($mode);
} catch (\ValueError) {
return new DataResponse([
'error' => $this->l10n->t('Invalid signature flow mode. Use "parallel" or "ordered_numeric".'),
], Http::STATUS_BAD_REQUEST);
}

$this->appConfig->setValueString(
Application::APP_ID,
'signature_flow',
$signatureFlow->value
);

return new DataResponse([
'message' => $this->l10n->t('Settings saved'),
]);
} catch (\Exception $e) {
return new DataResponse([
'error' => $e->getMessage(),
], Http::STATUS_INTERNAL_SERVER_ERROR);
}
}

/**
* Configure DocMDP signature restrictions
*
Expand Down
8 changes: 4 additions & 4 deletions lib/Controller/FileController.php
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ public function validateBinary(): DataResponse {
->toArray();
$statusCode = Http::STATUS_OK;
} catch (InvalidArgumentException $e) {
$message = $this->l10n->t($e->getMessage());
$message = $e->getMessage();
$return = [
'action' => JSActions::ACTION_DO_NOTHING,
'errors' => [['message' => $message]]
Expand Down Expand Up @@ -254,15 +254,15 @@ private function validate(
->toArray();
$statusCode = Http::STATUS_OK;
} catch (LibresignException $e) {
$message = $this->l10n->t($e->getMessage());
$message = $e->getMessage();
$return = [
'action' => JSActions::ACTION_DO_NOTHING,
'errors' => [['message' => $message]]
];
$statusCode = Http::STATUS_NOT_FOUND;
} catch (\Throwable $th) {
$message = $this->l10n->t($th->getMessage());
$this->logger->error($message);
$this->logger->error($th->getMessage(), ['exception' => $th]);
$message = $this->l10n->t('Internal error. Contact admin.');
$return = [
'action' => JSActions::ACTION_DO_NOTHING,
'errors' => [['message' => $message]]
Expand Down
10 changes: 9 additions & 1 deletion lib/Controller/PageController.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
use OCA\Libresign\Service\FileService;
use OCA\Libresign\Service\IdentifyMethod\SignatureMethod\TokenService;
use OCA\Libresign\Service\IdentifyMethodService;
use OCA\Libresign\Service\Policy\PolicyService;
use OCA\Libresign\Service\RequestSignatureService;
use OCA\Libresign\Service\SessionService;
use OCA\Libresign\Service\SignerElementsService;
Expand Down Expand Up @@ -58,6 +59,7 @@ public function __construct(
private AccountService $accountService,
protected SignFileService $signFileService,
protected RequestSignatureService $requestSignatureService,
private PolicyService $policyService,
private SignerElementsService $signerElementsService,
protected IL10N $l10n,
private IdentifyMethodService $identifyMethodService,
Expand Down Expand Up @@ -106,7 +108,13 @@ public function index(): TemplateResponse {

$this->provideSignerSignatues();
$this->initialState->provideInitialState('identify_methods', $this->identifyMethodService->getIdentifyMethodsSettings());
$this->initialState->provideInitialState('signature_flow', $this->appConfig->getValueString(Application::APP_ID, 'signature_flow', \OCA\Libresign\Enum\SignatureFlow::NONE->value));
$resolvedPolicies = [];
foreach ($this->policyService->resolveKnownPolicies() as $policyKey => $resolvedPolicy) {
$resolvedPolicies[$policyKey] = $resolvedPolicy->toArray();
}
$this->initialState->provideInitialState('effective_policies', [
'policies' => $resolvedPolicies,
]);
$this->initialState->provideInitialState('docmdp_config', $this->docMdpConfigService->getConfig());
$this->initialState->provideInitialState('legal_information', $this->appConfig->getValueString(Application::APP_ID, 'legal_information'));

Expand Down
Loading
Loading