934 Commits

Author SHA1 Message Date
Tomas Hykel 008f39b7f4 Revert "[STC-356] Disallow setting journal aggregation period to >2 hours"
This reverts commit 75de0dbcd2.
2026-06-12 15:36:40 +02:00
Tomas Hykel 75de0dbcd2 [STC-356] Disallow setting journal aggregation period to >2 hours 2026-06-12 15:31:55 +02:00
Yauheni Suhakou 33198e8d68 [75226] Update XWiki auth integration (#23321)
Update the XWiki auth screen: added client secret, aligned the UI with the storage UI. 
Auth now supports only registered clients on the XWiki side. 

---------

Co-authored-by: Jan Sandbrink <j.sandbrink@openproject.com>
2026-05-29 12:04:10 +02:00
Oliver Günther 6f63faeed1 Extract and use charset to properly encode attachments 2026-05-29 10:26:43 +02:00
Oliver Günther c0b44edc8e Correctly replace attachments on wiki pages
https://community.openproject.org/work_packages/75373
2026-05-26 20:22:37 +02:00
Ivan Kuchin 0f7b6be8ae allow deleting calculated value custom fields without enterprise token 2026-05-19 17:42:43 +02:00
Behrokh Satarnejad d924c255cf [69524] Primerize Types form configuration page (#22854)
* Create the section component

* Create the form configuration component

* Create a controller

* change form template

* Use primer dialog for reset to defaults button

* show WP configuration modal while creating a related WPs table

* Fix the drag and drop functionality without save button

* Fix renaming functionality

* Use generic drag and drop in form configuration and move all client side action handling to server side

* Fix embedded query form configuration regressions

* Add data test selectors to all elements that we used for test

* update the current tests with the new implementations and design

* Add new tests for new controller of sections and rows

* WP quesry row should only have edit quesry action

* Update transformer spec regarding the new changes

* Fix the failing test in reset form configuration and some tests for actions

* Fix rubocop errors

* Fix eslint errors

* Add spec for removing a section

* Use condensed border boxes

* fix failing specs

* fix failing specs

* Switch the buttons in form configuration component

* Create the section at the top of the list

* Instead of using UUID, use the name of the group as the key

* Add missing check for EE for section actions

* Remove angular components

* Use action list instead of a border box for left side panel

* Reduce the margin between the right side panel and sub header, add some space to the query table left side, span to the whole available space

* Show validation errors while updating and creating a section

* Use a danger dialog for reset to default

* Add a confirmation for removing the section

* Align items in the row

* Use test_selector instead of data-test-selector

* Create move_action in rb file

* Create move_action in rb file

* Simplify section component

* Simplify form configuration component

* Remove dialog for rename and delete section on missing EE

* Create a component for inactive attribute list

* Create a separate component for reset dialog

* Remove EE feedback dialog

* Remove form partial which is not needed anymore

* Remove unused js strings

* Update using update_via_turbo

* Remove form configuration rows controller

* Create a blanksalte component

* Fix failing specs

* Fix failing specs

* Fix failing specs

* Remove unused translation strings

* Align form configuration section routes with actual create flow

* Change section to group

* Change section to group in services and controllers

* Change section to group in en.yml

* Fix rubocop errors

* Move the query group persistence assertion from the JS feature spec
to the synchronous form configuration groups controller spec.

* Reuse query service result in embedded query build

* Keep inactive attribute filter after turbo list refresh

* Extract form configuration group edit state into form model

* Fix the failing test

* Potential fix for pull request finding 'CodeQL / Potentially uninitialized local variable'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Rename inactive attribute component inputs

* Refine reset dialog wording for form configuration

* Use direct Turbo action for adding attribute groups

* Reuse generic filter-list controller for inactive attributes

* Remove focus impelementation in ts

* Group form configuration Stimulus controllers under one namespace

* Use turbo request service in form configuration controller

* Clarify legacy group key normalization in form config contract

* Replace inactive attribute list wrapper via turbo stream

* Extract duplicate untitled group key generation into Type::FormGroup.next_untitled_key

* Auto-generate untitled group name on create instead of returning an error

* Avoid mixed return types in form config group create service

* Extract shared form configuration group service behavior into concern

* Fix spacing for the last group and italic font for the placeholder rows

* Replace Angular no-results component with Primer Banner on form configuration page

* Hide dropped element immediately to prevent flickering before Turbo Stream response

* Reload type before rendering create error to prevent duplicate groups

* Await service initialization before use to prevent potential race condition

* Replace sleep calls with deterministic waits in form configuration spec

* Handle malformed JSON and invalid query errors gracefully in form configuration update

* Make query group label a clickable button and empty group hint italic

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-05-13 12:56:18 +02:00
Klaus Zanders 3d6c423cff Merge pull request #23086 from opf/stored-attributes-contract
Stored attributes contract
2026-05-07 10:54:18 +02:00
Klaus Zanders b3d51774b3 Merge pull request #22968 from opf/resource-management-module
Introduce Resource Management Module
2026-05-06 17:07:07 +02:00
Eric Schubert aaa7727c55 Merge pull request #22877 from opf/feature/73440-extend-wiki-permissions
[#73440] refactor wiki permissions
2026-05-06 16:50:15 +02:00
OpenProject Actions CI 0778811719 Merge branch 'release/17.4' into dev 2026-05-06 12:47:03 +00:00
Klaus Zanders 0d206fe947 Add helpers to properly handle stored attributes in contracts 2026-05-06 12:11:44 +02:00
Oliver Günther c660802146 Merge remote-tracking branch 'origin/release/17.3' into release/17.4 2026-05-06 09:19:25 +02:00
Klaus Zanders 56e3d6214d Do not show Resource Management permissions in Role Editor 2026-05-05 15:30:51 +02:00
Eric Schubert 4531cb2cc0 [#73440] refactor wiki permissions
- https://community.openproject.org/work_packages/73440
- merge several wiki permissions into 4 resulting ones
- fix some smaller rubocop issues
2026-05-04 10:27:00 +02:00
Yauheni Suhakou 2cd9a7b08f [73319] Create and use two-way OAuth 2 (#22816)
Update the OAuth section for the XWiki provider. Since XWiki provides only public clients, there are no client secrets passed in between OP and XWiki. Thus, the UI is, for now, just a mock with a client ID.
2026-04-28 14:07:37 +02:00
Klaus Zanders a9a6898153 Remove inline disables for DynamicFindBy 2026-04-27 09:22:18 +02:00
Oliver Günther ab301f7de4 Merge pull request #22875 from opf/fix/validate-conditions-on-custom-action-execute
Validate conditions on execution of custom action
2026-04-27 08:41:04 +02:00
Oliver Günther 6877e29351 Validate current user password confirmation when changing passwords through API
https://community.openproject.org/work_packages/74335
2026-04-23 14:19:50 +02:00
Oliver Günther 8ca79798db Validate conditions on execution of custom action
https://community.openproject.org/projects/openproject/work_packages/74294/activity
2026-04-22 14:12:42 +02:00
Oliver Günther 34952c8217 Stricter parent validations when updating work packages
https://community.openproject.org/work_packages/72363
2026-04-22 14:03:23 +02:00
Klaus Zanders 8d15647333 Merge pull request #22372 from opf/departments-admin-menu
Manage organizations in Admin Menu
2026-04-20 12:39:43 +02:00
Oliver Günther f41c5e6f80 Validate user limit when trying to activate user 2026-04-17 09:04:59 +02:00
OpenProject Actions CI 0c68614c6e Merge branch 'release/17.3' into dev 2026-04-17 04:32:30 +00:00
Klaus Zanders 710eac52ba Do not allow changing the organizational_unit flag and allow setting parent in the API 2026-04-16 18:11:13 +02:00
Klaus Zanders 50104b4900 Ensure department check also runs when adding users to a Group via AddUsersService 2026-04-16 17:24:28 +02:00
Oliver Günther 90383cc7ff Prevent moving news between projects
This is not expected to be possible
2026-04-16 15:36:47 +02:00
Oliver Günther e757ef55b6 Properly check move_work_packages in source project
https://community.openproject.org/work_packages/73924
2026-04-16 14:33:46 +02:00
Jan Sandbrink f9d8bc6614 Introduce SubclassResponsibility error
This error is intended for cases when a method is
intentionally not implemented, because the module/class defining
it expects a subclass (or class including the module) to implement
the method.

This is intended to distinguish it from other cases, such as:
* feature not implemented yet
* edge case of a method call not yet supported

Notably it avoids the misuse of the Ruby-defined NotImplementedError,
which is only intended for much more specific scenarios:

> Raised when a feature is not implemented on the current platform. For example, methods depending on the fsync or fork system calls may raise this exception [...]

Also see https://docs.ruby-lang.org/en/master/NotImplementedError.html
2026-03-27 08:14:56 +01:00
Klaus Zanders cdaf14a82a Fix flaky BCF projects API spec returning 403 instead of 422
When the BCF API receives a request to change the project id
(e.g. `{ project_id: 0 }`), the SetAttributesService sets
`model.id = 0` in memory before the contract validates.

The contract's `validate_user_allowed_to_manage` correctly uses
`with_unchanged_id` to restore the original id before checking
permissions. However, `writable_attributes` was not protected the
same way — it checked permissions against the model with the
user-modified id (0), which doesn't exist.

This caused the UserPermissibleService's permission cache to be
populated with an entry for the model keyed at hash(0) with empty
permissions. When `validate_user_allowed_to_manage` later restored
the id and queried the cache at hash(original_id), Ruby's Hash could
exhibit undefined behavior due to the mutable key — during rehash
operations, the stale entry (empty permissions) could shadow the
correct one, causing the authorization check to intermittently fail
with 403 instead of the expected 422 (id not writable).

Wrap `writable_attributes` in `with_unchanged_id` so permission
checks always run against the original project, consistent with
`validate_user_allowed_to_manage`.
2026-03-25 11:59:15 +01:00
Jens Ulferts 6e0121f935 Merge pull request #22054 from opf/feature/72227-sprints-included-in-api-get-sprint-and-sprint-on-work-package-resource
Add sprint GET end points to v3
2026-03-19 13:08:54 +01:00
ulferts a847296c8a Merge remote-tracking branch 'origin/dev' into feature/72227-sprints-included-in-api-get-sprint-and-sprint-on-work-package-resource 2026-03-18 22:03:40 +01:00
Klaus Zanders 3e873e1649 Merge branch 'dev' into user-working-times 2026-03-18 15:58:55 +01:00
Klaus Zanders 56ee2395a2 Allow setting new group fields in Groups::BaseContract 2026-03-17 10:45:52 +01:00
Klaus Zanders 59696bbd7d Merge branch 'dev' into user-working-times 2026-03-11 14:25:33 +01:00
Klaus Zanders e2cc1c3512 Add TODO about possibly adding a future-only validation 2026-03-11 14:06:28 +01:00
ulferts 1240b066c3 work package creation and update including backlogs properties 2026-03-11 13:24:32 +01:00
Alexander Brandon Coles bb1eb75e20 Merge branch 'dev' into merge-release/17.2-20260310041552
# Conflicts:
#	config/locales/crowdin/uk.yml
#	modules/backlogs/config/locales/crowdin/uk.yml
#	modules/budgets/config/locales/crowdin/ko.yml
#	modules/meeting/config/locales/crowdin/de.yml
2026-03-10 05:37:12 -03:00
Pavel Balashou 10299f9943 Fix some jira import bugs. Add finalization modal.
- Modify jira_open_project_references unique constrant
  It must include jira_id, because multiple jira configuration can refer same op entities.
- Add finalization modal
- Add finalization job
  The job activates all imported users. Checks that user_limit has not been exceeded with specific contact.
  Destroys jira_* objects.
- Destroy jira object on revert as well.
- Use EmptyContract when creating Attachements, WorkPackages, Members
- Import only users fetched in the current jira_import. It was a bug.
2026-03-09 16:10:17 +01:00
Klaus Zanders b6b34a53fb Remove some redundant code. 2026-03-06 13:28:59 +01:00
Klaus Zanders d3d693f239 Implement editing and adding of non working times 2026-03-06 13:28:53 +01:00
Klaus Zanders 727cb945e8 Refactor UserNonWorkingDay into a model that covers date ranges 2026-03-06 13:28:35 +01:00
Klaus Zanders 26293ca87f Implement form for working hours 2026-03-06 13:28:27 +01:00
Klaus Zanders e32a3f65ff Implement frontend for managing working hours 2026-03-06 13:28:20 +01:00
Klaus Zanders 51558b9979 Add services for UserNonWorkingDay and UserWorkingHours 2026-03-06 13:27:49 +01:00
Klaus Zanders 69fed13739 Merge branch 'dev' into merge-release/17.2-20260305132820 2026-03-05 15:50:11 +01:00
as-op 1e42928863 [#72803] Jira import: previous configuration data are still visible when we go back with back button and create a new configuration
https://community.openproject.org/work_packages/72803
2026-03-05 11:12:26 +01:00
Dombi Attila 60e747be2b Apply manage_sprint_items permissions on the work packages model and update specs.
- Do not remove the assign_versions permission anymore, it still has
purpose in the context of updating work packages.
- Update backlog related specs.
2026-03-03 15:40:36 +02:00
Ivan Kuchin 41d82d8322 Merge pull request #21452 from opf/feature/64264-comment-fields-for-project-attributes
Feature/64264 comment fields for project attributes
2026-02-25 20:45:14 +01:00
Ivan Kuchin 138d6500b2 handle writeableness of comments in project create contract 2026-02-25 20:07:03 +01:00