Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Comments

[core] Make DataInstance extend AccessibleResource#10365

Open
arnav-makkar wants to merge 4 commits intoaces:main from
arnav-makkar:feature/9511-DataInstance-extends-AccessibleResource
Open

[core] Make DataInstance extend AccessibleResource #10365
arnav-makkar wants to merge 4 commits intoaces:main from
arnav-makkar:feature/9511-DataInstance-extends-AccessibleResource

Conversation

@arnav-makkar
Copy link
Contributor

@arnav-makkar arnav-makkar commented Feb 13, 2026

Brief summary of changes

  1. Updated the DataInstance contract to extend both \JsonSerializable and \LORIS\StudyEntities\AccessibleResource, making isAccessibleBy(\User): bool mandatory for all implementers.
  2. Simplified src/Data/Filters/AccessibleResourceFilter.php by removing the runtime instanceof AccessibleResource guard and calling isAccessibleBy() directly.
  3. Added src/StudyEntities/DataInstanceAccess.php to centralize common center/project access checks (including getter variants and scalar ID normalization with fail-closed behavior).
  4. Added isAccessibleBy() implementations for all previously missing DataInstance classes, using shared helper logic for standard cases and explicit custom logic for exceptions (e.g., MRI violations, protocol-check violations, DICOM no-session rows, permission-gated DTOs).
  5. Added coverage with new unit tests for:
    i. contract enforcement (DataInstanceContractTest)
    ii. helper behavior (DataInstanceAccessTest)
    iii. custom exception behavior (DataInstanceBehaviorTest)

Testing instructions (if applicable)

  1. Run:
    docker compose run -T --rm unit-tests vendor/bin/phpunit --configuration test/phpunit.xml test/unittests/DataInstanceContractTest.php test/unittests/DataInstanceAccessTest.php test/unittests/DataInstanceBehaviorTest.php
  2. Result: targeted Docker unit tests for contract + helper + exception-path behavior passed: OK (16 tests, 139 assertions)

Link(s) to related issue(s)

@github-actions github-actions bot added Language: PHP PR or issue that update PHP code Module: issue_tracker PR or issue related to issue tracker module Module: acknowledgements PR or issue related to acknowledgements module Module: api PR or issue related to api module Module: battery_manager PR or issue related to battery_manager module Module: behavioural_qc PR or issue related behavioural_qc module Module: candidate_list PR or issue related to candidate_list module Module: conflict_resolver PR or issue related to conflict_resolver module Module: datadict PR or issue related to (old) datadict module Module: document_repository PR or issue related to documen_repository module Module: electrophysiology_browser PR or issue related to electrophysiology_browser module Module: electrophysiology_uploader PR or issue related to electrophysiology_uploader Module: examiner PR or issue related to examiner module Module: genomic_browser PR or issue related to genomic_browser module Module: help_editor PR or issue related to help_editor module Module: imaging_browser PR or issue related to imaging_browser module Module: instrument_manager PR or issue related to instrument_manager module Module: media PR or issue related to media module Module: module_manager PR or issue related to module_manager module Module: mri_violations PR or issue related to mri_violations module Module: schedule_module PR or issue related to the schedule_manager module Module: survey_accounts PR or issue related to the survey_accounts module Module: user_accounts PR or issue related to the user_accounts module Module: dicom_archive PR or issue related to dicom_archive module Module: data_release PR or issue related to data_release module labels Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Labels

Language: PHP PR or issue that update PHP code Module: acknowledgements PR or issue related to acknowledgements module Module: api PR or issue related to api module Module: battery_manager PR or issue related to battery_manager module Module: behavioural_qc PR or issue related behavioural_qc module Module: candidate_list PR or issue related to candidate_list module Module: conflict_resolver PR or issue related to conflict_resolver module Module: data_release PR or issue related to data_release module Module: datadict PR or issue related to (old) datadict module Module: dicom_archive PR or issue related to dicom_archive module Module: document_repository PR or issue related to documen_repository module Module: electrophysiology_browser PR or issue related to electrophysiology_browser module Module: electrophysiology_uploader PR or issue related to electrophysiology_uploader Module: examiner PR or issue related to examiner module Module: genomic_browser PR or issue related to genomic_browser module Module: help_editor PR or issue related to help_editor module Module: imaging_browser PR or issue related to imaging_browser module Module: instrument_manager PR or issue related to instrument_manager module Module: issue_tracker PR or issue related to issue tracker module Module: media PR or issue related to media module Module: module_manager PR or issue related to module_manager module Module: mri_violations PR or issue related to mri_violations module Module: schedule_module PR or issue related to the schedule_manager module Module: survey_accounts PR or issue related to the survey_accounts module Module: user_accounts PR or issue related to the user_accounts module

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

DataInstance should extend AccessibleResource

AltStyle によって変換されたページ (->オリジナル) /