[Rt-commit] r18622 - in rt/3.999/trunk: .

sartak at bestpractical.com sartak at bestpractical.com
Mon Mar 2 20:59:19 EST 2009


Author: sartak
Date: Mon Mar  2 20:59:19 2009
New Revision: 18622

Modified:
   rt/3.999/trunk/   (props changed)
   rt/3.999/trunk/lib/RT/DateTime.pm

Log:
 r80794 at onn:  sartak | 2009-03-02 20:59:15 -0500
 Canonicalize time_zone in RT::DateTime->new and ->set_time_zone


Modified: rt/3.999/trunk/lib/RT/DateTime.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/DateTime.pm	(original)
+++ rt/3.999/trunk/lib/RT/DateTime.pm	Mon Mar  2 20:59:19 2009
@@ -27,5 +27,36 @@
     bless $duration, $self->duration_class;
 }
 
+sub _canonicalize_time_zone {
+    my $self = shift;
+    my $tz = shift;
+
+    if (lc($tz) eq 'user') {
+        return $self->current_user->time_zone;
+    }
+    elsif (lc($tz) eq 'server') {
+        return RT->config->get('TimeZone');
+    }
+
+    return $tz;
+}
+
+sub new {
+    my $self = shift;
+    my %args = @_;
+
+    $args{time_zone} = $self->_canonicalize_time_zone($args{time_zone})
+        if defined $args{time_zone};
+
+    return $self->SUPER::new(%args);
+}
+
+sub set_time_zone {
+    my $self = shift;
+    my $tz   = shift;
+
+    return $self->SUPER::set_time_zone($self->_canonicalize_time_zone($tz));
+}
+
 1;
 


More information about the Rt-commit mailing list