OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Thomas Lotterer
  Root:   /v/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-registry                 Date:   24-Nov-2005 12:22:31
  Branch: HEAD                             Handle: 2005112411223100

  Modified files:
    openpkg-registry        registry-ui.pl

  Log:
    use OSSP ase

  Summary:
    Revision    Changes     Path
    1.10        +80 -6      openpkg-registry/registry-ui.pl
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-registry/registry-ui.pl
  ============================================================================
  $ cvs diff -u -r1.9 -r1.10 registry-ui.pl
  --- openpkg-registry/registry-ui.pl   24 Nov 2005 11:21:56 -0000      1.9
  +++ openpkg-registry/registry-ui.pl   24 Nov 2005 11:22:31 -0000      1.10
  @@ -35,6 +35,8 @@
   use DBD::Pg;
   use MIME::Base64;
   use XML::Simple;
  +#use OSSP::ase::client;                                 # FIXME production
  +BEGIN { require "./ase.pm"; import OSSP::ase::client; } # FIXME development
   
   #   configure optional debugging
   $Data::Dumper::Purity = 1;
  @@ -61,7 +63,7 @@
   #   basicauth - believe in webserver's basic authentication
   #   ase       - OSSP affiliation services environment
   #
  -$cfg->{identification}->{mode} = "basicauth";
  +$cfg->{identification}->{mode} = "ase";
   $cfg->{identification}->{default} = "[EMAIL PROTECTED]"; #anonymous
   $cfg->{db}->{registry}->{username}="registry";
   $cfg->{db}->{registry}->{password}="registry";
  @@ -170,6 +172,33 @@
       CGI::Session->find(sub {});
   }
   
  +#   establish ASE object
  +#
  +my $ase;
  +$ase = undef;
  +my $ase = new OSSP::ase::client(
  +    -server  => "http://registry.openpkg.org/ase";,
  +    -cgi     => $cgi,
  +    -mode    => "page",
  +    -session => $session,
  +);
  +if (not defined $ase) {
  +    &printprettyerror("Affiliation Services Environment", "");
  +    goto CUS;
  +}
  +
  +#   give it a chance to run
  +#
  +if ($ase->responsible()) {
  +    if($ase->action()) {
  +        print $ase->response();
  +    }
  +    else {
  +        &printprettyerror("Affiliation Services Environment", $ase->error());
  +    }
  +    goto CUS;
  +}
  +
   #   continue to the pages that require database access
   #
   if    ($cgi->param("page") eq "login") {
  @@ -219,6 +248,15 @@
       $out .= &viewdropxml();
       print STDOUT $out;
   }
  +elsif ($cgi->param("page") eq "ase") {
  +    my $out;
  +    $out = '';
  +    $out .= &viewhttp();
  +    $out .= &viewhtmlhead();
  +    $out .= &viewase();
  +    $out .= &viewhtmltail();
  +    print STDOUT $out;
  +}
   else {
       my $out;
       $out = '';
  @@ -237,6 +275,7 @@
   #   die gracefully ;-)
   #
   CUS:
  +undef $ase;
   undef $session;
   undef $cgi;
   undef $dbh;
  @@ -820,8 +859,20 @@
   {
       my $html;
       $html .= '';
  -    if    ($cfg->{identification}->{mode} eq "ase") {
  -        die #FIXME
  +    if    ($cfg->{identification}->{mode} eq "ase-FIXME") {
  +        $html .= "<a href=\"";
  +        $html .= $ase->url(-action => "login", -mode_during => "ase", 
-mode_after => "ase");
  +        $html .= "\">Login</a> ";
  +    }
  +    elsif ($cfg->{identification}->{mode} eq "ase") {
  +        $html .= $cgi->start_form(-action => $ase->url(-action => "login", 
-mode_during => "ase", -mode_after => "ase"));
  +        $html .= $cgi->delete(-name=>'page');
  +        $html .= $cgi->hidden(-name=>'page', -value => "ase");
  +        $html .= $cgi->hidden(-name=>'ase-action',      -value => "login");
  +        $html .= $cgi->hidden(-name=>'ase-mode_during', -value => "ase");
  +        $html .= $cgi->hidden(-name=>'ase-mode_after',  -value => 
"association");
  +        $html .= $cgi->submit('submit','login');
  +        $html .= $cgi->end_form;
       }
       elsif ($cfg->{identification}->{mode} eq "basicauth") {
           # nop
  @@ -849,6 +900,17 @@
       return $html;
   }
   
  +sub viewase() #FIXME
  +{
  +    my $html;
  +    $html .= '';
  +    $html .= "<h1>OSSP ase client at OpenPKG Registry</h1>";
  +    $html .= "ASE Login=".$ase->login()."<br>\n";
  +    $html .= sprintf("Session: SID %s<br>\n", $session->id());
  +    $html .= "<h2>ase</h2><pre>".Dumper($ase)."</pre>\n";
  +    return $html;
  +}
  +
   sub printprettyerror($$)
   {
       my ($marketingmessage, $technicaldetail) = @_;
  @@ -911,8 +973,20 @@
   {
       my $html;
       $html = '';
  -    if    ($cfg->{identification}->{mode} eq "ase") {
  -        die #FIXME
  +    if    ($cfg->{identification}->{mode} eq "ase-FIXME") {
  +        $html .= "<a href=\"";
  +        $html .= $ase->url(-action => "logout", -mode_during => "ase", 
-mode_after => "ase");
  +        $html .= "\">Logout</a> ";
  +    }
  +    elsif ($cfg->{identification}->{mode} eq "ase") {
  +        $html .= $cgi->start_form(-action => $ase->url(-action => "logout", 
-mode_during => "ase", -mode_after => "ase"));
  +        $html .= $cgi->delete(-name=>'page');
  +        $html .= $cgi->hidden(-name=>'page', -value => "ase");
  +        $html .= $cgi->hidden(-name=>'ase-action',      -value => "logout");
  +        $html .= $cgi->hidden(-name=>'ase-mode_during', -value => "ase");
  +        $html .= $cgi->hidden(-name=>'ase-mode_after',  -value => "dropxml");
  +        $html .= $cgi->submit('submit','logout');
  +        $html .= $cgi->end_form;
       }
       elsif ($cfg->{identification}->{mode} eq "basicauth") {
           # nop
  @@ -1483,7 +1557,7 @@
       $username = undef;
   
       if    ($cfg->{identification}->{mode} eq "ase") {
  -        die "FIXME ase not implemented";
  +        $username = $ase->attr("client-login-name") if ($ase->login);
       }
       elsif ($cfg->{identification}->{mode} eq "basicauth") {
           $username = $ENV{'REMOTE_USER'};
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     openpkg-cvs@openpkg.org

Reply via email to