[Rt-commit] rt branch, admin_ui, updated. adf43eb6987b9f25894de9dc1b13486a57a01857

sunnavy at bestpractical.com sunnavy at bestpractical.com
Wed Dec 23 04:04:31 EST 2009


The branch, admin_ui has been updated
       via  adf43eb6987b9f25894de9dc1b13486a57a01857 (commit)
      from  657eaa3abd0d0abad68f07be7108820ee00e665e (commit)

Summary of changes:
 lib/RT/View/Admin/Users.pm |   85 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 85 insertions(+), 0 deletions(-)

- Log -----------------------------------------------------------------
commit adf43eb6987b9f25894de9dc1b13486a57a01857
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Wed Dec 23 17:04:17 2009 +0800

    /admin/users/gnupg view

diff --git a/lib/RT/View/Admin/Users.pm b/lib/RT/View/Admin/Users.pm
index a9e9db9..68c0f73 100644
--- a/lib/RT/View/Admin/Users.pm
+++ b/lib/RT/View/Admin/Users.pm
@@ -144,6 +144,91 @@ template 'memberships' => page { title => _('User Memberships') } content {
 template 'gnupg' => page { title => _('User GnuPG') } content {
     my $self = shift;
 
+    # TODO move the following line to Dispatcher
+    return unless RT->config->get('gnupg')->{'enable'};
+
+    require RT::Crypt::GnuPG;
+
+    my $user = RT::Model::User->new;
+    $user->load(get('id'));
+
+    unless ( $user->email ) {
+        h2 { _("User has empty email address") };
+        return;
+    }
+
+    my %res = RT::Crypt::GnuPG::get_key_info( $user->email, 'public' );
+
+    if ( $res{'exit_code'} || !keys %{ $res{'info'} } ) {
+        outs( _('No keys for this address') );
+    }
+    else {
+        h3 { _('GnuPG public key for %1', $user->email) };
+        table {
+            row {
+                th { _( 'Trust' . ':' ) };
+                cell {
+                    _( $res{'info'}{'trust'} );
+                };
+            };
+            row {
+                th { _( 'Created' . ':' ) };
+                cell {
+                    $res{'info'}{'created'}
+                      ? $res{'info'}{'created'}->date
+                      : _('never');
+                };
+            };
+
+            row {
+                th { _('Expire') . ':' };
+                cell {
+                    $res{'info'}{'expire'}
+                      ? $res{'info'}{'expire'}->date
+                      : _('never');
+                };
+            };
+
+            for my $uinfo ( @{ $res{'info'}{'user'} } ) {
+                row {
+                    th { _('User (Created - expire)') . ':' };
+                    cell {
+                        $uinfo->{'string'}
+                          . '(' . (
+                            $uinfo->{'created'} ? $uinfo->{'created'}->date
+                            : _('never') . ' - ' 
+                          )
+                          . (
+                            $uinfo->{'expire'} ? $uinfo->{'expire'}->date
+                            : _('never')
+                          ) . ')';
+                    };
+                };
+            }
+        };
+    }
+
+    my %keys_meta =
+      RT::Crypt::GnuPG::get_keys_for_signing( $user->email, 'force' );
+
+    my $moniker = 'select_private_key';
+    my $action = new_action(
+        class   => 'SelectPrivateKey',
+        moniker => $moniker,
+    );
+
+    $action->object($user);
+
+    with( name => $moniker ), form {
+        input {
+            type is 'hidden';
+            name is 'id';
+            value is get('id');
+        };
+        render_action($action);
+        form_submit( label => _('Save') );
+    };
+
 };
 
 template 'history' => page { title => _('User History') } content {

-----------------------------------------------------------------------


More information about the Rt-commit mailing list