RT: Request Tracker
RT 5.0.2 Release Notes
RT 5.0.2beta1 -- 2021-07-26 =========================== RT 5.0.2beta1 is now available for testing. The list of changes included with this release is below. https://download.bestpractical.com/pub/rt/devel/rt-5.0.2beta1.tar.gz https://download.bestpractical.com/pub/rt/devel/rt-5.0.2beta1.tar.gz.asc SHA-256 sums 33ace81760621a108705aeebfcc1375a37e207099df71f403e9e7957418a0b1e rt-5.0.2beta1.tar.gz 84b10b066ccea1d64a86006f5b0ba8334afc2f1d876c72477c047206308f2997 rt-5.0.2beta1.tar.gz.asc General features and fixes * Update Starts on SLA changes even if Starts was already set * Accept usernames for email input fields on ticket create/update * Support group:NAME and group:ID in non-single role input fields * Create an autocompleter for Principals (works with both users and groups) * Support more characters for user/group names in non-single role input fields * Normalize and validate time inputs * Support to generate different dashboard content for each recipient * Use user timezone for date "=" queries in ticket search * Add "Create Via Email" and "Create Via Web" conditions * Fix table wrapping error in Ticket/Update.html * Don't escape queue name in title generation stage as it'll be escaped later * Allow to squelch recipients that also exist in one time inputs * Show all valid statuses on Asset bulk update page * In the datepicker, reset the time part after date input is cleared * Support columns as values in ticket search (ticket values on right-hand side in searches) * Support a friendly syntax for custom field columns as values in ticket search * Allow to specify CF Content/LargeContent columns in the keyword part of SQL * Support role searches like Owner = CF.cid or Owner = Creator * Improve UI of unread messages notification * Sync one time inputs back to checkboxes on ticket update page * Automatically load more txns to fill browser window on scroll history mode * Fix duplicated closing tag for attachment delete links * Remove search string including numbers in ticket autocomplete search on select * Fix RecentlyViewedTickets to deal with shredded/merged tickets * Fix bug that kept 11 tickets in the "recently visited" list instead of 10 * Show dependencies (like dashboards) and confirm before deleting saved searches * Fill up cells of record's last row in search results * Add support of "Lifecycle =" and "Queue LIKE" to GetReferencedQueues for more search options * Support copying saved charts like searches * Fix wrongly duplicated one-time addresses on ticket update page * Add various missing ColumnMap entries * Fix error when removing multiple holders of an asset * Add basic stacked bar chart support * Remove extra closing div on Login/Logout pages * Add option to disable ticket linking in articles by class * Add entry hint as custom field tooltip * Disable submit on enter when input's autocomplete list shows up * Support quoted custom fields as values * Exclude end time when limiting txn date to a day * Trigger UpdateCc/UpdateBcc input change only once when clicking "All recipients" * Sync one-time checkboxes to text inputs in a consistent way * Translate selfservice articles search button (thanks, elacour!) * Support shallow searches for ticket roles * Support to search user defined group names in watcher limit * Support order by watcher's custom fields for ticket search * Support more watcher fields including user cfs in search result format * Add more watcher fields including user cfs to OrderBy/Columns in search builder * Upgrade OrderBy "Owner" to new version "Owner.Name" in saved searchs * Create a standard RT Time Worked report * Add grouping by custom roles for ticket search charts * Reduce space used by Current search on Query Builder to avoid saved search overlap * Group by direct members of role groups for ticket search charts * Use Name as the default watcher field in search results * Allow clearing roles on bulk updates page * Remove unexpected leading spaces in user signature input * Add label text to old-attach form for accessibility * Add the missing "form-control" class to autocomplete cf inputs in query builder * Fix EditSearches title after submission on Query Builder page * Let article summary take the whole width in article list * Pass all request arguments to /SelfService/Open.html * Disable inline edit for related tickets in "Assets" widget of ticket display * Transactions on History.html page should link to transaction display page * Clear "Add Columns" select after change on Query Builder * Translate selfservice articles search button * Render a label for both cases when displaying shredder objects, making checkbox available to select objects to shred * Align label/value columns for Assets widget in ticket display * Use checkbox class for multi select list input * Remove blue background on dropdown-item active * Explicitly exclude "deleted" status from queue list portlet * Require Name field when creating or editing Article * Add QueueListAllStatuses portlet to show tickets info of all statuses * In Self Service, don't explicitly call PageLayout as it's included already * Remove extra closing div on Login/Logout pages * Use 2/10 col layout for custom fields only in transaction display * Use an independent col for each asset custom field grouping * Add the missing from-control css class for queue autocomplete input * Move asset field-specific css classes up to the row instead of just label * Add autocomplete for assets input * Don't change background color on click of dropdown items * Load user-level search preferences for ticket searches only, fixing errors with custom search formats and transaction search results * Add more ticket info to transaction display page * Register the missing autocomplete handler for refreshed inline-edited row * Add webpath to RelatedData href (thanks, jtlarson!) Administration * Generalize Owner logic in Shredder to any Single role group * In shredder, remove SetWatcher rows in transaction history as well * Add setting $AssetMultipleOwner to allow many owners on assets * Default --libs-group value from "bin" to "root" * Add --dry-run option to rt-crontool * In validator, ensure tickets and queues have all of their default role groups, individually * In validator, prompt to create missing default role groups * Skip merged tickets in role groups validation * Allow to create missing queue-level custom role groups when needed * For external auth, support cf mappings like CF.foo and UserCF.foo * Support array and code in attr_map of external auth * Don't quote table names in shredder SQL output * Avoid "Wide character in print" warnings when generating shredder SQL output * Add QuoteWrapWidth option for text quoted during reply/comment * Set the $AttachmentListCount config's default value to 5 * Clarify external auth logging when users are not found * Fix removal of scrips when shredding queues * Avoid errors in shredder when Organization has a hyphen * Avoid errors in shredder when username has a hyphen * Avoid errors in shredder when queue name have a hyphen * Log number of records returned from LDAP search * Support searching NULL(unset) values on user/group admin pages * Only show hints for user CFs configured in external settings on create * Fix removal of custom fields when shredding queues * Add transaction records for dashboard/savedsearch changes * For articles, do not encode HTML if skip Escape HTML option selected * In rt-crontool, add reload-ticket option to refresh metadata before processing * Avoid a known problem version of Mojo::DOM::CSS * Update DBIx::SearchBuilder to 1.68 to avoid segfaults on MariaDB 10.2+ * Add parallel support for crontool * Add Parallel::ForkManager to dependency for parallel crontool * Log the object that exceeds DependenciesLimit in shredder * Remove SetOwner rows in transaction history on user shred * Add ExternalAuth to the exceptions for requiring a password * Reset ObjectCustomField sort order when re-enabling a Custom Field * Update ObjectCustomField sort order only if necessary on re-enable * Pass SavedChartSearchId from chart portlet * Skip rights check when setting default object custom field values * Add support to clear mason cache via web interface * Add LDAP email authentication to External Auth * Don't shred subgroups' member relationships when shredding ticket role groups * Provide a way to select privileged and unprivileged users in admin * Remember IncludeSystemGroups value on page navigation * Add statement-log option to render statement logs in CLI * Support to set sort order of applied custom roles * Show custom roles in correct order on queue watcher and ticket pages * Add no-sqldump option to rt-shredder to avoid generating backups * Add paging support for group Members page * Tweak css for page links to not overflow in Firefox * Add $ShowSearchNavigation option to skip building search navigation links * Add ability to search for disabled users * Restore Ticket object to arguments passed to Preformatted, making ArticleTemplates work again * Reload scrubber rules when web config changes are made * Make statuses having upper cased chars work on lifecycle mappings page * Multiple updates to set proper inputs on RT web configuration page * Restyle admin user select page with a bare titlebox * Upgrade Chart.js to 2.9.4 * In rt-dump-initialdata, add config for "no" variant of the disabled option * In rt-dump-initialdata, skip attributes of attributes in serializeration as it's unsupported yet * Log database config overrides via PreInitLoggerMessages * Add support for deleting configs in database from web UI * On user admin page, remember IncludeSystemGroups value on page navigation * Create new config option for home page support email * Support deleting custom field values on form submit in CF config * In CreateTickets action, allow skipping of create ticket blocks through passing arg * Add support for custom fields on article classes Email Encryption/Signing * Support separate certificates for SMIME encryption and signing * Add encryption and signing options for digest email * Provide an option to skip GnuPG tests * Handle encrypted outgoing emails in digest email * Add OtherCertificatesToSend option for SMIME * Set path to GnuPG binary in GnuPG::Interface constructor (thanks, aruthven!) * Fix uninitialized warnings of $latest_user_main_key for gpg 2.2 * Handle FAILURE keyword for gpg 2.2 * Add gpg.conf for gpg 2.2 so we can specify passphrase in command line * Update warning message tests for gpg 2.2 * Don't override fingerprint if it exists already * Make t/mail/crypt-gnupg.t pass with gpg 2.2 * Quit gpg-agent after tests for gpg 2.2 * Move signed_old_style_with_attachment.eml to emails directory * Always use temp gpg homedir to get a cleaner env * Add extra ignored keywords for gnupg 2.2.x * Fix unit test to cope with variations in how different versions of OpenSSL print certificates * Default cert-digest-algo from SHA1 to SHA256 * Bump GnuPG::Interface to 1.00 to support gpg 2.2 * Report the cert authority in an "assured by ..." clause * Report the S/MIME signer correctly when there is no EmailAddress * Fix a bug in the logic that suppresses the "email is unsigned" warning * Add AgorithmName to info returned by ParseKeysInfo * For GnuPG, add a tooltip with additional info about the signature * Add ability to download GnuPG public keys * Store and display additional info about S/MIME signatures * Extract email addresses from S/MIME certificates as specified in RFC 5750 * Support SMIME certificate revocation using OCSP/CRL * Add deprecation warnings to RT::Test::GnuPG and RT::Test::SMIME. * Allow specification of outbound signing/encryption protocol on a per-queue basis * In Admin/Users/Keys.html, do not call "UseForOutgoing" when we have no $Queue object * Explain conversion of legacy list args to a hash in CheckRecipients * Add RT::Attachment->CryptStatus method * Fix error if a CA certificate does not define CRLDistributionPoints * Keep entire GnuPG fingerprint; don't truncate to 8 characters * Include S/MIME certificate serial number in tooltip * Add ability to download S/MIME certificates * Switch from key to fingerprint for user PrivateKey * Add admin page to manage GnuPG keys * Show "Preferred GnuPG key" input only if GnuPG is enabled * Migrate remaining RT::Test::SMIME in tests to RT::Test::Crypt * Bump GnuPG::Interface to 1.02 to fix secret key deletion issue for gnupg 2.2 * Disable using WKD on GnuPG tests that might attempt to use the network (thanks, puck!) Developer * In Users autocomplete helper, add Initial callback to access incoming values * Fix Type/Recurse/MaxDepth params in Init callback of /Elements/ShowLinksOfType * Add EndOfHead callback to /Elements/Header * Add BeforeTitleBoxStart callback for ShowHistoryHeader * Add ARGSRef and HasTxnCFs args for Default callback of ShowTransaction * Parse Notify action argument assuming it's comma separated * Default lifecycle type to ticket on SelectStatus * Add support for setting user CFs on create * Add sort for external custom field values * Add callbacks to Forward.html * Add callbacks for customizing report queries * Pass ShowHints via a callback to provide a way to hide hints * Add Initial callback in self service Create.html * Add a callback to modify rights on ticket display sections * Add callback in Users autocomplete helper to modify users limit * Add attribute link support * Add callbacks to Admin->Groups->Members page * Allow RT_HOST to be set via environment variable for testing * Add configuration for CI testing with docker via TravisCI * Update configuration to move CI testing from TravisCI to Github Actions * Add ModifyContent callback to ShowTransactionAttachments * Don't touch attachment content's newlines in REST 1.0 * Encode attachment filename to UTF-8 like other fields in REST 1.0 * Force update MIME encoding for ticket creation via REST 1.0 * Exclude MIME attachments when requesting a transaction's content * Add callback for displaying additional content on admin home page * Fix Type/Recurse/MaxDepth param names for Init callback of ShowLinksOfType * Add ModifySystemAttributes callback to system configuration page * Implement RT::Attribute::CurrentUserCanSee for transaction rights check * Allow for string of user IDs to be passed for exclusion from autocomplete results * Add BeforeOption callback to customize Prefs/Other.html * Add BeforeProcessArguments callback to group members * Add option to render TxnRecipients input in ShowSimplifiedRecipients * Tweak RT::Date to parse ISO-8601 combined date and time representations * Add ModifyCollectionListArgs callback to user admin index page * Add callbacks to user admin index page * Call ApplyTransactionBatch only in the most outer Atomic call * Don't call ApplyTransactionBatch in Atomic when in DryRun mode * Add ValidateValue callback in ValidateCustomFields * Pass term and args to ModifyUsersLimit so it can behave differently based on it * Add ModifyGroupsLimit callback for Groups autocomplete * Sync callbacks of Users/Groups autcomplete to Principals * Move source superfish file to versioned directory * Support FromSQL queries for Assets and Transactions in REST 2 * Remove outdated REST 2 test code that's for RT 4 * Add more search args to Initial callback in Search Results to modify them * Add callbacks to user admin index page * Drop jquery.jgrowl.map hint as we don't actually serve the map file * Do not remove WebPath from undefined result page in menu (thanks, voegelas!) * Add AfterQueueAddresses callback for queue admin page * Add ModifyUsersLimit callback to user search page * Add support for custom fields in REST2 JSON query Documentation * Fix configure's --libs-group help string * Add documentation for serializer/importer process * Document columns as values in ticket search * Move SignatureAboveQuote documentation to Message box properties * Fix pod warnings in RT::User docs * Document more helpful shredder indexes (thanks, greg.vernon!) * Document DisplayTotalTimeWorked option and default to off * Document additional plackup options via rt-server * Document a fix for perl module permissions problem * Document new queue and lifecycle search options * Apply some changes from updated RT 5 docs * Add external docs images to local * Document recommended Apache MPM for RT * Cite explicit author for eye dropper icon * Add basic POD for RT::ObjectCustomFields * Document different sorting based on Postgresql local setting * Document the timezone comparison fix in UPGRADING * Update Articles docs to include disabling ticket linking * Document shrink-cgm-table upgrade step * Add context to the CF searching documentation * Add docs for new shallow search option * Clarify docs on how to pass additional CLI options to Init * Update rt-shredder documentation * Document the Transaction Batch bug fix * Document the database updates for the Owner.Name change * Convert pod link to private method to code format * Document custom role group search * Add docs for User Time Worked Report * Add docs describing chart group-by with roles * Document $UserAutocreateDefaultsOnLogin only once * Add --user to process dashboard subscriptions for a single user only * Update third-party README versions * Add documentation for REST2 custom field JSON queries * Update REST2 docs for TransactionSQL and AssetSQL * Document how to show Final Priority if desired * Add version to fontawesome third-party directory Internals * Probe system level cache to speed up right check procedure * With Perl 5.18 and later, warn if permissions prevent a site config from being loaded * Switch to SHA-256 for snapshot checksums as in release notes * Reuse CanonicalizePrincipal in DeleteRoleMember * Dump parsed source code instead of "DUMMY" for sub references in tests * Defer AJAX recipients update a little bit to get form's latest status * Switch to "POST" when updating ticket search result format via AJAX * Concatenate strings before encoding conversion to avoid character breakage * Set proper transfer encoding to avoid long lines in email * Fix uninitialized warning in ticket searches with __active__ and __inactive__ items * Add ObjectsForCreating method to support privacy in saved searches * For saved searches, split objects lists for creating and loading * Try harder to get custom field objects to inspect in searches * Use CanonicalizePrincipal to attempt to load users * Handle subject tag if prefixed with http:// by email clients * Only remove extra CF values when they are actually extra * Confirm record is defined before calling id * Remove delete of old CF values as AddValueForObject already handles it * Fall through to false on watcher rights check * Allow queue CF rights to apply on single-queue searches in charts * Clear user CFs from form args if set on create * Add multipart/form-data encoding to EditAboutMe form * Set QUOTEVALUE only if necessary to use default behavior as much as possible * Handle multipart attached emails when TreatAttachedEmailAsFiles is enabled * Load Test::MockTime earlier to fully replace time functions in core * Sort hashes in attribute content to avoid unnecessary updates * Include related transactions for attribute serialization * Check txn's fields for its relationship with ticket * Fix inconsistent datatypes error for Oracle upgrade * Include related links for attribute serialization * Use the correct CurrentUserCanSetOwner return value in menus and ticket display * Avoid running multiple rt-externalize-attachments simultaneously in tests * Cache Roles method for ticket/queue objects * Don't declare variables in modifier statements as behavior is not defined in Perl * Only keep enabled roles in registered list * Tweak AppliesToObjectPredicate as all registered custom roles are enabled * Avoid duplicated items in index.html in generated docs website * Make sure RT::Queue::CustomRoles returns an empty collection if no rights * Filter queue custom roles by checking current user's right * Fix "Case sensitive search by Queues.Name" warnings in GetReferencedQueues * Don't set RowsPerPage if we can't find the pre-defined value * Fall back GroupId to 0 to avoid SQL syntax error * Use subquery when possible in case ticket ids are too many for search chart * Add the missing WebPath to user RelatedData urls * Add the missing WebPath to links in article saved searches * Add username to SQL statement log (thanks, g-wolter!) * Prefix "main." to main columns to avoid "ambiguous column name" error * Don't enable/disable related groups when enabling/disabling custom roles * Group search on queue watchers page is case insensitive * Enable previously disabled custom role groups * Don't recursively add members to ticket role groups in CachedGroupMembers * Check direct group members in recursive member methods for ticket role groups * Check direct group members in rights check for ticket role groups * Exclude ticket role groups for recursive validity check in CachedGroupMembers * Update shrink-cgm-table to remove indirect members of ticket role groups * Check role's direct group members for ticket watcher searches * Check role's direct group members for ticket watcher group searches * Convert simple OR'd statements in TicketSQL to use IN for better performance * Convert more OR'd clauses to use "IN" for performance * Skip internal users in user list on admin page * Convert rt-crontool to RT::Interface::CLI Init function * Add a rule to explicitly handle verbose|v in CLI * Remove Requestors from ticket Accessible as it's not a core field * Exclude user defined groups in role groups for _WatcherJoin * On Pg 9 switch key/value pair if value is CF value and key is not * Support to create ticket/asset role groups lazily * Default PrincipalId to 0 to avoid SQL error for not-existing role groups * Improve RoleGroup method to create the group if asked * Optionally validate Requestor/AdminCc/Cc as they could be lazily created * Ensure values returned from DistinctFieldValues are utf8 * Hide "Total" row for not-distinct results in search chart to avoid confusion * URL of user autocomplete for unprivileged users should be below /SelfService * Trap fatal errors when processing column map values * Move priority translation before status for better performance * Use core RT::Interface::Web::CSSClass for priority (thanks, elacour!) * Use CSSClass() to clean up spaces/non-ascii chars on priority select (thanks, elacour!) * Use CSSClass() to clean up spaces/non-ascii chars search results (thanks, elacour!) * Ensure values returned from DistinctFieldValues are utf8 * Add arg for ShowCustomFieldCustomGroupings to pass in classes for groupings A complete changelog is available from git by running: git log rt-5.0.1..rt-5.0.2beta1 or visiting https://github.com/bestpractical/rt/compare/rt-5.0.1...rt-5.0.2beta1