Open shahar3000 opened 2 years ago
A temporary fix that seems to solve the issue:
diff --git a/lib/Service/BoardService.php b/lib/Service/BoardService.php
index b6e749f6..235d21c3 100644
--- a/lib/Service/BoardService.php
+++ b/lib/Service/BoardService.php
@@ -438,7 +438,8 @@ class BoardService {
throw new BadRequestException('color must be provided');
}
- if (is_bool($archived) === false) {
+ $tmp = filter_var($archived, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
+ if ($tmp === NULL) {
throw new BadRequestException('archived must be a boolean');
}
@@ -447,7 +448,7 @@ class BoardService {
$changes = new ChangeSet($board);
$board->setTitle($title);
$board->setColor($color);
- $board->setArchived($archived);
+ $board->setArchived($tmp);
$changes->setAfter($board);
$this->boardMapper->update($board); // operate on clone so we can check for updated fields
$this->boardMapper->mapOwner($board);
Describe the bug I am trying to archive a board using the deck API but no matter how I pass the archived field, I get
archived must be a boolean
exception. Looking at the source code I see that the input is validated byis_bool($archived) === false
(reference) So I am wondering, given that the http request translates everything to string, is there any valid string here? Inboards/{board_id}/acl POST
API I was able to use0|1
to disable/enable the sharing (edit/share/manage) so perhaps the input validation of board update should be similar to the sharing API or maybe try to cast the value, e.g.:To Reproduce Run a curl command on an existing board you wish to archive:
Expected behavior The given board should be archived.
Server details
**Operating system**: **Web server:** Apache/2.4.53 (Debian) (apache2handler) **Database:** mysql 10.7.3 **PHP version:** 8.0.18 **Nextcloud version:** (see Nextcloud admin page) 24.0.0 - 24.0.0.12 **Where did you install Nextcloud from:** unknown (Nextcloud container) **Signing status:** ``` No errors have been found. ``` **List of activated apps:** ``` Enabled: - accessibility: 1.10.0 - activity: 2.16.0 - admin_audit: 1.14.0 - approval: 1.0.9 - calendar: 3.3.2 - circles: 24.0.0 - cloud_federation_api: 1.7.0 - comments: 1.14.0 - contacts: 4.1.1 - contactsinteraction: 1.5.0 - dashboard: 7.4.0 - dav: 1.22.0 - deck: 1.7.1 - event_update_notification: 1.5.0 - federatedfilesharing: 1.14.0 - federation: 1.14.0 - files: 1.19.0 - files_accesscontrol: 1.14.0 - files_automatedtagging: 1.14.0 - files_external: 1.16.1 - files_markdown: 2.3.6 - files_mindmap: 0.0.26 - files_pdfviewer: 2.5.0 - files_retention: 1.13.1 - files_rightclick: 1.3.0 - files_sharing: 1.16.2 - files_trashbin: 1.14.0 - files_versions: 1.17.0 - files_videoplayer: 1.13.0 - firstrunwizard: 2.13.0 - groupfolders: 12.0.0 - impersonate: 1.11.0 - logreader: 2.9.0 - lookup_server_connector: 1.12.0 - nextcloud_announcements: 1.13.0 - notifications: 2.12.0 - oauth2: 1.12.0 - password_policy: 1.14.0 - provisioning_api: 1.14.0 - quicknotes: 0.8.0 - recommendations: 1.3.0 - richdocuments: 6.1.0 - serverinfo: 1.14.0 - settings: 1.6.0 - sharebymail: 1.14.0 - socialsharing_email: 2.5.0 - spreed: 14.0.2 - support: 1.7.0 - survey_client: 1.12.0 - systemtags: 1.14.0 - tables: 0.1.2 - text: 3.5.1 - theming: 1.15.0 - twofactor_backupcodes: 1.13.0 - twofactor_duo: 0.0.2 - twofactor_email: 2.4.0 - twofactor_totp: 6.4.0 - updatenotification: 1.14.0 - user_ldap: 1.14.1 - user_status: 1.4.0 - viewer: 1.8.0 - workflow_script: 1.8.0 - workflowengine: 2.6.0 Disabled: - encryption - photos: 1.6.0 - privacy: 1.8.0 - weather_status: 1.4.0 ``` **Nextcloud configuration:** ``` { "system": { "htaccess.RewriteBase": "\/", "memcache.local": "\\OC\\Memcache\\APCu", "apps_paths": [ { "path": "\/var\/www\/html\/apps", "url": "\/apps", "writable": false }, { "path": "\/var\/www\/html\/custom_apps", "url": "\/custom_apps", "writable": true } ], "memcache.distributed": "\\OC\\Memcache\\Redis", "memcache.locking": "\\OC\\Memcache\\Redis", "redis": { "host": "***REMOVED SENSITIVE VALUE***", "password": "***REMOVED SENSITIVE VALUE***", "port": 6379 }, "mail_smtpmode": "smtp", "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "mail_smtpport": "587", "mail_smtpsecure": "tls", "mail_smtpauth": true, "mail_smtpauthtype": "LOGIN", "mail_smtpname": "***REMOVED SENSITIVE VALUE***", "mail_from_address": "***REMOVED SENSITIVE VALUE***", "mail_domain": "***REMOVED SENSITIVE VALUE***", "mail_smtppassword": "***REMOVED SENSITIVE VALUE***", "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "localhost", "***REMOVED SENSITIVE VALUE***" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "dbtype": "mysql", "version": "24.0.0.12", "overwrite.cli.url": "***REMOVED SENSITIVE VALUE***", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbport": "", "dbtableprefix": "oc_", "mysql.utf8mb4": true, "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "installed": true, "instanceid": "***REMOVED SENSITIVE VALUE***", "overwritehost": "***REMOVED SENSITIVE VALUE***", "overwriteprotocol": "https", "overwritewebroot": "\/", "trusted_proxies": "***REMOVED SENSITIVE VALUE***", "force_language": "***REMOVED SENSITIVE VALUE***", "default_locale": "***REMOVED SENSITIVE VALUE***", "skeletondirectory": "", "lost_password_link": "disabled", "ldapProviderFactory": "OCA\\User_LDAP\\LDAPProviderFactory", "twofactor_duo": { "IKEY": "***REMOVED SENSITIVE VALUE***", "SKEY": "***REMOVED SENSITIVE VALUE***", "HOST": "***REMOVED SENSITIVE VALUE***", "AKEY": "***REMOVED SENSITIVE VALUE***" }, "maintenance": false, "log_rotate_size": "10485760", "share_folder": "Shared", "app_install_overwrite": [ "workflow_script" ] } } ``` **Are you using an external user-backend, if yes which one:** LDAP