RT: Request Tracker
RT 4.4.5 Release Notes
RT 4.4.5beta1 -- 2021-07-26 =========================== RT 4.4.5beta1 is now available for testing. The list of changes included with this release is below. https://download.bestpractical.com/pub/rt/devel/rt-4.4.5beta1.tar.gz https://download.bestpractical.com/pub/rt/devel/rt-4.4.5beta1.tar.gz.asc SHA-256 sums 5e6a6ecd395456bd89a3915b7f47ccb461892bfe0b2b3c0868431d64f15c7101 rt-4.4.5beta1.tar.gz 3bcc9ab83b673664f485677d58e3f395e57083f74693fbf52fa4b6ed36b8f5d5 rt-4.4.5beta1.tar.gz.asc General user features * 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 * 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 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 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 * 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 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 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 * 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 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 statment log * 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 A complete changelog is available from git by running: git log rt-4.4.4..rt-4.4.5beta1 or visiting https://github.com/bestpractical/rt/compare/rt-4.4.4...rt-4.4.5beta1