source: LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Aliases.pm @ 929

Last change on this file since 929 was 929, checked in by nanardon, 12 years ago
  • improve alias management page, show more information
File size: 1.9 KB
Line 
1package LATMOS::Accounts::Web::Controller::Aliases;
2
3use strict;
4use warnings;
5use base 'Catalyst::Controller';
6
7=head1 NAME
8
9LATMOS::Accounts::Web::Controller::Aliases - Catalyst Controller
10
11=head1 DESCRIPTION
12
13Catalyst Controller.
14
15=head1 METHODS
16
17=cut
18
19
20=head2 index
21
22=cut
23
24sub index :Path :Args(0) {
25    my ( $self, $c ) = @_;
26
27    my $db = $c->model('Accounts')->db;
28    my @al = $c->req->param('al');
29    my @name = $c->req->param('name');
30    my @forward = $c->req->param('forward');
31    $c->stash->{page}{title} = "Gestion des alias";
32    foreach my $idx (0 .. scalar(@name) - 1) {
33
34        if ($c->req->param('del' . ($idx+1))) {
35            $db->delete_object('aliases', $al[$idx]);
36        } elsif ($al[$idx] ne $name[$idx]) {
37            # delete old, create new
38            $db->delete_c_object('aliases', $al[$idx]) if($al[$idx]);
39            $db->create_c_object('aliases', $name[$idx],
40                forward => [ split(/\s*,\s*/, $forward[$idx]) ],
41            );
42        } else {
43            my $obj = $db->get_object('aliases', $al[$idx]);
44            $obj->set_c_fields(
45                'forward' => [ split(/\s*,\s*/, $forward[$idx]) ],
46            );
47        }
48    }
49
50    $db->commit;
51}
52
53sub default :LocalPath {
54    my ( $self, $c, undef, $alias) = @_;
55
56    my $db = $c->model('Accounts')->db;
57    if ($c->req->param('delete')) {
58        $db->delete_object('aliases', $alias);
59        $db->commit;
60        $c->res->redirect($c->uri_for('/aliases'));
61        return;
62    }
63    my $oalias = $db->get_object('aliases', $alias);
64    $c->stash->{aliases} = $oalias;
65    $c->stash->{page}{title} = "Gestion des alias";
66
67    $c->stash->{form} = $c->model('AttrForms', 'aliases', $oalias);
68    $c->stash->{form}->set_attrs;
69}
70
71=head1 AUTHOR
72
73Olivier Thauvin
74
75=head1 LICENSE
76
77This library is free software. You can redistribute it and/or modify
78it under the same terms as Perl itself.
79
80=cut
81
821;
Note: See TracBrowser for help on using the repository browser.