rt 4.0.23
authorIvan Kohler <ivan@freeside.biz>
Fri, 12 Jun 2015 22:19:00 +0000 (15:19 -0700)
committerIvan Kohler <ivan@freeside.biz>
Fri, 12 Jun 2015 22:19:00 +0000 (15:19 -0700)
846 files changed:
rt/Makefile.in
rt/README
rt/bin/rt
rt/bin/rt-crontool.in
rt/bin/rt-mailgate.in
rt/bin/rt.in
rt/configure
rt/devel/tools/change-loc-msgstr
rt/devel/tools/extract-message-catalog
rt/devel/tools/factory
rt/devel/tools/license_tag
rt/devel/tools/merge-rosetta.pl
rt/devel/tools/rt-apache
rt/devel/tools/rt-attributes-editor
rt/devel/tools/rt-static-docs
rt/devel/tools/tweak-template-locstring
rt/docs/UPGRADING.mysql
rt/etc/upgrade/3.8-ical-extension.in
rt/etc/upgrade/4.0-customfield-checkbox-extension
rt/etc/upgrade/4.0-customfield-checkbox-extension.in
rt/etc/upgrade/generate-rtaddressregexp.in
rt/etc/upgrade/sanity-check-stylesheets.pl
rt/etc/upgrade/shrink_cgm_table.pl
rt/etc/upgrade/shrink_transactions_table.pl
rt/etc/upgrade/split-out-cf-categories.in
rt/etc/upgrade/upgrade-articles
rt/etc/upgrade/upgrade-articles.in
rt/etc/upgrade/upgrade-mysql-schema.pl
rt/etc/upgrade/vulnerable-passwords.in
rt/lib/RT.pm
rt/lib/RT/ACE.pm
rt/lib/RT/ACL.pm
rt/lib/RT/Action.pm
rt/lib/RT/Action/AutoOpen.pm
rt/lib/RT/Action/Autoreply.pm
rt/lib/RT/Action/CreateTickets.pm
rt/lib/RT/Action/CreateTickets.pm.orig
rt/lib/RT/Action/EscalatePriority.pm
rt/lib/RT/Action/ExtractSubjectTag.pm
rt/lib/RT/Action/LinearEscalate.pm
rt/lib/RT/Action/Notify.pm
rt/lib/RT/Action/NotifyAsComment.pm
rt/lib/RT/Action/NotifyGroup.pm
rt/lib/RT/Action/NotifyGroupAsComment.pm
rt/lib/RT/Action/RecordComment.pm
rt/lib/RT/Action/RecordCorrespondence.pm
rt/lib/RT/Action/SendEmail.pm
rt/lib/RT/Action/SetPriority.pm
rt/lib/RT/Action/SetStatus.pm
rt/lib/RT/Action/UserDefined.pm
rt/lib/RT/Approval.pm
rt/lib/RT/Approval/Rule.pm
rt/lib/RT/Approval/Rule/Created.pm
rt/lib/RT/Approval/Rule/NewPending.pm
rt/lib/RT/Approval/Rule/Passed.pm
rt/lib/RT/Approval/Rule/Rejected.pm
rt/lib/RT/Article.pm
rt/lib/RT/Articles.pm
rt/lib/RT/Attachment.pm
rt/lib/RT/Attachments.pm
rt/lib/RT/Attribute.pm
rt/lib/RT/Attributes.pm
rt/lib/RT/Base.pm
rt/lib/RT/CachedGroupMember.pm
rt/lib/RT/CachedGroupMembers.pm
rt/lib/RT/Class.pm
rt/lib/RT/Classes.pm
rt/lib/RT/Condition.pm
rt/lib/RT/Condition/AnyTransaction.pm
rt/lib/RT/Condition/BeforeDue.pm
rt/lib/RT/Condition/CloseTicket.pm
rt/lib/RT/Condition/Overdue.pm
rt/lib/RT/Condition/OwnerChange.pm
rt/lib/RT/Condition/PriorityChange.pm
rt/lib/RT/Condition/PriorityExceeds.pm
rt/lib/RT/Condition/QueueChange.pm
rt/lib/RT/Condition/ReopenTicket.pm
rt/lib/RT/Condition/StatusChange.pm
rt/lib/RT/Condition/UserDefined.pm
rt/lib/RT/Config.pm
rt/lib/RT/Crypt/GnuPG.pm
rt/lib/RT/CurrentUser.pm
rt/lib/RT/CustomField.pm
rt/lib/RT/CustomFieldValue.pm
rt/lib/RT/CustomFieldValues.pm
rt/lib/RT/CustomFieldValues/External.pm
rt/lib/RT/CustomFieldValues/Groups.pm
rt/lib/RT/CustomFields.pm
rt/lib/RT/Dashboard.pm
rt/lib/RT/Dashboard/Mailer.pm
rt/lib/RT/Dashboards.pm
rt/lib/RT/Date.pm
rt/lib/RT/EmailParser.pm
rt/lib/RT/Generated.pm.in
rt/lib/RT/Graph/Tickets.pm
rt/lib/RT/Group.pm
rt/lib/RT/GroupMember.pm
rt/lib/RT/GroupMembers.pm
rt/lib/RT/Groups.pm
rt/lib/RT/Handle.pm
rt/lib/RT/I18N.pm
rt/lib/RT/I18N/cs.pm
rt/lib/RT/I18N/de.pm
rt/lib/RT/I18N/fr.pm
rt/lib/RT/I18N/i_default.pm
rt/lib/RT/I18N/ru.pm
rt/lib/RT/Installer.pm
rt/lib/RT/Interface/CLI.pm
rt/lib/RT/Interface/Email.pm
rt/lib/RT/Interface/Email/Auth/GnuPG.pm
rt/lib/RT/Interface/Email/Auth/MailFrom.pm
rt/lib/RT/Interface/REST.pm
rt/lib/RT/Interface/Web.pm
rt/lib/RT/Interface/Web/Handler.pm
rt/lib/RT/Interface/Web/Menu.pm
rt/lib/RT/Interface/Web/QueryBuilder.pm
rt/lib/RT/Interface/Web/QueryBuilder/Tree.pm
rt/lib/RT/Interface/Web/Request.pm
rt/lib/RT/Interface/Web/Session.pm
rt/lib/RT/Lifecycle.pm
rt/lib/RT/Link.pm
rt/lib/RT/Links.pm
rt/lib/RT/ObjectClass.pm
rt/lib/RT/ObjectClasses.pm
rt/lib/RT/ObjectCustomField.pm
rt/lib/RT/ObjectCustomFieldValue.pm
rt/lib/RT/ObjectCustomFieldValues.pm
rt/lib/RT/ObjectCustomFields.pm
rt/lib/RT/ObjectTopic.pm
rt/lib/RT/ObjectTopics.pm
rt/lib/RT/Plugin.pm
rt/lib/RT/Pod/HTML.pm
rt/lib/RT/Pod/HTMLBatch.pm
rt/lib/RT/Pod/Search.pm
rt/lib/RT/Principal.pm
rt/lib/RT/Principals.pm
rt/lib/RT/Queue.pm
rt/lib/RT/Queues.pm
rt/lib/RT/Record.pm
rt/lib/RT/Reminders.pm
rt/lib/RT/Report/Tickets.pm
rt/lib/RT/Report/Tickets/Entry.pm
rt/lib/RT/Rule.pm
rt/lib/RT/Ruleset.pm
rt/lib/RT/SQL.pm
rt/lib/RT/SavedSearch.pm
rt/lib/RT/SavedSearches.pm
rt/lib/RT/Scrip.pm
rt/lib/RT/ScripAction.pm
rt/lib/RT/ScripActions.pm
rt/lib/RT/ScripCondition.pm
rt/lib/RT/ScripConditions.pm
rt/lib/RT/Scrips.pm
rt/lib/RT/Search.pm
rt/lib/RT/Search/ActiveTicketsInQueue.pm
rt/lib/RT/Search/FromSQL.pm
rt/lib/RT/Search/Googleish.pm
rt/lib/RT/SearchBuilder.pm
rt/lib/RT/SharedSetting.pm
rt/lib/RT/SharedSettings.pm
rt/lib/RT/Shredder.pm
rt/lib/RT/Shredder/ACE.pm
rt/lib/RT/Shredder/Attachment.pm
rt/lib/RT/Shredder/CachedGroupMember.pm
rt/lib/RT/Shredder/Constants.pm
rt/lib/RT/Shredder/CustomField.pm
rt/lib/RT/Shredder/CustomFieldValue.pm
rt/lib/RT/Shredder/Dependencies.pm
rt/lib/RT/Shredder/Dependency.pm
rt/lib/RT/Shredder/Exceptions.pm
rt/lib/RT/Shredder/Group.pm
rt/lib/RT/Shredder/GroupMember.pm
rt/lib/RT/Shredder/Link.pm
rt/lib/RT/Shredder/ObjectCustomFieldValue.pm
rt/lib/RT/Shredder/POD.pm
rt/lib/RT/Shredder/Plugin.pm
rt/lib/RT/Shredder/Plugin/Attachments.pm
rt/lib/RT/Shredder/Plugin/Base.pm
rt/lib/RT/Shredder/Plugin/Base/Dump.pm
rt/lib/RT/Shredder/Plugin/Base/Search.pm
rt/lib/RT/Shredder/Plugin/Objects.pm
rt/lib/RT/Shredder/Plugin/SQLDump.pm
rt/lib/RT/Shredder/Plugin/Summary.pm
rt/lib/RT/Shredder/Plugin/Tickets.pm
rt/lib/RT/Shredder/Plugin/Users.pm
rt/lib/RT/Shredder/Principal.pm
rt/lib/RT/Shredder/Queue.pm
rt/lib/RT/Shredder/Record.pm
rt/lib/RT/Shredder/Scrip.pm
rt/lib/RT/Shredder/ScripAction.pm
rt/lib/RT/Shredder/ScripCondition.pm
rt/lib/RT/Shredder/Template.pm
rt/lib/RT/Shredder/Ticket.pm
rt/lib/RT/Shredder/Transaction.pm
rt/lib/RT/Shredder/User.pm
rt/lib/RT/Squish.pm
rt/lib/RT/Squish/CSS.pm
rt/lib/RT/Squish/JS.pm
rt/lib/RT/System.pm
rt/lib/RT/Template.pm
rt/lib/RT/Templates.pm
rt/lib/RT/Test.pm
rt/lib/RT/Test/Apache.pm
rt/lib/RT/Test/Email.pm
rt/lib/RT/Test/GnuPG.pm
rt/lib/RT/Test/Web.pm
rt/lib/RT/Ticket.pm
rt/lib/RT/Tickets.pm
rt/lib/RT/Tickets_SQL.pm
rt/lib/RT/Topic.pm
rt/lib/RT/Topics.pm
rt/lib/RT/Transaction.pm
rt/lib/RT/Transactions.pm
rt/lib/RT/URI.pm
rt/lib/RT/URI/a.pm
rt/lib/RT/URI/base.pm
rt/lib/RT/URI/fsck_com_article.pm
rt/lib/RT/URI/fsck_com_rt.pm
rt/lib/RT/URI/t.pm
rt/lib/RT/User.pm
rt/lib/RT/Users.pm
rt/lib/RT/Util.pm
rt/sbin/rt-attributes-viewer.in
rt/sbin/rt-clean-sessions.in
rt/sbin/rt-dump-metadata.in
rt/sbin/rt-email-dashboards.in
rt/sbin/rt-email-digest.in
rt/sbin/rt-email-group-admin.in
rt/sbin/rt-fulltext-indexer.in
rt/sbin/rt-message-catalog
rt/sbin/rt-preferences-viewer.in
rt/sbin/rt-server.fcgi.in
rt/sbin/rt-server.in
rt/sbin/rt-session-viewer.in
rt/sbin/rt-setup-database.in
rt/sbin/rt-setup-fulltext-index.in
rt/sbin/rt-shredder.in
rt/sbin/rt-test-dependencies.in
rt/sbin/rt-validate-aliases.in
rt/sbin/rt-validator.in
rt/sbin/standalone_httpd.in
rt/share/html/Admin/Articles/Classes/CustomFields.html
rt/share/html/Admin/Articles/Classes/GroupRights.html
rt/share/html/Admin/Articles/Classes/Modify.html
rt/share/html/Admin/Articles/Classes/Objects.html
rt/share/html/Admin/Articles/Classes/Topics.html
rt/share/html/Admin/Articles/Classes/UserRights.html
rt/share/html/Admin/Articles/Classes/index.html
rt/share/html/Admin/Articles/Elements/Topics
rt/share/html/Admin/Articles/index.html
rt/share/html/Admin/CustomFields/GroupRights.html
rt/share/html/Admin/CustomFields/Modify.html
rt/share/html/Admin/CustomFields/Objects.html
rt/share/html/Admin/CustomFields/UserRights.html
rt/share/html/Admin/CustomFields/index.html
rt/share/html/Admin/Elements/AddCustomFieldValue
rt/share/html/Admin/Elements/ConfigureMyRT
rt/share/html/Admin/Elements/CreateUserCalled
rt/share/html/Admin/Elements/EditCustomField
rt/share/html/Admin/Elements/EditCustomFieldValues
rt/share/html/Admin/Elements/EditCustomFieldValuesSource
rt/share/html/Admin/Elements/EditCustomFields
rt/share/html/Admin/Elements/EditQueueWatcherGroup
rt/share/html/Admin/Elements/EditQueueWatchers
rt/share/html/Admin/Elements/EditRights
rt/share/html/Admin/Elements/EditRightsCategoryTabs
rt/share/html/Admin/Elements/EditScrip
rt/share/html/Admin/Elements/EditScrips
rt/share/html/Admin/Elements/EditTemplates
rt/share/html/Admin/Elements/EditUserComments
rt/share/html/Admin/Elements/Header
rt/share/html/Admin/Elements/ListGlobalCustomFields
rt/share/html/Admin/Elements/ListGlobalScrips
rt/share/html/Admin/Elements/ModifyTemplate
rt/share/html/Admin/Elements/PickCustomFields
rt/share/html/Admin/Elements/PickObjects
rt/share/html/Admin/Elements/Portal
rt/share/html/Admin/Elements/QueueRightsForUser
rt/share/html/Admin/Elements/SelectCustomField
rt/share/html/Admin/Elements/SelectCustomFieldLookupType
rt/share/html/Admin/Elements/SelectCustomFieldRenderType
rt/share/html/Admin/Elements/SelectCustomFieldType
rt/share/html/Admin/Elements/SelectGroups
rt/share/html/Admin/Elements/SelectModifyGroup
rt/share/html/Admin/Elements/SelectModifyQueue
rt/share/html/Admin/Elements/SelectModifyUser
rt/share/html/Admin/Elements/SelectNewGroupMembers
rt/share/html/Admin/Elements/SelectRights
rt/share/html/Admin/Elements/SelectScrip
rt/share/html/Admin/Elements/SelectScripAction
rt/share/html/Admin/Elements/SelectScripCondition
rt/share/html/Admin/Elements/SelectSingleOrMultiple
rt/share/html/Admin/Elements/SelectStage
rt/share/html/Admin/Elements/SelectTemplate
rt/share/html/Admin/Elements/SelectUsers
rt/share/html/Admin/Elements/ShowKeyInfo
rt/share/html/Admin/Global/CustomFields/Class-Article.html
rt/share/html/Admin/Global/CustomFields/Groups.html
rt/share/html/Admin/Global/CustomFields/Queue-Tickets.html
rt/share/html/Admin/Global/CustomFields/Queue-Transactions.html
rt/share/html/Admin/Global/CustomFields/Queues.html
rt/share/html/Admin/Global/CustomFields/Users.html
rt/share/html/Admin/Global/CustomFields/index.html
rt/share/html/Admin/Global/GroupRights.html
rt/share/html/Admin/Global/MyRT.html
rt/share/html/Admin/Global/Scrip.html
rt/share/html/Admin/Global/Scrips.html
rt/share/html/Admin/Global/Template.html
rt/share/html/Admin/Global/Templates.html
rt/share/html/Admin/Global/Topics.html
rt/share/html/Admin/Global/UserRights.html
rt/share/html/Admin/Global/index.html
rt/share/html/Admin/Groups/GroupRights.html
rt/share/html/Admin/Groups/History.html
rt/share/html/Admin/Groups/Members.html
rt/share/html/Admin/Groups/Modify.html
rt/share/html/Admin/Groups/UserRights.html
rt/share/html/Admin/Groups/index.html
rt/share/html/Admin/Queues/CustomField.html
rt/share/html/Admin/Queues/CustomFields.html
rt/share/html/Admin/Queues/GroupRights.html
rt/share/html/Admin/Queues/History.html
rt/share/html/Admin/Queues/Modify.html
rt/share/html/Admin/Queues/People.html
rt/share/html/Admin/Queues/Scrip.html
rt/share/html/Admin/Queues/Scrips.html
rt/share/html/Admin/Queues/Template.html
rt/share/html/Admin/Queues/Templates.html
rt/share/html/Admin/Queues/UserRights.html
rt/share/html/Admin/Queues/index.html
rt/share/html/Admin/Tools/Configuration.html
rt/share/html/Admin/Tools/Queries.html
rt/share/html/Admin/Tools/Shredder/Dumps/dhandler
rt/share/html/Admin/Tools/Shredder/Elements/DumpFileLink
rt/share/html/Admin/Tools/Shredder/Elements/Error/NoRights
rt/share/html/Admin/Tools/Shredder/Elements/Error/NoStorage
rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Attachment
rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--Ticket
rt/share/html/Admin/Tools/Shredder/Elements/Object/RT--User
rt/share/html/Admin/Tools/Shredder/Elements/ObjectCheckBox
rt/share/html/Admin/Tools/Shredder/Elements/PluginArguments
rt/share/html/Admin/Tools/Shredder/Elements/PluginHelp
rt/share/html/Admin/Tools/Shredder/Elements/SelectObjects
rt/share/html/Admin/Tools/Shredder/Elements/SelectPlugin
rt/share/html/Admin/Tools/Shredder/autohandler
rt/share/html/Admin/Tools/Shredder/index.html
rt/share/html/Admin/Tools/Theme.html
rt/share/html/Admin/Tools/index.html
rt/share/html/Admin/Users/CustomFields.html
rt/share/html/Admin/Users/GnuPG.html
rt/share/html/Admin/Users/History.html
rt/share/html/Admin/Users/Memberships.html
rt/share/html/Admin/Users/Modify.html
rt/share/html/Admin/Users/MyRT.html
rt/share/html/Admin/Users/index.html
rt/share/html/Admin/autohandler
rt/share/html/Admin/index.html
rt/share/html/Approvals/Display.html
rt/share/html/Approvals/Elements/Approve
rt/share/html/Approvals/Elements/PendingMyApproval
rt/share/html/Approvals/Elements/ShowDependency
rt/share/html/Approvals/autohandler
rt/share/html/Approvals/index.html
rt/share/html/Articles/Article/Delete.html
rt/share/html/Articles/Article/Display.html
rt/share/html/Articles/Article/Edit.html
rt/share/html/Articles/Article/Elements/EditBasics
rt/share/html/Articles/Article/Elements/EditCustomFields
rt/share/html/Articles/Article/Elements/EditLinks
rt/share/html/Articles/Article/Elements/EditTopics
rt/share/html/Articles/Article/Elements/LinkEntryInstructions
rt/share/html/Articles/Article/Elements/Preformatted
rt/share/html/Articles/Article/Elements/SearchByCustomField
rt/share/html/Articles/Article/Elements/SelectSavedSearches
rt/share/html/Articles/Article/Elements/SelectSearchPrivacy
rt/share/html/Articles/Article/Elements/ShowHistory
rt/share/html/Articles/Article/Elements/ShowLinks
rt/share/html/Articles/Article/Elements/ShowSavedSearches
rt/share/html/Articles/Article/Elements/ShowSearchCriteria
rt/share/html/Articles/Article/Elements/ShowTopics
rt/share/html/Articles/Article/ExtractFromTicket.html
rt/share/html/Articles/Article/ExtractIntoClass.html
rt/share/html/Articles/Article/ExtractIntoTopic.html
rt/share/html/Articles/Article/History.html
rt/share/html/Articles/Article/PreCreate.html
rt/share/html/Articles/Article/Search.html
rt/share/html/Articles/Elements/BeforeMessageBox
rt/share/html/Articles/Elements/CheckSkipCreate
rt/share/html/Articles/Elements/CreateArticle
rt/share/html/Articles/Elements/GotoArticle
rt/share/html/Articles/Elements/IncludeArticle
rt/share/html/Articles/Elements/NewestArticles
rt/share/html/Articles/Elements/QuickSearch
rt/share/html/Articles/Elements/SelectClass
rt/share/html/Articles/Elements/ShowTopic
rt/share/html/Articles/Elements/ShowTopicLink
rt/share/html/Articles/Elements/UpdatedArticles
rt/share/html/Articles/Topics.html
rt/share/html/Articles/index.html
rt/share/html/Dashboards/Elements/DashboardsForObject
rt/share/html/Dashboards/Elements/Deleted
rt/share/html/Dashboards/Elements/HiddenSearches
rt/share/html/Dashboards/Elements/ListOfDashboards
rt/share/html/Dashboards/Elements/SelectPrivacy
rt/share/html/Dashboards/Elements/ShowDashboards
rt/share/html/Dashboards/Elements/ShowPortlet/component
rt/share/html/Dashboards/Elements/ShowPortlet/dashboard
rt/share/html/Dashboards/Elements/ShowPortlet/search
rt/share/html/Dashboards/Modify.html
rt/share/html/Dashboards/Queries.html
rt/share/html/Dashboards/Render.html
rt/share/html/Dashboards/Subscription.html
rt/share/html/Dashboards/dhandler
rt/share/html/Dashboards/index.html
rt/share/html/Download/CustomFieldValue/dhandler
rt/share/html/Elements/BevelBoxRaisedEnd
rt/share/html/Elements/BevelBoxRaisedStart
rt/share/html/Elements/CSRF
rt/share/html/Elements/Callback
rt/share/html/Elements/Checkbox
rt/share/html/Elements/CollectionAsTable/Header
rt/share/html/Elements/CollectionAsTable/ParseFormat
rt/share/html/Elements/CollectionAsTable/Row
rt/share/html/Elements/CollectionList
rt/share/html/Elements/CollectionListPaging
rt/share/html/Elements/ColumnMap
rt/share/html/Elements/CreateTicket
rt/share/html/Elements/Dashboards
rt/share/html/Elements/EditCustomField
rt/share/html/Elements/EditCustomFieldAutocomplete
rt/share/html/Elements/EditCustomFieldBinary
rt/share/html/Elements/EditCustomFieldCombobox
rt/share/html/Elements/EditCustomFieldDate
rt/share/html/Elements/EditCustomFieldDateTime
rt/share/html/Elements/EditCustomFieldFreeform
rt/share/html/Elements/EditCustomFieldIPAddress
rt/share/html/Elements/EditCustomFieldIPAddressRange
rt/share/html/Elements/EditCustomFieldImage
rt/share/html/Elements/EditCustomFieldSelect
rt/share/html/Elements/EditCustomFieldText
rt/share/html/Elements/EditCustomFieldWikitext
rt/share/html/Elements/EditLinks
rt/share/html/Elements/EditPassword
rt/share/html/Elements/EditTimeValue
rt/share/html/Elements/EmailInput
rt/share/html/Elements/Error
rt/share/html/Elements/Footer
rt/share/html/Elements/Framekiller
rt/share/html/Elements/GnuPG/KeyIssues
rt/share/html/Elements/GnuPG/SelectKeyForEncryption
rt/share/html/Elements/GnuPG/SelectKeyForSigning
rt/share/html/Elements/GnuPG/SignEncryptWidget
rt/share/html/Elements/GotoTicket
rt/share/html/Elements/Header
rt/share/html/Elements/HeaderJavascript
rt/share/html/Elements/ListActions
rt/share/html/Elements/ListMenu
rt/share/html/Elements/Login
rt/share/html/Elements/LoginRedirectWarning
rt/share/html/Elements/Logo
rt/share/html/Elements/MakeClicky
rt/share/html/Elements/Menu
rt/share/html/Elements/MessageBox
rt/share/html/Elements/MyAdminQueues
rt/share/html/Elements/MyRT
rt/share/html/Elements/MyReminders
rt/share/html/Elements/MyRequests
rt/share/html/Elements/MySupportQueues
rt/share/html/Elements/MyTickets
rt/share/html/Elements/PageLayout
rt/share/html/Elements/PersonalQuickbar
rt/share/html/Elements/QueriesAsComment
rt/share/html/Elements/QueryString
rt/share/html/Elements/QueueSummaryByLifecycle
rt/share/html/Elements/QueueSummaryByStatus
rt/share/html/Elements/QuickCreate
rt/share/html/Elements/Quicksearch
rt/share/html/Elements/RT__Article/ColumnMap
rt/share/html/Elements/RT__Class/ColumnMap
rt/share/html/Elements/RT__CustomField/ColumnMap
rt/share/html/Elements/RT__Dashboard/ColumnMap
rt/share/html/Elements/RT__Group/ColumnMap
rt/share/html/Elements/RT__Queue/ColumnMap
rt/share/html/Elements/RT__SavedSearch/ColumnMap
rt/share/html/Elements/RT__Scrip/ColumnMap
rt/share/html/Elements/RT__Template/ColumnMap
rt/share/html/Elements/RT__Ticket/ColumnMap
rt/share/html/Elements/RT__User/ColumnMap
rt/share/html/Elements/Refresh
rt/share/html/Elements/RefreshHomepage
rt/share/html/Elements/SavedSearches
rt/share/html/Elements/ScrubHTML
rt/share/html/Elements/Section
rt/share/html/Elements/SelectAttachmentField
rt/share/html/Elements/SelectBoolean
rt/share/html/Elements/SelectCustomFieldOperator
rt/share/html/Elements/SelectCustomFieldValue
rt/share/html/Elements/SelectDate
rt/share/html/Elements/SelectDateRelation
rt/share/html/Elements/SelectDateType
rt/share/html/Elements/SelectEqualityOperator
rt/share/html/Elements/SelectGroups
rt/share/html/Elements/SelectIPRelation
rt/share/html/Elements/SelectLang
rt/share/html/Elements/SelectLinkType
rt/share/html/Elements/SelectMatch
rt/share/html/Elements/SelectNewTicketQueue
rt/share/html/Elements/SelectOwner
rt/share/html/Elements/SelectOwnerAutocomplete
rt/share/html/Elements/SelectOwnerDropdown
rt/share/html/Elements/SelectPriority
rt/share/html/Elements/SelectQueue
rt/share/html/Elements/SelectResultsPerPage
rt/share/html/Elements/SelectSortOrder
rt/share/html/Elements/SelectStatus
rt/share/html/Elements/SelectTicketSortBy
rt/share/html/Elements/SelectTicketTypes
rt/share/html/Elements/SelectTimeUnits
rt/share/html/Elements/SelectTimezone
rt/share/html/Elements/SelectUsers
rt/share/html/Elements/SelectWatcherType
rt/share/html/Elements/SetupSessionCookie
rt/share/html/Elements/ShowCustomFieldBinary
rt/share/html/Elements/ShowCustomFieldDate
rt/share/html/Elements/ShowCustomFieldDateTime
rt/share/html/Elements/ShowCustomFieldImage
rt/share/html/Elements/ShowCustomFieldText
rt/share/html/Elements/ShowCustomFieldWikitext
rt/share/html/Elements/ShowCustomFields
rt/share/html/Elements/ShowLink
rt/share/html/Elements/ShowLinks
rt/share/html/Elements/ShowMemberships
rt/share/html/Elements/ShowRelationLabel
rt/share/html/Elements/ShowReminders
rt/share/html/Elements/ShowSearch
rt/share/html/Elements/ShowUser
rt/share/html/Elements/ShowUserConcise
rt/share/html/Elements/ShowUserEmailFrequency
rt/share/html/Elements/ShowUserVerbose
rt/share/html/Elements/SimpleSearch
rt/share/html/Elements/Submit
rt/share/html/Elements/Tabs
rt/share/html/Elements/TicketList
rt/share/html/Elements/TitleBox
rt/share/html/Elements/TitleBoxEnd
rt/share/html/Elements/TitleBoxStart
rt/share/html/Elements/ValidateCustomFields
rt/share/html/Elements/WidgetBar
rt/share/html/Helpers/Autocomplete/CustomFieldValues
rt/share/html/Helpers/Autocomplete/Groups
rt/share/html/Helpers/Autocomplete/Owners
rt/share/html/Helpers/Autocomplete/Users
rt/share/html/Helpers/Autocomplete/autohandler
rt/share/html/Helpers/TicketHistory
rt/share/html/Helpers/Toggle/ShowRequestor
rt/share/html/Helpers/Toggle/TicketBookmark
rt/share/html/Helpers/autohandler
rt/share/html/Install/Basics.html
rt/share/html/Install/DatabaseDetails.html
rt/share/html/Install/DatabaseType.html
rt/share/html/Install/Elements/Errors
rt/share/html/Install/Elements/Wrapper
rt/share/html/Install/Finish.html
rt/share/html/Install/Global.html
rt/share/html/Install/Initialize.html
rt/share/html/Install/Sendmail.html
rt/share/html/Install/autohandler
rt/share/html/Install/index.html
rt/share/html/NoAuth/Helpers/CustomLogo/dhandler
rt/share/html/NoAuth/Login.html
rt/share/html/NoAuth/Logout.html
rt/share/html/NoAuth/Reminder.html
rt/share/html/NoAuth/RichText/autohandler
rt/share/html/NoAuth/RichText/dhandler
rt/share/html/NoAuth/css/aileron/InHeader
rt/share/html/NoAuth/css/aileron/base.css
rt/share/html/NoAuth/css/aileron/boxes.css
rt/share/html/NoAuth/css/aileron/forms.css
rt/share/html/NoAuth/css/aileron/images/dhandler
rt/share/html/NoAuth/css/aileron/layout.css
rt/share/html/NoAuth/css/aileron/login.css
rt/share/html/NoAuth/css/aileron/main.css
rt/share/html/NoAuth/css/aileron/misc.css
rt/share/html/NoAuth/css/aileron/msie.css
rt/share/html/NoAuth/css/aileron/msie6.css
rt/share/html/NoAuth/css/aileron/nav.css
rt/share/html/NoAuth/css/aileron/ticket-lists.css
rt/share/html/NoAuth/css/aileron/ticket-search.css
rt/share/html/NoAuth/css/aileron/ticket.css
rt/share/html/NoAuth/css/autohandler
rt/share/html/NoAuth/css/ballard/InHeader
rt/share/html/NoAuth/css/ballard/base.css
rt/share/html/NoAuth/css/ballard/boxes.css
rt/share/html/NoAuth/css/ballard/images/dhandler
rt/share/html/NoAuth/css/ballard/layout.css
rt/share/html/NoAuth/css/ballard/main.css
rt/share/html/NoAuth/css/ballard/misc.css
rt/share/html/NoAuth/css/ballard/msie.css
rt/share/html/NoAuth/css/ballard/msie6.css
rt/share/html/NoAuth/css/ballard/nav.css
rt/share/html/NoAuth/css/ballard/ticket-lists.css
rt/share/html/NoAuth/css/ballard/ticket-search.css
rt/share/html/NoAuth/css/ballard/ticket.css
rt/share/html/NoAuth/css/base/admin.css
rt/share/html/NoAuth/css/base/articles.css
rt/share/html/NoAuth/css/base/collection.css
rt/share/html/NoAuth/css/base/forms.css
rt/share/html/NoAuth/css/base/history-folding.css
rt/share/html/NoAuth/css/base/jquery-ui.css
rt/share/html/NoAuth/css/base/login.css
rt/share/html/NoAuth/css/base/main.css
rt/share/html/NoAuth/css/base/misc.css
rt/share/html/NoAuth/css/base/msie6.css [new file with mode: 0644]
rt/share/html/NoAuth/css/base/nav.css
rt/share/html/NoAuth/css/base/portlets.css
rt/share/html/NoAuth/css/base/rights-editor.css
rt/share/html/NoAuth/css/base/theme-editor.css
rt/share/html/NoAuth/css/base/ticket-form.css
rt/share/html/NoAuth/css/base/ticket.css
rt/share/html/NoAuth/css/base/tools.css
rt/share/html/NoAuth/css/dhandler
rt/share/html/NoAuth/css/print.css
rt/share/html/NoAuth/css/web2/InHeader
rt/share/html/NoAuth/css/web2/base.css
rt/share/html/NoAuth/css/web2/boxes.css
rt/share/html/NoAuth/css/web2/images/dhandler
rt/share/html/NoAuth/css/web2/layout.css
rt/share/html/NoAuth/css/web2/main.css
rt/share/html/NoAuth/css/web2/misc.css
rt/share/html/NoAuth/css/web2/msie.css
rt/share/html/NoAuth/css/web2/msie6.css
rt/share/html/NoAuth/css/web2/nav.css
rt/share/html/NoAuth/css/web2/ticket-lists.css
rt/share/html/NoAuth/css/web2/ticket-search.css
rt/share/html/NoAuth/css/web2/ticket.css
rt/share/html/NoAuth/iCal/dhandler
rt/share/html/NoAuth/images/autohandler
rt/share/html/NoAuth/js/autohandler
rt/share/html/NoAuth/js/cascaded.js
rt/share/html/NoAuth/js/combobox.js
rt/share/html/NoAuth/js/dhandler
rt/share/html/NoAuth/js/history-folding.js
rt/share/html/NoAuth/js/jquery-ui-patch-datepicker.js
rt/share/html/NoAuth/js/jquery_noconflict.js
rt/share/html/NoAuth/js/late.js
rt/share/html/NoAuth/js/titlebox-state.js
rt/share/html/NoAuth/js/userautocomplete.js
rt/share/html/NoAuth/js/util.js
rt/share/html/NoAuth/rss/dhandler
rt/share/html/Prefs/MyRT.html
rt/share/html/Prefs/Other.html
rt/share/html/Prefs/Quicksearch.html
rt/share/html/Prefs/Search.html
rt/share/html/Prefs/SearchOptions.html
rt/share/html/REST/1.0/Forms/attachment/default
rt/share/html/REST/1.0/Forms/group/customfields
rt/share/html/REST/1.0/Forms/group/default
rt/share/html/REST/1.0/Forms/group/ns
rt/share/html/REST/1.0/Forms/queue/customfields
rt/share/html/REST/1.0/Forms/queue/default
rt/share/html/REST/1.0/Forms/queue/ns
rt/share/html/REST/1.0/Forms/queue/ticketcustomfields
rt/share/html/REST/1.0/Forms/ticket/attachments
rt/share/html/REST/1.0/Forms/ticket/comment
rt/share/html/REST/1.0/Forms/ticket/default
rt/share/html/REST/1.0/Forms/ticket/history
rt/share/html/REST/1.0/Forms/ticket/links
rt/share/html/REST/1.0/Forms/ticket/merge
rt/share/html/REST/1.0/Forms/ticket/take
rt/share/html/REST/1.0/Forms/transaction/default
rt/share/html/REST/1.0/Forms/user/default
rt/share/html/REST/1.0/Forms/user/ns
rt/share/html/REST/1.0/NoAuth/mail-gateway
rt/share/html/REST/1.0/autohandler
rt/share/html/REST/1.0/dhandler
rt/share/html/REST/1.0/logout
rt/share/html/REST/1.0/search/dhandler
rt/share/html/REST/1.0/search/ticket
rt/share/html/REST/1.0/ticket/comment
rt/share/html/REST/1.0/ticket/link
rt/share/html/REST/1.0/ticket/merge
rt/share/html/Search/Article.html
rt/share/html/Search/Build.html
rt/share/html/Search/Bulk.html
rt/share/html/Search/Chart
rt/share/html/Search/Chart.html
rt/share/html/Search/Edit.html
rt/share/html/Search/Elements/Article
rt/share/html/Search/Elements/BuildFormatString
rt/share/html/Search/Elements/Chart
rt/share/html/Search/Elements/ConditionRow
rt/share/html/Search/Elements/DisplayOptions
rt/share/html/Search/Elements/EditFormat
rt/share/html/Search/Elements/EditQuery
rt/share/html/Search/Elements/EditSearches
rt/share/html/Search/Elements/EditSort
rt/share/html/Search/Elements/Graph
rt/share/html/Search/Elements/NewListActions
rt/share/html/Search/Elements/PickBasics
rt/share/html/Search/Elements/PickCFs
rt/share/html/Search/Elements/PickCriteria
rt/share/html/Search/Elements/PickTicketCFs
rt/share/html/Search/Elements/ResultsRSSView
rt/share/html/Search/Elements/SearchPrivacy
rt/share/html/Search/Elements/SearchesForObject
rt/share/html/Search/Elements/SelectAndOr
rt/share/html/Search/Elements/SelectChartType
rt/share/html/Search/Elements/SelectGroup
rt/share/html/Search/Elements/SelectGroupBy
rt/share/html/Search/Elements/SelectLinks
rt/share/html/Search/Elements/SelectPersonType
rt/share/html/Search/Elements/SelectSearchObject
rt/share/html/Search/Elements/SelectSearchesForObjects
rt/share/html/Search/Graph.html
rt/share/html/Search/Results.html
rt/share/html/Search/Results.rdf
rt/share/html/Search/Results.tsv
rt/share/html/Search/Simple.html
rt/share/html/SelfService/Article/Display.html
rt/share/html/SelfService/Article/Search.html
rt/share/html/SelfService/Article/autohandler
rt/share/html/SelfService/Attachment/dhandler
rt/share/html/SelfService/Closed.html
rt/share/html/SelfService/Create.html
rt/share/html/SelfService/CreateTicketInQueue.html
rt/share/html/SelfService/Display.html
rt/share/html/SelfService/Elements/GotoTicket
rt/share/html/SelfService/Elements/Header
rt/share/html/SelfService/Elements/MyRequests
rt/share/html/SelfService/Elements/SearchArticle
rt/share/html/SelfService/Error.html
rt/share/html/SelfService/Prefs.html
rt/share/html/SelfService/Update.html
rt/share/html/SelfService/index.html
rt/share/html/Ticket/Attachment/WithHeaders/dhandler
rt/share/html/Ticket/Attachment/dhandler
rt/share/html/Ticket/Create.html
rt/share/html/Ticket/Display.html
rt/share/html/Ticket/Elements/AddAttachments
rt/share/html/Ticket/Elements/AddWatchers
rt/share/html/Ticket/Elements/Bookmark
rt/share/html/Ticket/Elements/BulkLinks
rt/share/html/Ticket/Elements/ClickToShowHistory
rt/share/html/Ticket/Elements/EditBasics
rt/share/html/Ticket/Elements/EditCustomFields
rt/share/html/Ticket/Elements/EditDates
rt/share/html/Ticket/Elements/EditPeople
rt/share/html/Ticket/Elements/EditTransactionCustomFields
rt/share/html/Ticket/Elements/EditWatchers
rt/share/html/Ticket/Elements/FindAttachments
rt/share/html/Ticket/Elements/FindTransactions
rt/share/html/Ticket/Elements/FoldStanzaJS
rt/share/html/Ticket/Elements/LoadTextAttachments
rt/share/html/Ticket/Elements/PreviewScrips
rt/share/html/Ticket/Elements/Reminders
rt/share/html/Ticket/Elements/ShowAttachments
rt/share/html/Ticket/Elements/ShowBasics
rt/share/html/Ticket/Elements/ShowCustomFields
rt/share/html/Ticket/Elements/ShowDates
rt/share/html/Ticket/Elements/ShowDependencies
rt/share/html/Ticket/Elements/ShowGnuPGStatus
rt/share/html/Ticket/Elements/ShowGroupMembers
rt/share/html/Ticket/Elements/ShowHistory
rt/share/html/Ticket/Elements/ShowMembers
rt/share/html/Ticket/Elements/ShowMessageHeaders
rt/share/html/Ticket/Elements/ShowMessageStanza
rt/share/html/Ticket/Elements/ShowParents
rt/share/html/Ticket/Elements/ShowPeople
rt/share/html/Ticket/Elements/ShowPriority
rt/share/html/Ticket/Elements/ShowQueue
rt/share/html/Ticket/Elements/ShowRequestor
rt/share/html/Ticket/Elements/ShowRequestorExtraInfo
rt/share/html/Ticket/Elements/ShowRequestorTickets
rt/share/html/Ticket/Elements/ShowRequestorTicketsActive
rt/share/html/Ticket/Elements/ShowRequestorTicketsAll
rt/share/html/Ticket/Elements/ShowRequestorTicketsInactive
rt/share/html/Ticket/Elements/ShowSimplifiedRecipients
rt/share/html/Ticket/Elements/ShowSummary
rt/share/html/Ticket/Elements/ShowTime
rt/share/html/Ticket/Elements/ShowTransaction
rt/share/html/Ticket/Elements/ShowTransactionAttachments
rt/share/html/Ticket/Elements/ShowUpdateStatus
rt/share/html/Ticket/Elements/ShowUserEntry
rt/share/html/Ticket/Elements/UpdateCc
rt/share/html/Ticket/Forward.html
rt/share/html/Ticket/GnuPG.html
rt/share/html/Ticket/Graphs/Elements/EditGraphProperties
rt/share/html/Ticket/Graphs/Elements/ShowGraph
rt/share/html/Ticket/Graphs/Elements/ShowLegends
rt/share/html/Ticket/Graphs/dhandler
rt/share/html/Ticket/Graphs/index.html
rt/share/html/Ticket/History.html
rt/share/html/Ticket/Modify.html
rt/share/html/Ticket/ModifyAll.html
rt/share/html/Ticket/ModifyDates.html
rt/share/html/Ticket/ModifyLinks.html
rt/share/html/Ticket/ModifyPeople.html
rt/share/html/Ticket/Reminders.html
rt/share/html/Ticket/ShowEmailRecord.html
rt/share/html/Ticket/Update.html
rt/share/html/Ticket/autohandler
rt/share/html/Tools/MyDay.html
rt/share/html/Tools/MyReminders.html
rt/share/html/Tools/Offline.html
rt/share/html/Tools/index.html
rt/share/html/User/Prefs.html
rt/share/html/Widgets/BulkEdit
rt/share/html/Widgets/BulkProcess
rt/share/html/Widgets/ComboBox
rt/share/html/Widgets/FinalizeWidgetArguments
rt/share/html/Widgets/Form/Boolean
rt/share/html/Widgets/Form/Integer
rt/share/html/Widgets/Form/Select
rt/share/html/Widgets/Form/String
rt/share/html/Widgets/SavedSearch
rt/share/html/Widgets/SelectionBox
rt/share/html/Widgets/TitleBox
rt/share/html/Widgets/TitleBoxEnd
rt/share/html/Widgets/TitleBoxStart
rt/share/html/autohandler
rt/share/html/dhandler
rt/share/html/index.html
rt/share/html/l
rt/share/html/l_unsafe
rt/share/html/m/_elements/footer
rt/share/html/m/_elements/full_site_link
rt/share/html/m/_elements/header
rt/share/html/m/_elements/login
rt/share/html/m/_elements/menu
rt/share/html/m/_elements/raw_style
rt/share/html/m/_elements/ticket_list
rt/share/html/m/_elements/ticket_menu
rt/share/html/m/_elements/wrapper
rt/share/html/m/dhandler
rt/share/html/m/index.html
rt/share/html/m/logout
rt/share/html/m/style.css
rt/share/html/m/ticket/autohandler
rt/share/html/m/ticket/create
rt/share/html/m/ticket/history
rt/share/html/m/ticket/reply
rt/share/html/m/ticket/select_create_queue
rt/share/html/m/ticket/show
rt/share/html/m/tickets/search
rt/t/api/emailparser.t
rt/t/fts/indexed_pg.t

index 89d4bf1..8d109f3 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a397ca7..5a4b923 100755 (executable)
--- a/rt/README
+++ b/rt/README
@@ -71,8 +71,10 @@ GENERAL INSTALLATION
     you were coming from 3.6.7, you would want to review UPGRADING-3.6,
     UPGRADING-3.8 and UPGRADING-4.0
 
-    It is particularly important that you read the warnings at the top of
-    UPGRADING-4.0 for some common issues.
+    Any upgrade steps given in version-specific UPGRADING files should
+    be run after the rest of the steps below; however, please read the
+    relevant documentation before beginning the upgrade, soas to be
+    aware of important changes.
 
     RT stores the arguments given to ./configure at the top of the
     etc/RT_Config.pm file in case you need to recreate your previous use
@@ -173,7 +175,10 @@ GENERAL INSTALLATION
 
           rm -fr /opt/rt4/var/mason_data/obj
 
-      You may then start your web server again.
+      If 'make upgrade-database' completes without error, your upgrade
+      has been successful; you should now run any commands that were
+      supplied in version-specific UPGRADING documentation.  You should
+      then restart your webserver.
 
  7) Configure the web server, as described in docs/web_deployment.pod,
     and the email gateway, as described below.
@@ -295,7 +300,7 @@ fix them.  To report a bug, send email to <rt-bugs@bestpractical.com>.
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 8c3a514..6d46c34 100755 (executable)
--- a/rt/bin/rt
+++ b/rt/bin/rt
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -1035,7 +1035,7 @@ sub submit {
 
     # Should we send authentication information to start a new session?
     my $how = $config{server} =~ /^https/ ? 'over SSL' : 'unencrypted';
-    (my $server = $config{server}) =~ s/^.*\/\/([^\/]+)\/?/$1/;
+    my($server) = $config{server} =~ m{^.*//([^/]+)};
     if ($config{externalauth}) {
         $h->authorization_basic($config{user}, $config{passwd} || read_passwd() );
         print "   Password will be sent to $server $how\n",
@@ -1080,7 +1080,7 @@ sub submit {
 
         # "RT/3.0.1 401 Credentials required"
         if ($status !~ m#^RT/\d+(?:\S+) (\d+) ([\w\s]+)$#) {
-            warn "rt: Malformed RT response from $config{server}.\n";
+            warn "rt: Malformed RT response from $server.\n";
             warn "(Rerun with RTDEBUG=3 for details.)\n" if $config{debug} < 3;
             exit -1;
         }
index e202698..383014f 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index df2ab5a..0516bf7 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 83c38ac..60eed68 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -1035,7 +1035,7 @@ sub submit {
 
     # Should we send authentication information to start a new session?
     my $how = $config{server} =~ /^https/ ? 'over SSL' : 'unencrypted';
-    (my $server = $config{server}) =~ s/^.*\/\/([^\/]+)\/?/$1/;
+    my($server) = $config{server} =~ m{^.*//([^/]+)};
     if ($config{externalauth}) {
         $h->authorization_basic($config{user}, $config{passwd} || read_passwd() );
         print "   Password will be sent to $server $how\n",
@@ -1080,7 +1080,7 @@ sub submit {
 
         # "RT/3.0.1 401 Credentials required"
         if ($status !~ m#^RT/\d+(?:\S+) (\d+) ([\w\s]+)$#) {
-            warn "rt: Malformed RT response from $config{server}.\n";
+            warn "rt: Malformed RT response from $server.\n";
             warn "(Rerun with RTDEBUG=3 for details.)\n" if $config{debug} < 3;
             exit -1;
         }
index f2f6041..bb83e12 100755 (executable)
@@ -1,7 +1,7 @@
 #! /bin/sh
 # From configure.ac Revision.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for RT rt-4.0.22.
+# Generated by GNU Autoconf 2.69 for RT rt-4.0.23.
 #
 # Report bugs to <rt-bugs@bestpractical.com>.
 #
@@ -580,8 +580,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='RT'
 PACKAGE_TARNAME='rt'
-PACKAGE_VERSION='rt-4.0.22'
-PACKAGE_STRING='RT rt-4.0.22'
+PACKAGE_VERSION='rt-4.0.23'
+PACKAGE_STRING='RT rt-4.0.23'
 PACKAGE_BUGREPORT='rt-bugs@bestpractical.com'
 PACKAGE_URL=''
 
@@ -1317,7 +1317,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures RT rt-4.0.22 to adapt to many kinds of systems.
+\`configure' configures RT rt-4.0.23 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1378,7 +1378,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of RT rt-4.0.22:";;
+     short | recursive ) echo "Configuration of RT rt-4.0.23:";;
    esac
   cat <<\_ACEOF
 
@@ -1495,7 +1495,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-RT configure rt-4.0.22
+RT configure rt-4.0.23
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1512,7 +1512,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by RT $as_me rt-4.0.22, which was
+It was created by RT $as_me rt-4.0.23, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -1869,7 +1869,7 @@ rt_version_major=4
 
 rt_version_minor=0
 
-rt_version_patch=22
+rt_version_patch=23
 
 test "x$rt_version_major" = 'x' && rt_version_major=0
 test "x$rt_version_minor" = 'x' && rt_version_minor=0
@@ -3592,7 +3592,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by RT $as_me rt-4.0.22, which was
+This file was extended by RT $as_me rt-4.0.23, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -3645,7 +3645,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-RT config.status rt-4.0.22
+RT config.status rt-4.0.23
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index bd1892a..85780de 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 0afec0b..cba84d2 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 5d05d08..e37fc8f 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 4cf0917..b9d7192 100644 (file)
@@ -5,7 +5,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -54,7 +54,7 @@ my $LICENSE  = <<'EOL';
 
 COPYRIGHT:
 
-This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
                                          <sales@bestpractical.com>
 
 (Except where explicitly superseded by other copyright notices)
index ec587ad..3d40a99 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index ba130de..f9942ed 100644 (file)
@@ -4,7 +4,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 92998a4..15436ac 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 30d422d..8ad86b1 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index ca44d39..c2741ab 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a62dee7..b0e6cc3 100644 (file)
@@ -1,4 +1,6 @@
-If you did not start by reading the README file, please start there; these
+=pod
+
+If you did not start by reading the F<README> file, please start there; these
 steps do not list the full upgrading process, merely a part which is sometimes
 necessary.
 
index 47b1846..89e5191 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a3db13c..5f04cb1 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 9e0d1bf..8cc0ec7 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a6be3f5..a6262df 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 3171bda..cdc5588 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index fcfe8c5..85aa307 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 66bdcf5..0d0287f 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index d9d2ffa..d7dd117 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index dbd4814..ec1b5f4 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 0aab0e2..21cba4b 100644 (file)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 8d6615d..92d18e3 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index b1027a4..b00625c 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index ec18caf..8174505 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index baf6fb2..83e19ce 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 0662b39..83423ad 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -222,34 +222,21 @@ sub LimitToPrincipal {
 
 
 
-sub Next {
+sub AddRecord {
     my $self = shift;
+    my ($record) = @_;
 
-    my $ACE = $self->SUPER::Next();
     # Short-circuit having to load up the ->Object
-    return $ACE
-        if $self->CurrentUser->PrincipalObj->Id == RT->SystemUser->Id;
-    if ( ( defined($ACE) ) and ( ref($ACE) ) ) {
-
-        if ( $self->CurrentUser->HasRight( Right  => 'ShowACL',
-                                           Object => $ACE->Object )
-             or $self->CurrentUser->HasRight( Right  => 'ModifyACL',
-                                              Object => $ACE->Object )
-          ) {
-            return ($ACE);
-        }
-
-        #If the user doesn't have the right to show this ACE
-        else {
-            return ( $self->Next() );
-        }
-    }
+    return $self->SUPER::AddRecord( $record )
+        if $record->CurrentUser->PrincipalObj->Id == RT->SystemUser->Id;
 
-    #if there never was any ACE
-    else {
-        return (undef);
-    }
+    my $obj = $record->Object;
+    return unless $self->CurrentUser->HasRight( Right  => 'ShowACL',
+                                                Object => $obj )
+               or $self->CurrentUser->HasRight( Right  => 'ModifyACL',
+                                                Object => $obj );
 
+    return $self->SUPER::AddRecord( $record );
 }
 
 
index 88e5b15..853949d 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index e819ca9..06721b7 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a2703e5..2b04222 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 542cbd2..46791de 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -960,6 +960,13 @@ sub GetDeferred {
     my $links     = shift;
     my $postponed = shift;
 
+    # Unify the aliases for child/parent
+    $args->{$_} = [$args->{$_}]
+        for grep {$args->{$_} and not ref $args->{$_}} qw/members hasmember memberof/;
+    push @{$args->{'children'}}, @{delete $args->{'members'}}   if $args->{'members'};
+    push @{$args->{'children'}}, @{delete $args->{'hasmember'}} if $args->{'hasmember'};
+    push @{$args->{'parents'}},  @{delete $args->{'memberof'}}  if $args->{'memberof'};
+
     # Deferred processing
     push @$links,
         (
index e3c7b53..542cbd2 100644 (file)
@@ -579,15 +579,11 @@ sub _ParseMultilineTemplate {
     my %args = (@_);
 
     my $template_id;
-    require Encode;
-    require utf8;
     my ( $queue, $requestor );
         $RT::Logger->debug("Line: ===");
         foreach my $line ( split( /\n/, $args{'Content'} ) ) {
             $line =~ s/\r$//;
-            $RT::Logger->debug( "Line: " . utf8::is_utf8($line)
-                ? Encode::encode_utf8($line)
-                : $line );
+            $RT::Logger->debug( "Line: $line" );
             if ( $line =~ /^===/ ) {
                 if ( $template_id && !$queue && $args{'Queue'} ) {
                     $self->{'templates'}->{$template_id}
@@ -790,10 +786,10 @@ sub ParseLines {
     );
 
     if ( $args{content} ) {
-        my $mimeobj = MIME::Entity->new();
-        $mimeobj->build(
-            Type => $args{'contenttype'} || 'text/plain',
-            Data => $args{'content'}
+        my $mimeobj = MIME::Entity->build(
+            Type    => $args{'contenttype'} || 'text/plain',
+            Charset => 'UTF-8',
+            Data    => [ map {Encode::encode( "UTF-8", $_ )} @{$args{'content'}} ],
         );
         $ticketargs{MIMEObj} = $mimeobj;
         $ticketargs{UpdateType} = $args{'updatetype'} || 'correspond';
index 38cad94..04aa7ed 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 92a7214..b13d2a8 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 9b75286..cc88b1d 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 26aae47..0b75b20 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a2c57db..50c1a62 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 789c182..847d60b 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 135ef7f..a1c0d08 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 8f55ff1..d9ee7f1 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 2304f28..4dd8eba 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a483fba..af3a6bf 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -616,6 +616,7 @@ sub SetRTSpecialHeaders {
 # XXX, TODO: use /ShowUser/ShowUserEntry(or something like that) when it would be
 #            refactored into user's method.
     if ( my $email = $self->TransactionObj->CreatorObj->EmailAddress
+         and ! defined $self->TemplateObj->MIMEObj->head->get("RT-Originator")
          and RT->Config->Get('UseOriginatorHeader')
     ) {
         $self->SetHeader( 'RT-Originator', $email );
index 7385c13..df789e4 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index c7a3127..2f932ec 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index adc40e9..2b8d9b7 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 34cf100..afa4286 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 1b7b7ac..0bb98ef 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 91063d1..b5c1882 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 3fdb99d..a501b11 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 241e604..22413d0 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index adc3063..d049ef8 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index e9f3d43..8f955da 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 9bee844..6800232 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -64,33 +64,19 @@ sub _Init {
     return $self->SUPER::_Init( @_ );
 }
 
-=head2 Next
+=head2 AddRecord
 
-Returns the next article that this user can see.
+Overrides the collection to ensure that only Articles the user can see
+are returned.
 
 =cut
 
-sub Next {
+sub AddRecord {
     my $self = shift;
+    my ($record) = @_;
 
-    my $Object = $self->SUPER::Next();
-    if ( ( defined($Object) ) and ( ref($Object) ) ) {
-
-        if ( $Object->CurrentUserHasRight('ShowArticle') ) {
-            return ($Object);
-        }
-
-        #If the user doesn't have the right to show this Object
-        else {
-            return ( $self->Next() );
-        }
-    }
-
-    #if there never was any queue
-    else {
-        return (undef);
-    }
-
+    return unless $record->CurrentUserHasRight('ShowArticle');
+    return $self->SUPER::AddRecord( $record );
 }
 
 =head2 Limit { FIELD  => undef, OPERATOR => '=', VALUE => 'undef'} 
index af1f82c..78c1f67 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -820,12 +820,10 @@ sub _Value {
     return $self->__Value( $field, @_ );
 }
 
-# Transactions don't change. by adding this cache congif directiove,
+# Attachments don't change; by adding this cache config directive,
 # we don't lose pathalogically on long tickets.
 sub _CacheConfig {
     {
-        'cache_p'       => 1,
-        'fast_update_p' => 1,
         'cache_for_sec' => 180,
     }
 }
index 7f6f258..b771243 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -220,19 +220,12 @@ sub LimitByTicket {
     return;
 }
 
-# {{{ sub Next
-sub Next {
+sub AddRecord {
     my $self = shift;
+    my ($record) = @_;
 
-    my $Attachment = $self->SUPER::Next;
-    return $Attachment unless $Attachment;
-
-    if ( $Attachment->TransactionObj->CurrentUserCanSee ) {
-        return $Attachment;
-    } else {
-        # If the user doesn't have the right to show this ticket
-        return $self->Next;
-    }
+    return unless $record->TransactionObj->CurrentUserCanSee;
+    return $self->SUPER::AddRecord( $record );
 }
 
 
index 745f95f..24c89dd 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index c556756..7da2932 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f83ed8e..838bad0 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 66e7c7a..5213bd1 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f65796a..14d6589 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 8f68924..d60c6b7 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 6b50d5d..0175b2f 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -64,32 +64,19 @@ sub Table {'Classes'}
     return ($self->SUPER::_Init(@_));
  }
 
-=head2 Next
+=head2 AddRecord
 
-Returns the next Object that this user can see.
+Overrides the collection to ensure that only Classes the user can
+see are returned.
 
 =cut
 
-sub Next {
+sub AddRecord {
     my $self = shift;
+    my ($record) = @_;
 
-
-    my $Object = $self->SUPER::Next();
-    if ((defined($Object)) and (ref($Object))) {
-   if ( $Object->CurrentUserHasRight('SeeClass') ) {
-        return($Object);
-    }
-
-    #If the user doesn't have the right to show this Object
-    else {
-        return($self->Next());
-    }
-    }
-    #if there never was any Object
-    else {
-    return(undef);
-    }
-
+    return unless $record->CurrentUserHasRight('SeeClass');
+    return $self->SUPER::AddRecord( $record );
 }
 
 sub ColumnMapClassName {
index 80cf019..2aa6545 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 5d8b3bc..f63508b 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 73015bc..9ff641b 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 2e027f4..67f4dd9 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 462fa40..240d7fe 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 407d5a5..867e632 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 25e6bfb..06b5b06 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index e35d0b5..16f250e 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 91cd88c..0de9d71 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 69ef8f9..f082eb8 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 55fe234..668c5bc 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 4f4ff18..7d58eb0 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index b97802f..8d30739 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -460,7 +460,7 @@ our %META = (
                     'The RTAddressRegexp option is not set in the config.'
                     .' Not setting this option results in additional SQL queries to'
                     .' check whether each address belongs to RT or not.'
-                    .' It is especially important to set this option if RT recieves'
+                    .' It is especially important to set this option if RT receives'
                     .' emails on addresses that are not in the database or config.'
                 );
             } elsif (ref $value and ref $value eq "Regexp") {
index 03636c8..9d97445 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 6ffe147..99a0641 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index ff1eec9..de912ed 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 4adb84d..e6b8a09 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 18bc6b4..193cd66 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 375f5c5..a0eabd5 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 48234e2..415046f 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 5fdac15..ba3b01c 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -68,8 +68,6 @@ package RT::CustomFields;
 use strict;
 use warnings;
 
-use DBIx::SearchBuilder::Unique;
-
 use RT::CustomField;
 
 use base 'RT::SearchBuilder';
@@ -369,22 +367,20 @@ sub _OCFAlias {
 }
 
 
-=head2 Next
+=head2 AddRecord
 
-Returns the next custom field that this user can see.
+Overrides the collection to ensure that only custom fields the user can
+see are returned; also propagates down the L</ContextObject>.
 
 =cut
 
-sub Next {
+sub AddRecord {
     my $self = shift;
+    my ($record) = @_;
 
-    my $CF = $self->SUPER::Next();
-    return $CF unless $CF;
-
-    $CF->SetContextObject( $self->ContextObject );
-
-    return $self->Next unless $CF->CurrentUserHasRight('SeeCustomField');
-    return $CF;
+    $record->SetContextObject( $self->ContextObject );
+    return unless $record->CurrentUserHasRight('SeeCustomField');
+    return $self->SUPER::AddRecord( $record );
 }
 
 =head2 NewItem
index 6d4c515..d84f56b 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -270,8 +270,7 @@ sub _PrivacyObjects {
 
     my $groups = RT::Groups->new($CurrentUser);
     $groups->LimitToUserDefinedGroups;
-    $groups->WithMember( PrincipalId => $CurrentUser->Id,
-                         Recursively => 1 );
+    $groups->WithCurrentUser;
     push @objects, @{ $groups->ItemsArrayRef };
 
     push @objects, RT::System->new($CurrentUser);
@@ -401,10 +400,7 @@ sub ObjectsForLoading {
         Right             => 'SeeGroupDashboard',
         IncludeSuperusers => $args{IncludeSuperuserGroups},
     );
-    $groups->WithMember(
-        Recursively => 1,
-        PrincipalId => $CurrentUser->UserObj->PrincipalId
-    );
+    $groups->WithCurrentUser;
     my $attrs = $groups->Join(
         ALIAS1 => 'main',
         FIELD1 => 'id',
index 038cf45..8582acd 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 1c5fe3d..8aad02d 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 52bdc01..4405b07 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 630730a..695b744 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -328,6 +328,8 @@ sub IsRTAddress {
     my $self = shift;
     my $address = shift;
 
+    return undef unless defined($address) and $address =~ /\S/;
+
     if ( my $address_re = RT->Config->Get('RTAddressRegexp') ) {
         return $address =~ /$address_re/i ? 1 : undef;
     }
index dc4163e..4e23043 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 477a5d0..52c4b72 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index dc52957..80e4ca5 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 1d4090c..9ac7576 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 49cd8de..a5e8840 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index c234858..576c99d 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -240,6 +240,15 @@ sub WithMember {
     return $members;
 }
 
+sub WithCurrentUser {
+    my $self = shift;
+    $self->{with_current_user} = 1;
+    return $self->WithMember(
+        PrincipalId => $self->CurrentUser->PrincipalId,
+        Recursively => 1,
+    );
+}
+
 sub WithoutMember {
     my $self = shift;
     my %args = (
@@ -427,22 +436,16 @@ sub LimitToDeleted {
 
 
 
-sub Next {
+sub AddRecord {
     my $self = shift;
+    my ($record) = @_;
 
-    # Don't show groups which the user isn't allowed to see.
+    # If we've explicitly limited to groups the user is a member of (for
+    # dashboard or savedsearch privacy objects), skip the ACL.
+    return unless $self->{with_current_user}
+        or $record->CurrentUserHasRight('SeeGroup');
 
-    my $Group = $self->SUPER::Next();
-    if ((defined($Group)) and (ref($Group))) {
-       unless ($Group->CurrentUserHasRight('SeeGroup')) {
-           return $self->Next();
-       }
-       
-       return $Group;
-    }
-    else {
-       return undef;
-    }
+    return $self->SUPER::AddRecord( $record );
 }
 
 
index 0fce646..794d8b0 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 11cd5f1..de93512 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -245,7 +245,10 @@ sub SetMIMEEntityToEncoding {
               . $head->mime_type . " - "
               . ( Encode::decode("UTF-8",$head->get('subject')) || 'Subjectless message' ) );
 
-        Encode::from_to( $string, $charset => $enc );
+        {
+            no warnings 'utf8';
+            $string = Encode::encode( $enc, Encode::decode( $charset, $string) );
+        }
 
         my $new_body = MIME::Body::InCore->new($string);
 
@@ -549,7 +552,8 @@ sub SetMIMEHeadToEncoding {
         $head->delete($tag);
         foreach my $value (@values) {
             if ( $charset ne $enc || $enc =~ /^utf-?8(?:-strict)?$/i ) {
-                Encode::from_to( $value, $charset => $enc );
+                no warnings 'utf8';
+                $value = Encode::encode( $enc, Encode::decode( $charset, $value) );
             }
             $value = DecodeMIMEWordsToEncoding( $value, $enc, $tag )
                 unless $preserve_words;
index 30da114..9b1573d 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 3a40a7f..6523815 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 904b841..2253768 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 316f51a..a8d1ace 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 5b34d77..783a0b1 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index c48b06c..7c3e079 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index feef6b8..5faa8ca 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a4826ad..f860461 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 898a8d9..ec409a4 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index b353907..2d760c2 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 06d7f83..edfc5d3 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 35b0cff..4cf3a07 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 7cf18d1..fc95aa1 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index e783382..03ce8ac 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a1b0662..b551424 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f930554..1da160c 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 13d6672..7a246a3 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index aded596..d854130 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index bdb2ba6..3bd3f59 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 305c345..bd8ad61 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index d90865d..b9aba12 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 7fd8d90..da664cf 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index b179180..89acd9d 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 1acf891..4b449d6 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index af740e9..356a7f3 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a2ec317..c6d2191 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 97e4f91..1a488aa 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index a5e36c3..c17ca48 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index f376f53..c49db16 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 82f4de2..3a04203 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 6904559..092d6a8 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 2545ea9..24c326d 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index e0670ea..eb71601 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 76582d6..bdb2a16 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 145ec17..2f1793d 100644 (file)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
index 677a05a..0f2f660 100755 (executable)
@@ -2,7 +2,7 @@
 #