[-]
[+]
|
Changed |
otrs.changes
|
|
[-]
[+]
|
Changed |
otrs.spec
^
|
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/ARCHIVE
^
|
@@ -66,7 +66,7 @@
e0bcce8890cc8c6c50b85a0d39251d50::bin/otrs.WebserviceConfig.pl
20f7c806eb6a108600fa3ca034c3084d::bin/otrs.xml2sql.pl
989b08b205c22705c5ce1ec3fe40ab9e::bin/otrs.XMLMaster.pl
-869bb49476e35539edd1b1e638a44002::CHANGES
+1e50003ca66925afd26023304cbede6b::CHANGES
73f1eb20517c55bf9493b7dd6e480788::COPYING
fca676b943addf233cd2a806a5ae0dda::COPYING-Third-Party
ad5c561982eb8d596942964a33340221::CREDITS
@@ -79,7 +79,7 @@
3e19d3ec4998825dfb5bfd88b2c27bfe::Kernel/Config/Files/Framework.xml
c6b844a4db010f76680239b671acb5f1::Kernel/Config/Files/GenericInterface.xml
4cd55ebb7654963ac39932f9ed12b2d2::Kernel/Config/Files/Scheduler.xml
-5d7385a3bd60e0ab55811bc91d958fac::Kernel/Config/Files/Ticket.xml
+9e73cdbd7cf7bbd52ad867a1d39cb44b::Kernel/Config/Files/Ticket.xml
c05bc72ad9aac0a8cced81fbc77d676b::Kernel/Config/GenericAgent.pm.dist
183dd728cc1d5c98947b8e7408461ccd::Kernel/Config/GenericAgent.pm.examples
ae2704ce768f3606a93103825f58525f::Kernel/Config.pm.dist
@@ -491,7 +491,7 @@
1542ed8895283659185b9335bc547023::Kernel/Modules/CustomerPreferences.pm
d5f2b37a924a1b0b1262acd0be098d80::Kernel/Modules/CustomerTicketAttachment.pm
9611efbf5e164e1af631aaea65d469f9::Kernel/Modules/CustomerTicketMessage.pm
-3fd615fab25d1e02549a2cdac7b88367::Kernel/Modules/CustomerTicketOverview.pm
+83113d435c5529bcbc13b57751e25d05::Kernel/Modules/CustomerTicketOverview.pm
6b31dc9414bbfce8b7a8078133bee781::Kernel/Modules/CustomerTicketPrint.pm
5c320bde1478a54a12754f7a218e72cf::Kernel/Modules/CustomerTicketSearch.pm
f85ff49258febdce7be2a473b1e6b0dc::Kernel/Modules/CustomerTicketZoom.pm
@@ -521,7 +521,7 @@
e833b781dc5846cacf15d3ab3eb3060d::Kernel/Output/HTML/DashboardUserOnline.pm
afdcdc911bc054e1ccf9646ffd3c4c9b::Kernel/Output/HTML/HeaderMetaRefresh.pm
e161e68921542d0b0a34879f92c45c59::Kernel/Output/HTML/HeaderMetaTicketSearch.pm
-7a0b30fc17ebbbb53b996aa2ea5408ea::Kernel/Output/HTML/Layout.pm
+a7ad4f79cff4a053aeefc535b1fa314d::Kernel/Output/HTML/Layout.pm
6998b241ca5d3557d2fb1d0f93a7be60::Kernel/Output/HTML/LayoutAJAX.pm
c370e13fc448ce437f49df2c2128d444::Kernel/Output/HTML/LayoutDatepicker.pm
f5c2d6e82548b830f7b281f73d882bb3::Kernel/Output/HTML/LayoutLinkObject.pm
@@ -619,7 +619,7 @@
9307bd27e169675d182416b5eb867e73::Kernel/Output/HTML/Standard/AdminUser.dtl
7dbc09c0a8f172842423ce4049bc6de6::Kernel/Output/HTML/Standard/AdminUserGroup.dtl
602a92b72f20f552f65fca722a7a20d5::Kernel/Output/HTML/Standard/AgentBook.dtl
-798b2e4a4dcd32a2fa705b08183a0cbc::Kernel/Output/HTML/Standard/AgentCustomerSearch.dtl
+d9b165da11bcd25378295a95005dc9d5::Kernel/Output/HTML/Standard/AgentCustomerSearch.dtl
d2d298f047f1c6dce92b6f5cc36ccdb2::Kernel/Output/HTML/Standard/AgentCustomerTableView.dtl
bdc9a99b0ca9ea2f9b62f7197362089a::Kernel/Output/HTML/Standard/AgentDashboard.dtl
69f641dc56561961f4c83c25affe4c0b::Kernel/Output/HTML/Standard/AgentDashboardCalendarOverview.dtl
@@ -752,7 +752,7 @@
7e98aca60f80dc73f0ddcfa699263192::Kernel/Scheduler.pm
459a432113f2867a4fa7ce8d60b4a656::Kernel/System/Auth/DB.pm
18391c13bf59280bd514800d33c358b9::Kernel/System/Auth/HTTPBasicAuth.pm
-29067c8df117f00c40d2481bdc59d77e::Kernel/System/Auth/LDAP.pm
+10f8bd7a7ac8a763040cc4e28650c5f9::Kernel/System/Auth/LDAP.pm
b0d8c81c3aaf1beedb9fb2778bfb558e::Kernel/System/Auth/Radius.pm
0d0c07a739ca56cde2fae39173179e34::Kernel/System/Auth/Sync/LDAP.pm
14c19f24161583a139bc643850f39166::Kernel/System/Auth.pm
@@ -771,13 +771,13 @@
d7dcbfb6e188c7d1d23c98d793f874af::Kernel/System/CSV.pm
9ce9d4e7501063e5d2d8380f53d3df16::Kernel/System/CustomerAuth/DB.pm
256f5dcaf268dad35e09dca441aeda4f::Kernel/System/CustomerAuth/HTTPBasicAuth.pm
-b4ab588a8e2b5e5632fc5353624e64ac::Kernel/System/CustomerAuth/LDAP.pm
+880e18de2f040ce2efdaa39958b07433::Kernel/System/CustomerAuth/LDAP.pm
582b6931350233cf18accb684a3db571::Kernel/System/CustomerAuth/Radius.pm
b1b8f718673272f4c3d8078cfa9b667b::Kernel/System/CustomerAuth.pm
09cea0eec7fd22e418b0acbff79e9083::Kernel/System/CustomerCompany.pm
1452806acf5f13b94f16b078e137a4b1::Kernel/System/CustomerGroup.pm
3c6fbb96f3c9da28000d90441028c25d::Kernel/System/CustomerUser/DB.pm
-b415a131b5d68e77cc1f7a91e8615385::Kernel/System/CustomerUser/LDAP.pm
+920b9c68b5856609d1e202ac35fab924::Kernel/System/CustomerUser/LDAP.pm
1ad58673a214c61988f65f72cc2f4385::Kernel/System/CustomerUser/Preferences/DB.pm
fc43461e4fc804904be510dc605d0cad::Kernel/System/CustomerUser.pm
352306d45137c1c41eee6641906cae49::Kernel/System/DB/db2.pm
@@ -821,7 +821,7 @@
78b60ed2990f37ee640678934bdd2a02::Kernel/System/GenericInterface/Webservice.pm
5b5e33e4aadd669596c1cc04c1679065::Kernel/System/GenericInterface/WebserviceHistory.pm
4d754f35b4e050b552600f6ba0f58f87::Kernel/System/Group.pm
-9736fcc35db9b1f6e103481b1ba6af71::Kernel/System/HTMLUtils.pm
+537b0a293f58047d6458a751bac42bb4::Kernel/System/HTMLUtils.pm
b236e2f6d4c03f8e7a0d1d38d994789b::Kernel/System/JSON.pm
91aac8d00c3572bcfaa5fff449bcb54f::Kernel/System/LinkObject/Ticket.pm
4421998d36d92b0611f0898e1dc2d78f::Kernel/System/LinkObject.pm
@@ -908,8 +908,8 @@
16258ef24e3bec2662bedb8a0074309f::Kernel/System/Ticket/Event/TicketNewMessageUpdate.pm
0e913675896ae45d60a28ff9b7d01934::Kernel/System/Ticket/Event/TicketPendingTimeReset.pm
6107fda0f736c52f5932cb96c8919d78::Kernel/System/Ticket/Event/TriggerEscalationStopEvents.pm
-9d9147b3bb47b13d6ab4007483b369b8::Kernel/System/Ticket/IndexAccelerator/RuntimeDB.pm
-dd400d5a478487b85922e68962741243::Kernel/System/Ticket/IndexAccelerator/StaticDB.pm
+f36e1a60f054cddef26080d6202d7c16::Kernel/System/Ticket/IndexAccelerator/RuntimeDB.pm
+12ea69de1f76c4f3dbd1bc667141cc7f::Kernel/System/Ticket/IndexAccelerator/StaticDB.pm
fc665c06bcf0dd36aa77ab0189225263::Kernel/System/Ticket/Number/AutoIncrement.pm
035309379d98394b56c1fe814f89174b::Kernel/System/Ticket/Number/Date.pm
0a1363d88b8da51fb00c187b980e0722::Kernel/System/Ticket/Number/DateChecksum.pm
@@ -918,7 +918,7 @@
c7d0351320e9ae0628d32b1daed116e3::Kernel/System/Ticket/Permission/OwnerCheck.pm
358b8cf1e89cc849fc009c4d823f7ea1::Kernel/System/Ticket/Permission/ResponsibleCheck.pm
4276dca661ee8e8fb33e5b416f696f24::Kernel/System/Ticket/Permission/WatcherCheck.pm
-ca4f0713410cf02e3d29c0a701067694::Kernel/System/Ticket.pm
+992621c12cc8acef2fb7f6b0ac0ddc35::Kernel/System/Ticket.pm
e10599a86debd70c0ffd3b4aef9c93e0::Kernel/System/TicketSearch.pm
38b67a34fd661d4060d4a2af2bc7adb3::Kernel/System/Time.pm
56d9a7deede94ab99c8bf19304c532b3::Kernel/System/Type.pm
@@ -946,7 +946,7 @@
9aea4597232227676be3aeb43bbd3006::README
37a73794d7a202c9c978093f892b30eb::README.database
7c7e4b880c4b924fb5439b27a49383bb::README.webserver
-fa460ffdc3a2c90756291117c30478fc::RELEASE
+4bb687c69343dc5fe4adf4dd98e18a14::RELEASE
b4fe0c352921aa4737798e9a95ba2fb2::scripts/apache2-httpd.include.conf
326a8ece52ffd7920a3de4625734d6e7::scripts/apache2-perl-startup.pl
318accebbe8a84c2b079a9d5c52656d3::scripts/auto_build/description.txt
@@ -1072,7 +1072,7 @@
5d381b9bf57f6cd8ddc19dda3e9d31a2::scripts/test/GenericInterface/Webservice.t
2d8f347edfb42f7ca3b8232feb3c803c::scripts/test/GenericInterface/WebserviceConfig.t
d718df3ef4ab2918821ed664596f7aa3::scripts/test/Group.t
-a39a7f255868be126d94ce87f39e5c18::scripts/test/HTMLUtils.t
+364fbdbfb899ab5ba9c42dddc01e67b4::scripts/test/HTMLUtils.t
44f2d53a0769d9b25367686ba4bc52df::scripts/test/JSON.t
d61fd19620b22000b0d0bd1e66717ab1::scripts/test/Language.t
9fbbf49a5a77b2e801c793b97c55b4d8::scripts/test/Layout/BuildSelection.t
@@ -1291,7 +1291,7 @@
5af8aca17931f53b3bd41e539225742c::var/httpd/htdocs/js/Core.Agent.Admin.GenericInterfaceWebserviceHistory.js
bd68317128312f8287debf61ce262333::var/httpd/htdocs/js/Core.Agent.Admin.Scheduler.js
2c144bc7e816c82cbe8adf44110e7c67::var/httpd/htdocs/js/Core.Agent.Admin.SysConfig.js
-17fec1b209d79a0ac3511f4a455ba807::var/httpd/htdocs/js/Core.Agent.CustomerSearch.js
+47e5b5e2e528d5c60fcf705240d967a7::var/httpd/htdocs/js/Core.Agent.CustomerSearch.js
96626a7b870ad5377746e50f4dd3d907::var/httpd/htdocs/js/Core.Agent.Dashboard.js
1845e4451bf182d8e0d464f11afc235c::var/httpd/htdocs/js/Core.Agent.js
7bdd4bd08d643b0475dc13416026b59c::var/httpd/htdocs/js/Core.Agent.Login.js
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/CHANGES
^
|
@@ -2,14 +2,25 @@
# CHANGES - change log of OTRS
# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: CHANGES,v 1.2260.2.106 2012/08/17 10:05:28 mg Exp $
+# $Id: CHANGES,v 1.2260.2.114 2012/08/28 08:19:30 mg Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --
-3.1.9 2012-09-04
+3.1.10 2012-08-30
+ - 2012-08-28 Improved HTML security filter to detect tag nesting.
+ - 2012-08-24 Fixed bug#8611 - Ticket count is wrong in QueueView.
+ - 2012-08-21 Fixed bug#8698 - Layout.pm only looks at first entry from
+ HTTP_ACCEPT_LANGUAGE to determine language.
+ - 2012-08-21 Fixed bug#8731 - LDAP group check returns wrong error.
+
+3.1.9 2012-08-21
+ - 2012-08-20 Fixed bug#3463 - <OTRS_TICKET_EscalationDestinationIn> incorrect.
+ - 2012-08-20 Fixed bug#5954 - Ticket::Frontend::OverviewSmall###ColumnHeader has
+ no effect on customer frontend.
+ - 2012-08-19 Fixed bug#8584 Email address not added to recipients after collision/duplicate occurred.
- 2012-08-17 HTML mails will now be displayed in an HTML5 sandbox iframe.
This means that modern browsers will not execute plugins or JavaScript on the content
any more. Currently, this is supported by Chrome and Safari, but IE10 and FF16 are also
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/Kernel/Config/Files/Ticket.xml
^
|
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<otrs_config version="1.0" init="Application">
- <CVS>$Id: Ticket.xml,v 1.501.2.6 2012/08/17 09:15:50 mh Exp $</CVS>
+ <CVS>$Id: Ticket.xml,v 1.501.2.7 2012/08/20 15:23:39 cg Exp $</CVS>
<ConfigItem Name="Ticket::Hook" Required="1" Valid="1">
<Description Translatable="1">The identifier for a ticket, e.g. Ticket#, Call#, MyTicket#. The default is Ticket#.</Description>
<Group>Ticket</Group>
@@ -807,6 +807,17 @@
</Hash>
</Setting>
</ConfigItem>
+ <ConfigItem Name="Ticket::Frontend::CustomerTicketOverview###ColumnHeader" Required="0" Valid="1">
+ <Description Translatable="1">Shows either the last customer article's subject or the ticket title in the small format overview.</Description>
+ <Group>Ticket</Group>
+ <SubGroup>Frontend::Customer</SubGroup>
+ <Setting>
+ <Option SelectedID="TicketTitle">
+ <Item Key="LastCustomerSubject">LastCustomerSubject</Item>
+ <Item Key="TicketTitle">TicketTitle</Item>
+ </Option>
+ </Setting>
+ </ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketQueue###StripEmptyLines" Required="1" Valid="1">
<Description Translatable="1">Strips empty lines on the ticket preview in the queue view.</Description>
<Group>Ticket</Group>
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/Kernel/Modules/CustomerTicketOverview.pm
^
|
@@ -2,7 +2,7 @@
# Kernel/Modules/CustomerTicketOverview.pm - status for all open tickets
# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: CustomerTicketOverview.pm,v 1.4.2.1 2012/05/22 11:50:56 jp Exp $
+# $Id: CustomerTicketOverview.pm,v 1.4.2.2 2012/08/20 15:24:34 cg Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
@@ -18,7 +18,7 @@
use Kernel::System::CustomerUser;
use vars qw($VERSION);
-$VERSION = qw($Revision: 1.4.2.1 $) [1];
+$VERSION = qw($Revision: 1.4.2.2 $) [1];
sub new {
my ( $Type, %Param ) = @_;
@@ -42,6 +42,9 @@
Message => 'No Config entry "Ticket::ViewableSenderTypes"!'
);
+ $Self->{SmallViewColumnHeader}
+ = $Self->{ConfigObject}->Get('Ticket::Frontend::CustomerTicketOverview')->{ColumnHeader};
+
# get params
$Self->{Filter} = $Self->{ParamObject}->GetParam( Param => 'Filter' ) || 'Open';
$Self->{SortBy} = $Self->{ParamObject}->GetParam( Param => 'SortBy' ) || 'Age';
@@ -423,10 +426,26 @@
return;
}
+ my $Subject;
+
+ # check if last customer subject or ticket title should be shown
+ if ( $Self->{SmallViewColumnHeader} eq 'LastCustomerSubject' ) {
+ $Subject = $Article{Subject} || '';
+ }
+ elsif ( $Self->{SmallViewColumnHeader} eq 'TicketTitle' ) {
+
+ # get ticket info
+ my %Ticket = $Self->{TicketObject}->TicketGet(
+ TicketID => $TicketID,
+ DynamicFields => 0,
+ );
+ $Subject = $Ticket{Title};
+ }
+
# condense down the subject
- my $Subject = $Self->{TicketObject}->TicketSubjectClean(
+ $Subject = $Self->{TicketObject}->TicketSubjectClean(
TicketNumber => $Article{TicketNumber},
- Subject => $Article{Subject} || '',
+ Subject => $Subject,
);
# return ticket
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/Kernel/Output/HTML/Layout.pm
^
|
@@ -2,7 +2,7 @@
# Kernel/Output/HTML/Layout.pm - provides generic HTML output
# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: Layout.pm,v 1.381.2.11 2012/06/22 15:08:45 cr Exp $
+# $Id: Layout.pm,v 1.381.2.13 2012/08/21 18:43:48 mg Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
@@ -22,7 +22,7 @@
use URI::Escape qw();
use vars qw(@ISA $VERSION);
-$VERSION = qw($Revision: 1.381.2.11 $) [1];
+$VERSION = qw($Revision: 1.381.2.13 $) [1];
=head1 NAME
@@ -134,19 +134,22 @@
$Self->{UserTimeZone} = '';
}
- # get use language (from browser) if no language is there!
+ # Determine the language to use based on the browser setting, if there
+ # is none yet.
if ( !$Self->{UserLanguage} ) {
- my $BrowserLang = $Self->{Lang} || $ENV{HTTP_ACCEPT_LANGUAGE} || '';
+ my @BrowserLanguages = split /\s*,\s*/, $Self->{Lang} || $ENV{HTTP_ACCEPT_LANGUAGE} || '';
my %Data = %{ $Self->{ConfigObject}->Get('DefaultUsedLanguages') };
LANGUAGE:
- for my $Language ( reverse sort keys %Data ) {
+ for my $BrowserLang (@BrowserLanguages) {
+ for my $Language ( reverse sort keys %Data ) {
- # check xx_XX and xx-XX type
- my $LanguageOtherType = $Language;
- $LanguageOtherType =~ s/_/-/;
- if ( $BrowserLang =~ /^($Language|$LanguageOtherType)/i ) {
- $Self->{UserLanguage} = $Language;
- last LANGUAGE;
+ # check xx_XX and xx-XX type
+ my $LanguageOtherType = $Language;
+ $LanguageOtherType =~ s/_/-/;
+ if ( $BrowserLang =~ /^($Language|$LanguageOtherType)/i ) {
+ $Self->{UserLanguage} = $Language;
+ last LANGUAGE;
+ }
}
}
$Self->{UserLanguage} ||= $Self->{ConfigObject}->Get('DefaultLanguage') || 'en';
@@ -5085,6 +5088,6 @@
=head1 VERSION
-$Revision: 1.381.2.11 $ $Date: 2012/06/22 15:08:45 $
+$Revision: 1.381.2.13 $ $Date: 2012/08/21 18:43:48 $
=cut
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/Kernel/Output/HTML/Standard/AgentCustomerSearch.dtl
^
|
@@ -2,7 +2,7 @@
# AgentCustomerSearch.dtl - provides autocomplete feature for customer search
# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: AgentCustomerSearch.dtl,v 1.34 2012/03/30 13:17:57 mg Exp $
+# $Id: AgentCustomerSearch.dtl,v 1.34.2.1 2012/08/20 03:57:48 cg Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
@@ -20,6 +20,7 @@
Core.Config.Set('Autocomplete.SearchButtonText', "$JSText{"Search Customer"}");
Core.Config.Set('Duplicated.TitleText', "$JSText{"Duplicated entry"}");
Core.Config.Set('Duplicated.ContentText', "$JSText{"This address already exists on the address list."}");
+ Core.Config.Set('Duplicated.RemoveText', "$JSText{"It is going to be deleted from the field, please try again."}");
Core.Config.Set('Ticket::Frontend::AgentTicketPhone::AllowMultipleFrom', "$Config{"Ticket::Frontend::AgentTicketPhone::AllowMultipleFrom"}");
Core.Agent.CustomerSearch.Init($("#CustomerAutoComplete, .CustomerAutoComplete"), $QData{"ActiveAutoComplete"});
//]]></script>
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/Kernel/System/Auth/LDAP.pm
^
|
@@ -1,8 +1,8 @@
# --
# Kernel/System/Auth/LDAP.pm - provides the ldap authentication
-# Copyright (C) 2001-2011 OTRS AG, http://otrs.org/
+# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: LDAP.pm,v 1.60 2011/08/12 09:06:16 mg Exp $
+# $Id: LDAP.pm,v 1.60.2.1 2012/08/21 08:41:41 mg Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
@@ -16,7 +16,7 @@
use Net::LDAP;
use vars qw($VERSION);
-$VERSION = qw($Revision: 1.60 $) [1];
+$VERSION = qw($Revision: 1.60.2.1 $) [1];
sub new {
my ( $Type, %Param ) = @_;
@@ -278,7 +278,7 @@
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Search failed! base='$Self->{GroupDN}', filter='$Filter2', "
- . $Result->error,
+ . $Result2->error,
);
# take down session
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/Kernel/System/CustomerAuth/LDAP.pm
^
|
@@ -1,8 +1,8 @@
# --
# Kernel/System/CustomerAuth/LDAP.pm - provides the ldap authentication
-# Copyright (C) 2001-2011 OTRS AG, http://otrs.org/
+# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: LDAP.pm,v 1.38 2011/08/12 09:06:16 mg Exp $
+# $Id: LDAP.pm,v 1.38.2.1 2012/08/21 08:41:41 mg Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
@@ -17,7 +17,7 @@
use Net::LDAP;
use vars qw($VERSION);
-$VERSION = qw($Revision: 1.38 $) [1];
+$VERSION = qw($Revision: 1.38.2.1 $) [1];
sub new {
my ( $Type, %Param ) = @_;
@@ -282,7 +282,7 @@
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Search failed! base='$Self->{GroupDN}', filter='$Filter2', "
- . $Result->error,
+ . $Result2->error,
);
$LDAP->unbind;
$LDAP->disconnect;
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/Kernel/System/CustomerUser/LDAP.pm
^
|
@@ -1,8 +1,8 @@
# --
# Kernel/System/CustomerUser/LDAP.pm - some customer user functions in LDAP
-# Copyright (C) 2001-2011 OTRS AG, http://otrs.org/
+# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: LDAP.pm,v 1.62 2011/01/27 21:52:28 cg Exp $
+# $Id: LDAP.pm,v 1.62.4.1 2012/08/23 10:54:44 mh Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
@@ -19,7 +19,7 @@
use Kernel::System::Cache;
use vars qw(@ISA $VERSION);
-$VERSION = qw($Revision: 1.62 $) [1];
+$VERSION = qw($Revision: 1.62.4.1 $) [1];
sub new {
my ( $Type, %Param ) = @_;
@@ -460,16 +460,23 @@
Message => $Result->error(),
);
}
+
my %Users;
- for my $entry ( $Result->all_entries ) {
+ for my $entry ( $Result->all_entries() ) {
+
my $CustomerString = '';
for my $Field (@attrs) {
- $CustomerString
- .= $Self->_ConvertFrom( $entry->get_value($Field) )
- . ' ';
+
+ my $FieldValue = $entry->get_value($Field);
+ $FieldValue = defined $FieldValue ? $FieldValue : '';
+
+ $CustomerString .= $Self->_ConvertFrom($FieldValue) . ' ';
}
- $Users{ $Self->_ConvertFrom( $entry->get_value( $Self->{CustomerKey} ) ) }
- = $CustomerString;
+
+ my $KeyValue = $entry->get_value( $Self->{CustomerKey} );
+ $KeyValue = defined $KeyValue ? $KeyValue : '';
+
+ $Users{ $Self->_ConvertFrom($KeyValue) } = $CustomerString;
}
# check if user need to be in a group!
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/Kernel/System/HTMLUtils.pm
^
|
@@ -2,7 +2,7 @@
# Kernel/System/HTMLUtils.pm - creating and modifying html strings
# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: HTMLUtils.pm,v 1.35.2.2 2012/07/31 13:44:57 mg Exp $
+# $Id: HTMLUtils.pm,v 1.35.2.3 2012/08/28 08:19:30 mg Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
@@ -17,7 +17,7 @@
use MIME::Base64;
use vars qw($VERSION);
-$VERSION = qw($Revision: 1.35.2.2 $) [1];
+$VERSION = qw($Revision: 1.35.2.3 $) [1];
=head1 NAME
@@ -928,109 +928,147 @@
my %Safety;
+ my $Replaced;
+
# In UTF-7, < and > can be encoded to mask them from security filters like this one.
my $TagStart = '(?:<|[+]ADw-)';
my $TagEnd = '(?:>|[+]AD4-)';
- # remove script tags
- if ( $Param{NoJavaScript} ) {
- $Safety{Replace} += ${$String} =~ s{
- $TagStart scrip.+? $TagEnd (.+?|.?) $TagStart /script $TagEnd
+ # Replace as many times as it is needed to avoid nesting tag attacks.
+ do {
+ $Replaced = undef;
+
+ # remove script tags
+ if ( $Param{NoJavaScript} ) {
+ $Replaced += ${$String} =~ s{
+ $TagStart script.*? $TagEnd .*? $TagStart /script \s* $TagEnd
+ }
+ {}sgxim;
+ $Replaced += ${$String} =~ s{
+ $TagStart script.*? $TagEnd .+? ($TagStart|$TagEnd)
+ }
+ {}sgxim;
+
+ # remove style/javascript parts
+ $Replaced += ${$String} =~ s{
+ $TagStart style[^>]+?javascript(.+?|) $TagEnd (.*?) $TagStart /style \s* $TagEnd
+ }
+ {}sgxim;
+
+ # remove MS CSS expressions (JavaScript embedded in CSS)
+ ${$String} =~ s{
+ ($TagStart style[^>]+? $TagEnd .*? $TagStart /style \s* $TagEnd)
+ }
+ {
+ if ( index($1, 'expression(' ) > -1 ) {
+ $Replaced = 1;
+ '';
+ }
+ else {
+ $1;
+ }
+ }egsxim;
}
- {}sxim;
- $Safety{Replace} += ${$String} =~ s{
- $TagStart scrip.+? $TagEnd .+? ($TagStart|$TagEnd)
+
+ # remove <applet> tags
+ if ( $Param{NoApplet} ) {
+ $Replaced += ${$String} =~ s{
+ $TagStart applet.*? $TagEnd (.*?) $TagStart /applet \s* $TagEnd
+ }
+ {}sgxim;
}
- {}sgxim;
- }
- # remove <applet> tags
- if ( $Param{NoApplet} ) {
- $Safety{Replace} += ${$String} =~ s{
- $TagStart apple.+? $TagEnd (.+?) $TagStart /applet $TagEnd
+ # remove <Object> tags
+ if ( $Param{NoObject} ) {
+ $Replaced += ${$String} =~ s{
+ $TagStart object.*? $TagEnd (.*?) $TagStart /object \s* $TagEnd
+ }
+ {}sgxim;
}
- {}sgxim;
- }
- # remove <Object> tags
- if ( $Param{NoObject} ) {
- $Safety{Replace} += ${$String} =~ s{
- $TagStart objec.+? $TagEnd (.+?) $TagStart /object $TagEnd
+ # remove <svg> tags
+ if ( $Param{NoSVG} ) {
+ $Replaced += ${$String} =~ s{
+ $TagStart svg.*? $TagEnd (.*?) $TagStart /svg \s* $TagEnd
+ }
+ {}sgxim;
}
- {}sgxim;
- }
- # remove style/javascript parts
- if ( $Param{NoJavaScript} ) {
- $Safety{Replace} += ${$String} =~ s{
- $TagStart style[^>]+?javascript(.+?|) $TagEnd (.*?) $TagStart /style $TagEnd
+ # remove <embed> tags
+ if ( $Param{NoEmbed} ) {
+ $Replaced += ${$String} =~ s{
+ $TagStart embed.*? $TagEnd
+ }
+ {}sgxim;
}
- {}sgxim;
- }
- # remove <embed> tags
- if ( $Param{NoEmbed} ) {
- $Safety{Replace} += ${$String} =~ s{
- $TagStart embed\s.+? $TagEnd
+ # check each html tag
+ ${$String} =~ s{
+ ($TagStart.+?$TagEnd)
}
- {}sgxim;
- }
+ {
+ my $Tag = $1;
+ if ($Param{NoJavaScript}) {
- # check each html tag
- ${$String} =~ s{
- ($TagStart.+?$TagEnd)
- }
- {
- my $Tag = $1;
- if ($Param{NoJavaScript}) {
+ # remove on action attributes
+ $Replaced += $Tag =~ s{
+ \son.+?=(".+?"|'.+?'|.+?)($TagEnd|\s)
+ }
+ {$2}sgxim;
- # remove on action attributes
- $Safety{Replace} += $Tag =~ s{
- \son.+?=(".+?"|'.+?'|.+?)($TagEnd|\s)
- }
- {$2}sgxim;
+ # remove entities in tag
+ $Replaced += $Tag =~ s{
+ (&\{.+?\})
+ }
+ {}sgxim;
- # remove entities in tag
- $Safety{Replace} += $Tag =~ s{
- (&\{.+?\})
- }
- {}sgxim;
+ # remove javascript in a href links or src links
+ $Replaced += $Tag =~ s{
+ ((\s|;)(background|url|src|href)=)('|"|)(javascript.+?)('|"|)(\s|$TagEnd)
+ }
+ {
+ "$1\"\"$7";
+ }sgxime;
+
+ # remove link javascript tags
+ $Replaced += $Tag =~ s{
+ ($TagStart link .+? javascript (.+?|) $TagEnd)
+ }
+ {}sgxim;
- # remove javascript in a href links or src links
- $Safety{Replace} += $Tag =~ s{
- ((\s|;)(background|url|src|href)=)('|"|)(javascript.+?)('|"|)(\s|$TagEnd)
+ # remove MS CSS expressions (JavaScript embedded in CSS)
+ $Replaced += $Tag =~ s{
+ \sstyle=("|')[^\1]*?expression[(][^\1]*?\1($TagEnd|\s)
+ }
+ {
+ $2;
+ }egsxim;
}
- {
- "$1\"\"$7";
- }sgxime;
- # remove link javascript tags
- $Safety{Replace} += $Tag =~ s{
- ($TagStart link .+? javascript (.+?|) $TagEnd)
+ # remove load tags
+ if ($Param{NoIntSrcLoad} || $Param{NoExtSrcLoad}) {
+ $Tag =~ s{
+ ($TagStart (.+?) \s src=(.+?) (\s.+?|) $TagEnd)
+ }
+ {
+ my $URL = $3;
+ if ($Param{NoIntSrcLoad} || ($Param{NoExtSrcLoad} && $URL =~ /(http|ftp|https):\//i)) {
+ $Replaced = 1;
+ '';
+ }
+ else {
+ $1;
+ }
+ }segxim;
}
- {}sgxim;
- }
- # remove load tags
- if ($Param{NoIntSrcLoad} || $Param{NoExtSrcLoad}) {
- $Tag =~ s{
- ($TagStart (.+?) \s src=(.+?) (\s.+?|) $TagEnd)
- }
- {
- my $URL = $3;
- if ($Param{NoIntSrcLoad} || ($Param{NoExtSrcLoad} && $URL =~ /(http|ftp|https):\//i)) {
- $Safety{Replace} = 1;
- '';
- }
- else {
- $1;
- }
- }segxim;
- }
+ # replace original tag with clean tag
+ $Tag;
+ }segxim;
+
+ $Safety{Replace} += $Replaced;
- # replace original tag with clean tag
- $Tag;
- }segxim;
+ } while ($Replaced);
# check ref && return result like called
if ($StringScalar) {
@@ -1108,6 +1146,6 @@
=head1 VERSION
-$Revision: 1.35.2.2 $ $Date: 2012/07/31 13:44:57 $
+$Revision: 1.35.2.3 $ $Date: 2012/08/28 08:19:30 $
=cut
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/Kernel/System/Ticket.pm
^
|
@@ -2,7 +2,7 @@
# Kernel/System/Ticket.pm - all ticket functions
# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: Ticket.pm,v 1.549.2.8 2012/07/02 07:37:10 mh Exp $
+# $Id: Ticket.pm,v 1.549.2.9 2012/08/21 04:55:17 cg Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
@@ -40,7 +40,7 @@
use Kernel::System::VariableCheck qw(:all);
use vars qw(@ISA $VERSION);
-$VERSION = qw($Revision: 1.549.2.8 $) [1];
+$VERSION = qw($Revision: 1.549.2.9 $) [1];
=head1 NAME
@@ -2392,6 +2392,7 @@
# escalation time in readable way
$Data{EscalationDestinationIn} = '';
+ $WorkingTime = abs($WorkingTime);
if ( $WorkingTime >= 3600 ) {
$Data{EscalationDestinationIn} .= int( $WorkingTime / 3600 ) . 'h ';
$WorkingTime = $WorkingTime
@@ -7807,6 +7808,6 @@
=head1 VERSION
-$Revision: 1.549.2.8 $ $Date: 2012/07/02 07:37:10 $
+$Revision: 1.549.2.9 $ $Date: 2012/08/21 04:55:17 $
=cut
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/Kernel/System/Ticket/IndexAccelerator/RuntimeDB.pm
^
|
@@ -1,9 +1,9 @@
# --
# Kernel/System/Ticket/IndexAccelerator/RuntimeDB.pm - realtime database
# queue ticket index module
-# Copyright (C) 2001-2011 OTRS AG, http://otrs.org/
+# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: RuntimeDB.pm,v 1.76 2011/08/01 09:30:33 mg Exp $
+# $Id: RuntimeDB.pm,v 1.76.2.1 2012/08/24 09:45:52 mg Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
@@ -16,7 +16,7 @@
use warnings;
use vars qw($VERSION);
-$VERSION = qw($Revision: 1.76 $) [1];
+$VERSION = qw($Revision: 1.76.2.1 $) [1];
sub TicketAcceleratorUpdate {
my ( $Self, %Param ) = @_;
@@ -84,9 +84,12 @@
);
if (@QueueIDs) {
- my $SQL = "SELECT count(*) FROM ticket st WHERE "
- . " st.ticket_state_id IN ( ${\(join ', ', @ViewableStateIDs)} ) AND "
- . " st.queue_id IN (";
+ my $SQL = "
+ SELECT count(*)
+ FROM ticket st
+ WHERE st.ticket_state_id IN ( ${\(join ', ', @ViewableStateIDs)} )
+ AND st.archive_flag = 0
+ AND st.queue_id IN (";
for ( 0 .. $#QueueIDs ) {
if ( $_ > 0 ) {
$SQL .= ",";
@@ -114,13 +117,16 @@
# CustomQueue add on
return if !$Self->{DBObject}->Prepare(
- SQL => "SELECT count(*) FROM ticket st, queue sq, personal_queues suq WHERE "
- . " st.ticket_state_id IN ( ${\(join ', ', @ViewableStateIDs)} ) AND "
- . " st.ticket_lock_id IN ( ${\(join ', ', @ViewableLockIDs)} ) AND "
- . " st.queue_id = sq.id AND "
- . " suq.queue_id = st.queue_id AND "
- . " sq.group_id IN ( ${\(join ', ', @GroupIDs)} ) AND "
- . " suq.user_id = $Param{UserID}",
+ SQL => "
+ SELECT count(*)
+ FROM ticket st, queue sq, personal_queues suq
+ WHERE st.ticket_state_id IN ( ${\(join ', ', @ViewableStateIDs)} )
+ AND st.ticket_lock_id IN ( ${\(join ', ', @ViewableLockIDs)} )
+ AND st.queue_id = sq.id
+ AND st.archive_flag = 0
+ AND suq.queue_id = st.queue_id
+ AND sq.group_id IN ( ${\(join ', ', @GroupIDs)} )
+ AND suq.user_id = $Param{UserID}",
);
while ( my @Row = $Self->{DBObject}->FetchrowArray() ) {
@@ -140,14 +146,16 @@
# prepare the tickets in Queue bar (all data only with my/your Permission)
return if !$Self->{DBObject}->Prepare(
- SQL => "SELECT st.queue_id, sq.name, min(st.create_time_unix), count(*) FROM "
- . " ticket st, queue sq WHERE "
- . " st.ticket_state_id IN ( ${\(join ', ', @ViewableStateIDs)} ) AND "
- . " st.ticket_lock_id IN ( ${\(join ', ', @ViewableLockIDs)} ) AND "
- . " st.queue_id = sq.id AND "
- . " sq.group_id IN ( ${\(join ', ', @GroupIDs)} ) "
- . " GROUP BY st.queue_id,sq.name "
- . " ORDER BY sq.name",
+ SQL => "
+ SELECT st.queue_id, sq.name, min(st.create_time_unix), count(*)
+ FROM ticket st, queue sq
+ WHERE st.ticket_state_id IN ( ${\(join ', ', @ViewableStateIDs)} )
+ AND st.ticket_lock_id IN ( ${\(join ', ', @ViewableLockIDs)} )
+ AND st.queue_id = sq.id
+ AND st.archive_flag = 0
+ AND sq.group_id IN ( ${\(join ', ', @GroupIDs)} )
+ GROUP BY st.queue_id,sq.name
+ ORDER BY sq.name",
);
while ( my @Row = $Self->{DBObject}->FetchrowArray() ) {
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/Kernel/System/Ticket/IndexAccelerator/StaticDB.pm
^
|
@@ -1,8 +1,8 @@
# --
# Kernel/System/Ticket/IndexAccelerator/StaticDB.pm - static db queue ticket index module
-# Copyright (C) 2001-2011 OTRS AG, http://otrs.org/
+# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: StaticDB.pm,v 1.79 2011/11/25 10:06:30 mg Exp $
+# $Id: StaticDB.pm,v 1.79.2.1 2012/08/24 12:12:07 mg Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
@@ -15,7 +15,7 @@
use warnings;
use vars qw($VERSION);
-$VERSION = qw($Revision: 1.79 $) [1];
+$VERSION = qw($Revision: 1.79.2.1 $) [1];
sub TicketAcceleratorUpdate {
my ( $Self, %Param ) = @_;
@@ -30,7 +30,7 @@
# check if ticket is shown or not
my $IndexUpdateNeeded = 0;
- my $IndexSelcected = 0;
+ my $IndexSelected = 0;
my %TicketData = $Self->TicketGet(
%Param,
DynamicFields => 0,
@@ -58,10 +58,10 @@
Type => 'Viewable',
Result => 'Name',
);
- my $ViewableStatsHit = 0;
+ my $ViewableStatesHit = 0;
for (@ViewableStates) {
if ( $_ =~ /^$TicketData{State}$/i ) {
- $ViewableStatsHit = 1;
+ $ViewableStatesHit = 1;
}
}
@@ -74,18 +74,23 @@
$ViewableLocksHit = 1;
}
}
- if ( $ViewableStatsHit && $ViewableLocksHit ) {
- $IndexSelcected = 1;
+ if ( $ViewableStatesHit && $ViewableLocksHit ) {
+ $IndexSelected = 1;
+ }
+
+ if ( $TicketData{ArchiveFlag} eq 'y' ) {
+ $IndexSelected = 0;
}
# write index back
if ($IndexUpdateNeeded) {
- if ($IndexSelcected) {
+ if ($IndexSelected) {
if ( $IndexTicketData{TicketID} ) {
$Self->{DBObject}->Do(
- SQL => 'UPDATE ticket_index SET'
- . ' queue_id = ?, queue = ?, group_id = ?, s_lock = ?, s_state = ?'
- . ' WHERE ticket_id = ?',
+ SQL => '
+ UPDATE ticket_index
+ SET queue_id = ?, queue = ?, group_id = ?, s_lock = ?, s_state = ?
+ WHERE ticket_id = ?',
Bind => [
\$TicketData{QueueID}, \$TicketData{Queue}, \$TicketData{GroupID},
\$TicketData{Lock}, \$TicketData{State}, \$Param{TicketID},
@@ -160,10 +165,10 @@
Type => 'Viewable',
Result => 'Name',
);
- my $ViewableStatsHit = 0;
+ my $ViewableStatesHit = 0;
for (@ViewableStates) {
if ( $_ =~ /^$TicketData{State}$/i ) {
- $ViewableStatsHit = 1;
+ $ViewableStatesHit = 1;
}
}
@@ -178,14 +183,20 @@
}
# do nothing if stats or lock is not viewable
- if ( !$ViewableStatsHit || !$ViewableLocksHit ) {
+ if ( !$ViewableStatesHit || !$ViewableLocksHit ) {
+ return 1;
+ }
+
+ # do nothing if ticket is archived
+ if ( $TicketData{ArchiveFlag} eq 'y' ) {
return 1;
}
return if !$Self->{DBObject}->Do(
- SQL => 'INSERT INTO ticket_index'
- . ' (ticket_id, queue_id, queue, group_id, s_lock, s_state, create_time_unix)'
- . ' VALUES (?, ?, ?, ?, ?, ?, ?)',
+ SQL => '
+ INSERT INTO ticket_index
+ (ticket_id, queue_id, queue, group_id, s_lock, s_state, create_time_unix)
+ VALUES (?, ?, ?, ?, ?, ?, ?)',
Bind => [
\$Param{TicketID}, \$TicketData{QueueID}, \$TicketData{Queue},
\$TicketData{GroupID}, \$TicketData{Lock}, \$TicketData{State},
@@ -259,9 +270,11 @@
Result => 'ID',
);
if (@QueueIDs) {
- my $SQL = "SELECT count(*) FROM ticket st WHERE "
- . " st.ticket_state_id IN ( ${\(join ', ', @ViewableStateIDs)} ) AND "
- . " st.queue_id IN (";
+ my $SQL = "
+ SELECT count(*)
+ FROM ticket st
+ WHERE st.ticket_state_id IN ( ${\(join ', ', @ViewableStateIDs)} )
+ AND st.queue_id IN (";
for ( 0 .. $#QueueIDs ) {
if ( $_ > 0 ) {
$SQL .= ",";
@@ -309,10 +322,12 @@
# CustomQueue add on
return if !$Self->{DBObject}->Prepare(
- SQL => "SELECT count(*) FROM ticket_index ti, personal_queues suq WHERE "
- . " suq.queue_id = ti.queue_id AND "
- . " ti.group_id IN ( ${\(join ', ', @GroupIDs)} ) AND "
- . " suq.user_id = $Param{UserID}",
+ SQL => "
+ SELECT count(*)
+ FROM ticket_index ti, personal_queues suq
+ WHERE suq.queue_id = ti.queue_id
+ AND ti.group_id IN ( ${\(join ', ', @GroupIDs)} )
+ AND suq.user_id = $Param{UserID}",
);
while ( my @Row = $Self->{DBObject}->FetchrowArray() ) {
my %Hashes;
@@ -331,9 +346,12 @@
# prepare the tickets in Queue bar (all data only with my/your Permission)
return if !$Self->{DBObject}->Prepare(
- SQL => "SELECT queue_id, queue, min(create_time_unix), count(*) "
- . " FROM ticket_index WHERE group_id IN ( ${\(join ', ', @GroupIDs)} ) "
- . " GROUP BY queue_id, queue ORDER BY queue",
+ SQL => "
+ SELECT queue_id, queue, min(create_time_unix), count(*)
+ FROM ticket_index
+ WHERE group_id IN ( ${\(join ', ', @GroupIDs)} )
+ GROUP BY queue_id, queue
+ ORDER BY queue",
);
while ( my @RowTmp = $Self->{DBObject}->FetchrowArray() ) {
@@ -372,15 +390,15 @@
my @ViewableLockIDs = $Self->{LockObject}->LockViewableLock( Type => 'ID' );
# get all viewable tickets
- my $SQL = "SELECT st.id, st.queue_id, sq.name, sq.group_id, slt.name, "
- . " tsd.name, st.create_time_unix FROM "
- . " ticket st, queue sq, ticket_state tsd, "
- . " ticket_lock_type slt WHERE "
- . " st.ticket_state_id = tsd.id AND "
- . " st.queue_id = sq.id AND "
- . " st.ticket_lock_id = slt.id AND "
- . " st.ticket_state_id IN ( ${\(join ', ', @ViewableStateIDs)} ) AND "
- . " st.ticket_lock_id IN ( ${\(join ', ', @ViewableLockIDs)} )";
+ my $SQL = "
+ SELECT st.id, st.queue_id, sq.name, sq.group_id, slt.name, tsd.name, st.create_time_unix
+ FROM ticket st, queue sq, ticket_state tsd, ticket_lock_type slt
+ WHERE st.ticket_state_id = tsd.id
+ AND st.queue_id = sq.id
+ AND st.ticket_lock_id = slt.id
+ AND st.ticket_state_id IN ( ${\(join ', ', @ViewableStateIDs)} )
+ AND st.ticket_lock_id IN ( ${\(join ', ', @ViewableLockIDs)} )
+ AND st.archive_flag = 0";
return if !$Self->{DBObject}->Prepare( SQL => $SQL );
my @RowBuffer;
@@ -401,9 +419,10 @@
for (@RowBuffer) {
my %Data = %{$_};
$Self->{DBObject}->Do(
- SQL => 'INSERT INTO ticket_index'
- . ' (ticket_id, queue_id, queue, group_id, s_lock, s_state, create_time_unix)'
- . ' VALUES (?, ?, ?, ?, ?, ?, ?)',
+ SQL => '
+ INSERT INTO ticket_index
+ (ticket_id, queue_id, queue, group_id, s_lock, s_state, create_time_unix)
+ VALUES (?, ?, ?, ?, ?, ?, ?)',
Bind => [
\$Data{TicketID}, \$Data{QueueID}, \$Data{Queue}, \$Data{GroupID},
\$Data{Lock}, \$Data{State}, \$Data{CreateTimeUnix},
@@ -413,8 +432,10 @@
# write lock index
return if !$Self->{DBObject}->Prepare(
- SQL => "SELECT ti.id, ti.user_id FROM ticket ti WHERE "
- . " ti.ticket_lock_id not IN ( ${\(join ', ', @ViewableLockIDs)} ) ",
+ SQL => "
+ SELECT ti.id, ti.user_id
+ FROM ticket ti
+ WHERE ti.ticket_lock_id not IN ( ${\(join ', ', @ViewableLockIDs)} ) ",
);
my @LockRowBuffer;
while ( my @Row = $Self->{DBObject}->FetchrowArray() ) {
@@ -442,8 +463,10 @@
# sql query
return if !$Self->{DBObject}->Prepare(
- SQL => 'SELECT ticket_id, queue_id, queue, group_id, s_lock, s_state, create_time_unix'
- . ' FROM ticket_index WHERE ticket_id = ?',
+ SQL => '
+ SELECT ticket_id, queue_id, queue, group_id, s_lock, s_state, create_time_unix
+ FROM ticket_index
+ WHERE ticket_id = ?',
Bind => [ \$Param{TicketID} ]
);
my %Data;
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/RELEASE
^
|
@@ -1,4 +1,4 @@
PRODUCT = OTRS
-VERSION = 3.1.9
-BUILDDATE = Fri Aug 17 12:52:11 CEST 2012
+VERSION = 3.1.10
+BUILDDATE = Tue Aug 28 09:48:12 CEST 2012
BUILDHOST = otrsbuild.otrs.com
|
|
Changed |
otrs-3.1.10.tar.bz2/doc/manual/de/otrs_admin_book.pdf
^
|
|
Changed |
otrs-3.1.10.tar.bz2/doc/manual/en/otrs_admin_book.pdf
^
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/scripts/test/HTMLUtils.t
^
|
@@ -2,7 +2,7 @@
# HTMLUtils.t - HTMLUtils tests
# Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
# --
-# $Id: HTMLUtils.t,v 1.41.2.2 2012/07/31 13:44:57 mg Exp $
+# $Id: HTMLUtils.t,v 1.41.2.3 2012/08/28 08:19:30 mg Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
@@ -1188,6 +1188,20 @@
Replace => 1,
},
},
+ {
+ Input => <<EOF,
+<s<script>...</script><script>...<cript type="text/javascript">
+document.write("Hello World!");
+</s<script>//<cript>
+EOF
+ Result => {
+ Output => <<EOF,
+
+EOF
+ Replace => 1,
+ },
+ Name => 'Safety - Nested script tags'
+ },
);
for my $Test (@Tests) {
|
[-]
[+]
|
Changed |
otrs-3.1.10.tar.bz2/var/httpd/htdocs/js/Core.Agent.CustomerSearch.js
^
|
@@ -2,7 +2,7 @@
// Core.Agent.CustomerSearch.js - provides the special module functions for the customer search
// Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
// --
-// $Id: Core.Agent.CustomerSearch.js,v 1.33.2.7 2012/06/14 12:55:36 mg Exp $
+// $Id: Core.Agent.CustomerSearch.js,v 1.33.2.8 2012/08/20 03:57:22 cg Exp $
// --
// This software comes with ABSOLUTELY NO WARRANTY. For details, see
// the enclosed file COPYING for license information (AGPL). If you
@@ -560,9 +560,11 @@
TargetNS.ShowDuplicatedDialog = function(Field){
Core.UI.Dialog.ShowAlert(
Core.Config.Get('Duplicated.TitleText'),
- Core.Config.Get('Duplicated.ContentText'),
+ Core.Config.Get('Duplicated.ContentText')
+ + ' ' + Core.Config.Get('Duplicated.RemoveText'),
function () {
Core.UI.Dialog.CloseDialog($('.Alert'));
+ $('#' + Field).val('');
$('#' + Field).focus();
return false;
}
|