Changeset 4


Ignore:
Timestamp:
11/13/10 19:33:41 (14 years ago)
Author:
nanardon
Message:
  • add admin tools
Files:
8 added
2 deleted
1 edited
22 copied
1 moved

Legend:

Unmodified
Added
Removed
  • web/trunk/lib/Sophie.pm

    r3 r4  
    2222    Server 
    2323    Server::XMLRPC 
     24    Authentication 
    2425/; 
     26 
     27use RPC::XML; 
     28$RPC::XML::FORCE_STRING_ENCODING = 1; 
    2529 
    2630extends 'Catalyst'; 
     
    4347    disable_component_resolution_regex_fallback => 1, 
    4448    default_view => 'TT', 
     49 
     50    'authentication' => { 
     51        default_realm => 'members', 
     52        realms => { 
     53            members => { 
     54                credential => { 
     55                    class => 'Password', 
     56                    password_field => 'password', 
     57                    password_type => 'clear' 
     58                }, 
     59                store => { 
     60                    class => 'Minimal', 
     61                    users => { 
     62                        admin => { 
     63                            password => 'toto', 
     64                        } 
     65                    } 
     66                }, 
     67            }, 
     68        }, 
     69    }, 
    4570); 
    4671 
    4772__PACKAGE__->config->{session} = { 
    48     expires   => 31536000, 
     73    expires   => 3600, 
    4974    dbi_dsn   => 'noo', 
    5075    dbi_table => 'sessions', 
  • web/trunk/lib/Sophie/Base/RpmsPath.pm

    r2 r4  
    123123        if ($rows) { 
    124124            warn "Find"; 
    125             return 1; 
     125            return $header->queryformat('%{PKGID}'); 
    126126        } 
    127127    } 
  • web/trunk/lib/Sophie/Controller/Distrib.pm

    r3 r4  
    1717=cut 
    1818 
    19 sub content :XMLRPC { 
    20     my ( $self, $c, $distribution, $release, $arch ) = @_; 
     19sub list :XMLRPC { 
     20    my ( $self, $c, $distribution, $release ) = @_; 
     21    $c->session->{toto} = 1;  
    2122    my $rs = $c->model('Base')->resultset('Distribution'); 
    2223    if (!$distribution) { 
     
    3031    } 
    3132    $rs = $rs->search(version => $release)->search_related('Arch'); 
    32     if (!$arch) { 
    33         @{$c->stash->{xmlrpc}} = map { $_->arch } $rs->all; 
    34         return; 
    35     } 
    36     $rs = $rs->search(arch => $arch)->search_related('Medias'); 
    37     @{$c->stash->{xmlrpc}} = map { 
     33    @{$c->stash->{xmlrpc}} = map { $_->arch } $rs->all; 
     34} 
     35 
     36sub struct :XMLRPC { 
     37    my ( $self, $c, $distribution, $release, $arch ) = @_; 
     38    my $rs = $c->model('Base')->resultset('Distribution') 
     39        ->search(name => $distribution) 
     40        ->search_related('Release', { version => $release }) 
     41        ->search_related('Arch', { arch => $arch }) 
     42        ->search_related('Medias'); 
     43    @{$c->stash->{xmlrpc}} = map {  
    3844        {  
    3945            label => $_->label, 
     
    4147            key => $_->d_media_key, 
    4248        }  
    43         } $rs->all; 
     49    } $rs->all; 
    4450} 
    4551 
     
    5258    my ( $self, $c ) = @_; 
    5359 
    54     $c->forward('content'); 
     60    $c->forward('list'); 
    5561} 
    5662 
     
    6167sub list_release :Path :Args(1) { 
    6268    my ( $self, $c, $distribution ) = @_; 
    63     $c->forward('content', [ $distribution ]); 
     69    $c->forward('list', [ $distribution ]); 
    6470} 
    6571 
    6672sub list_arch :Path :Args(2) { 
    6773    my ( $self, $c, $distribution, $release ) = @_; 
    68     $c->forward('content', [ $distribution, $release ]); 
     74    $c->forward('list', [ $distribution, $release ]); 
    6975} 
    7076 
     
    7884sub distrib :Chained('distrib_view') PathPart('') { 
    7985    my ( $self, $c ) = @_; 
    80     $c->forward('content', $c->stash->{distrib}); 
     86    $c->forward('list', $c->stash->{distrib}); 
    8187    $c->forward('rpms',    $c->stash->{distrib}); 
    8288    # TODO store properly results 
     
    8692sub media :Chained('distrib_view') PathPart('media') { 
    8793    my ( $self, $c ) = @_; 
    88     $c->forward('content', $c->stash->{distrib}); 
     94    $c->forward('struct', $c->stash->{distrib}); 
    8995} 
    9096 
     
    157163sub list_rpms :Chained('distrib_view') PathPart('rpms') { 
    158164    my ( $self, $c ) = @_; 
     165    $c->forward('rpms',    $c->stash->{distrib}); 
     166} 
     167 
     168sub list_srpms :Chained('distrib_view') PathPart('srpms') { 
     169    my ( $self, $c ) = @_; 
    159170    $c->forward('srpms',    $c->stash->{distrib}); 
    160171} 
    161172 
    162 sub list_srpms :Chained('distrib_view') PathPart('srpms') { 
    163     my ( $self, $c ) = @_; 
    164     $c->forward('srpms',    $c->stash->{distrib}); 
    165 } 
    166  
    167173sub srpm_by_name :Chained('distrib_view') PathPart('srpms/by-name') Args(1) { 
    168174} 
    169175sub rpm_by_name :Chained('distrib_view') PathPart('rpms/by-name') Args(1) { 
    170176} 
    171 sub rpm_by_name :Chained('distrib_view') PathPart('rpms/by-pkgid') Args(1) { 
     177sub rpm_by_pkid :Chained('distrib_view') PathPart('rpms/by-pkgid') Args(1) { 
    172178} 
    173179 
  • web/trunk/lib/Sophie/Controller/Root.pm

    r3 r4  
    2929        $c->stash->{current_view} = 'Json'; 
    3030    } 
     31 
     32    if ($c->action =~ m/^admin\//) { 
     33        if (!$c->user_exists) { 
     34            $c->res->redirect($c->uri_for('/login')); 
     35        } 
     36    } 
    3137} 
    3238 
     
    4147 
    4248    # Hello World 
    43     $c->forward($c->view('Global')); 
    44     #$c->response->body( $c->welcome_message ); 
    4549} 
    4650 
Note: See TracChangeset for help on using the changeset viewer.