
sunnavy at bestpractical
Nov 19, 2009, 11:51 PM
Post #1 of 1
(173 views)
Permalink
|
|
rt branch, 3.999-trunk, updated. 9379fd6a6543d8071a7917650eee8724067087a2
|
|
The branch, 3.999-trunk has been updated via 9379fd6a6543d8071a7917650eee8724067087a2 (commit) via b5928cfb9885531c97f8d8f70817a8b20d752ae9 (commit) via a46c5e6043a2528916ae15d97a42e432908f2598 (commit) from c75254c2c039d21ccc39d097125512b9da2503a0 (commit) Summary of changes: lib/RT/Action/ConfigSystem.pm | 76 +++++++++++++++++++++++++++++++++++++++-- lib/RT/Config.pod | 6 ++- 2 files changed, 77 insertions(+), 5 deletions(-) - Log ----------------------------------------------------------------- commit a46c5e6043a2528916ae15d97a42e432908f2598 Author: sunnavy <sunnavy [at] bestpractical> Date: Fri Nov 20 13:40:25 2009 +0800 do canonical thing in _canonicalize_arguments diff --git a/lib/RT/Action/ConfigSystem.pm b/lib/RT/Action/ConfigSystem.pm index d04b4d5..6cc045d 100644 --- a/lib/RT/Action/ConfigSystem.pm +++ b/lib/RT/Action/ConfigSystem.pm @@ -89,11 +89,22 @@ sub take_action { for my $arg ( $self->argument_names ) { if ( $self->has_argument($arg) ) { + RT->config->set( $arg, $self->argument_value($arg) ); + } + } + + return 1; +} + +sub _canonicalize_arguments { + my $self = shift; + for my $arg ( $self->argument_names ) { + if ( $self->has_argument($arg) ) { my $value = $self->argument_value( $arg ); - if ($value && $value !~ /^{{\w+}}/ ) { + if ( $value && $value !~ /^{{\w+}}/ ) { if ( $value =~ /^\[ \s* (.*?) \s* \]\s*$/x ) { my $v = $1; - if ($v =~ /\S/ ) { + if ( $v =~ /\S/ ) { $value = [ split /\s*,\s*/, $v ]; } else { @@ -109,12 +120,10 @@ sub take_action { $value = {}; } } + $self->argument_value( $arg, $value ); } - - RT->config->set( $arg, $value ); } } - return 1; } commit b5928cfb9885531c97f8d8f70817a8b20d752ae9 Author: sunnavy <sunnavy [at] bestpractical> Date: Fri Nov 20 14:35:06 2009 +0800 validate organization, gnupg and graphviz in ConfigSystem action diff --git a/lib/RT/Action/ConfigSystem.pm b/lib/RT/Action/ConfigSystem.pm index 6cc045d..d177d04 100644 --- a/lib/RT/Action/ConfigSystem.pm +++ b/lib/RT/Action/ConfigSystem.pm @@ -4,6 +4,7 @@ use warnings; package RT::Action::ConfigSystem; use base qw/RT::Action Jifty::Action/; use Scalar::Defer; +use Try::Tiny; sub arguments { my $self = shift; @@ -127,6 +128,66 @@ sub _canonicalize_arguments { return 1; } +sub validate_organization { + my $self = shift; + my $value = shift; + return 1 unless defined $value; + if ( $value =~ /\s/ ) { + return $self->validation_error( + organization => _("Organization cannot contain whitespaces.") ); + } + return 1; +} + +sub validate_gnupg { + my $self = shift; + my $value = shift; + return 1 unless defined $value; + if ( ref $value && ref $value eq 'HASH' ) { + if ( $value->{enable} ) { + my $gpgopts = $self->argument_value('gnupg_options') + || RT->config->get('gnupg_options') || {}; + unless ( -d $gpgopts->{homedir} && -r _ ) { # no homedir, no gpg + return $self->validation_error( + gnupg => _( +"couldn't successfully read your configured GnuPG home directory: '%1'", + $gpgopts->{homedir} + ) + ); + } + + require RT::Crypt::GnuPG; + unless ( RT::Crypt::GnuPG::probe() ) { + return $self->validation_error( + gnupg => _("couldn't successfully execute gpg") ); + } + } + } + else { + return $self->validation_error( + gnupg => _("gnupg value should be a hashref.") ); + } + return 1; +} + +sub validate_disable_graphviz { + my $self = shift; + my $value = shift; + return 1 unless defined $value; + + try { + require IPC::Run; + require IPC::Run::SafeHandles; + require GraphViz; + } + catch { + return $self->validation_error( + disable_graphviz => _( "GraphViz can't be enabled: %1", $_ ) ); + }; + + return 1; +} + =head2 report_success =cut commit 9379fd6a6543d8071a7917650eee8724067087a2 Author: sunnavy <sunnavy [at] bestpractical> Date: Fri Nov 20 14:35:18 2009 +0800 pod update diff --git a/lib/RT/Config.pod b/lib/RT/Config.pod index eec2f63..6d5721e 100644 --- a/lib/RT/Config.pod +++ b/lib/RT/Config.pod @@ -589,7 +589,7 @@ default: C<0> =item C<trust_html_attachments> -if C<TrustHTMLAttachments> is not defined, we will display them +if C<trust_html_attachments> is not defined, we will display them as text. This prevents malicious HTML and javascript from being sent in a request (although there is probably more to it than that) @@ -711,7 +711,9 @@ default: C<10> =item C<disable_graphviz> -default: C<undef> +Disable GraphViz or not + +default: C<'0'> =item C<oldest_transactions_first> ----------------------------------------------------------------------- _______________________________________________ Rt-commit mailing list Rt-commit [at] lists http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-commit
|