Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
This is for asset custom roles, tickets don't have this issue as the
result message was customized in RT::Ticket already.
|
|
RegisterRoles is used to refresh custom roles in
RT::Interface::Web::MaybeRebuildCustomRolesCache, but previously it just
updated enabled ones and wrongly ignored disabled/deleted ones.
This commit updates the logic to remove existing custom roles first and
then fill new data from scratch, which fixes the issue.
|
|
This covers both search builder and bulk update.
|
|
|
|
This allows custom roles to be reused for any object class, not just tickets
and queues.
|
|
We are going to add new options including "CreateGroupPredicate",
"AppliesToObjectPredicate" and "Subgroup".
|
|
This will be added to CustomRoles to support custom roles on assets
and other record types.
This generalizes and deprecates /Admin/Elements/SelectCustomFieldLookupType in
favor of a new /Admin/Elements/SelectLookupType. That way we can use it on the
CustomRole Modify page
|
|
|
|
With this we can easily go from the output of ->Roles to an RT::CustomRole
object.
|
|
This change shows the default value option in the custom
field admin page for more objects. Once set, the default is
populated on the create page for these objects.
|
|
|
|
|
|
The filter variable in UserExists isn't a Net::LDAP::Filter obj
so fails the as_string method.
Additionally, search_filter is more correct since it contains the
final constructed filter.
|
|
|
|
If $TreatAttachedEmailAsFiles is true, message-like attachments wouldn't
be split into parts in RT database, in which case "OriginalContent"
could return decoded strings(with utf-8 flag on), which "ContentAsMIME"
doesn't like(it feeds OriginalContent to MIME::Body::Scalar) and could
cause the following warning(when there are some non-ascii chars):
Strings with code points over 0xFF may not be mapped into in-memory file handles
Even worse, it dies if you stringify the returned MIME::Entity object:
open body: Invalid argument at .../MIME/Entity.pm line 1897.
This commit fixes the issue by encoding content accordingly.
|
|
|
|
|
|
|
|
Because the tests don't use https to talk to the server they need
WebSecureCookie set to 0.
|
|
When using custom rights in lifecycles, a user with only a right such as
"CloseTicket" should trigger the update of "Resolved" field without
"ModifyTicket" right.
|
|
$fh is a ref to the filehandle given by cgi. Hence if this method is called
twice (it is if you installed RT::Extension::MandatoryOnTransition with
Upload/Image CF support[1]) the second reading will return empty data because
it starts at end of file.
[1] - https://github.com/bestpractical/rt-extension-mandatoryontransition/pull/6
|
|
The RT CLI also calls this function, but may not provide a current user.
This ensures statements still get logged without error.
|
|
|
|
5.0-trunk
|
|
6c0cbbbd introduced an extra structure check for HTML aimed
at allowing well-formed tables in email to be displayed
in ticket history.
RT also sends other types of HTML through the scrubber and
HTML::Gumbo undoes some of the escaping applied by EscapeHTML,
which is necessary for properly displaying apostrophes in
column titles. This causes the Saved Search portlet titles
to display incorrectly for titles with apostrophes.
Add an optional parameter to skip the structure check for
these cases where structure isn't an issue and the extra
parse causes problems when modifying the content.
|
|
|
|
When importing with --originalid, we need to add ticket custom field
values using RT API, which calls $RT::Handle->BeginTransaction in
RT::CustomField::AddValueForObject. But if AutoCommit if off, the
BeginTransaction would error out at least with MySQL:
DBD::mysql::db begin_work failed: Already in a transaction
This commit refactors code to not turn off AutoCommit globally, but adds
an additional transaction for each data file, which implicitly turns off
AutoCommit and is also compatible with other BeginTransaction calls.
|
|
|
|
|
|
|
|
The documentation incorrectly states that it can check for the Type of
Owner and Requestor, but the method cannot.
The incorrect documentation was copied from RT::Ticket, which does have
those Types.
|
|
|
|
RT could generate URLs with empty ResultPage(e.g. when building menus),
which doesn't hurt as it falls back to "/Search/Result.html".
In ba3a82144d we added validation of ResultPage, to avoid redirecting to
arbitrary pages for security reasons. As empty ResultPage falls back
safely, allowing it is totally fine.
This is mainly to get rid of the following warning:
ResultPage is not whitelisted, ignoring
|
|
|
|
As part of the separation of duties from OwnerEmail.
|
|
This change adds the SameSite option to RT's session cookies, with a
default value of 'Lax', providing a reasonable amount of protection
against CSRF attacks while still allowing most integrations of RT with
other systems.
It also provides a config option, WebSameSiteCookies to allow the value
to be changed from the default. Current standards allow values of
'Strict', 'Lax', and 'None'. Any value other than these will cause a
warning to be logged. Current standards also require the Secure option
to be set on the cookie when using the 'None' value, so a warning is
logged if 'None' is specified and WebSecureCookies isn't set.
|
|
Change 755042f6a99 moved the menu building logic from a mason component
into a Perl module. As part of this conversion one instance of an
RT::Interface::Web function call (Menu) wasn't converted into a method
call on an appropriate object, triggering a runtime error when viewing
/SelfService/Asset/Display.html.
Fixes: I#37377
|
|
|
|
|
|
|
|
|
|
The examples were in RT_Config.pm.in as comments. Move them into the
POD to make it easier for users to find.
Also remove the comment from code that mentions an example,
but didn't actually have one.
|
|
|
|
RT::User::Create defaults Name to EmailAddress if no
Name is passed and it does so after EmailAddress has
been processed by CanonicalizeEmailAddress. EmailAddress
can be modified based on CanonicalizeEmailAddressMatch and
CanonicalizeEmailAddressReplace settings, so this makes sure
Name and EmailAddress get the same value.
When LoadOrCreateByEmail defaults Name to EmailAddress before
calling Create, Create uses the passed value. This can then
result in different values for Name and EmailAddress. Remove
the default setting from LoadOrCreateByEmail and let Create
set the correct default, if needed.
|
|
|
|
|