source: LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Model/AttrForms.pm @ 121

Last change on this file since 121 was 121, checked in by nanardon, 15 years ago
  • main page is now empty

/users give users list + filter

File size: 2.4 KB
Line 
1package LATMOS::Accounts::Web::Model::AttrForms;
2
3use strict;
4use warnings;
5use base 'Catalyst::Model';
6
7=head1 NAME
8
9LATMOS::Accounts::Web::Model::AttrForms - Catalyst Model
10
11=head1 DESCRIPTION
12
13Catalyst Model.
14
15=cut
16
17my $attrs = {
18    uid => 'Login',
19    uidNumber => 'UID',
20    gidNumber => 'GID',
21    sn => 'Nom',
22    givenName => 'Prénom',
23    homeDirectory => 'Home',
24    loginShell => 'Shell',
25    physicalDeliveryOfficeName => 'Bureau',
26    telephoneNumber => 'Téléphone',
27    otherTelephone => 'Téléphone (autre)',
28};
29
30my $forms = {
31    user => {
32        name => 'SystÚme',
33        acl => 'admin',
34        attrs => [ qw(
35            sn givenName uid uidNumber gidNumber gecos homeDirectory loginShell
36            mail
37        ) ],
38    },
39    useraddress => {
40        name => 'Adresse',
41        attrs => [ qw(
42            telephoneNumber
43            otherTelephone
44            physicalDeliveryOfficeName
45        ) ],
46    },
47};
48
49sub escape {
50    my ($self, $text) = @_;
51    $text ||= '';
52    for ($text) {
53        s/&/&/g;
54        s/</&lt;/g;
55        s/>/&gt;/g;
56        s/"/&quot;/g;
57    }
58    $text;
59}
60
61sub new {
62    my ($class) = @_;
63    bless({}, $class);
64}
65
66sub ACCEPT_CONTEXT {
67    my ($self, $c, $form, $object) = @_;
68    $form or return $self;
69    $forms->{$form} or return;
70    $self->{c} = $c;
71    $self->{form} = $form;
72    $self->{object} = $object or return;
73    $self
74}
75
76sub label {
77    my ($self) = @_;
78    $forms->{$self->{form}}->{name} || ''
79}
80
81sub attributes {
82    my ($self) = @_;
83    grep { $self->{object}->get_field_name($_, 'w') } @{ $forms->{$self->{form}}->{attrs} };
84}
85
86sub attr_label {
87    my ($self, $attr) = @_;
88    return $self->escape($attrs->{$attr} || $attr);
89}
90
91sub attr_field {
92    my ($self, $attr) = @_;
93    return sprintf(
94        '<input type="text" name="%s" value="%s">',
95        $attr,
96        $self->escape(
97            $self->{c}->req->param($attr) ||
98            $self->{object}->get_c_field($attr)
99        )
100    );
101}
102
103sub set_attrs {
104    my ($self) = @_;
105    $self->{object}->set_c_fields(
106        map {
107            $_ => $self->{c}->req->param($_)
108        } grep { 
109            exists $self->{c}->req->params->{$_}
110        } $self->attributes
111    );
112    $self->{object}->base->commit;
113}
114
115=head1 AUTHOR
116
117Thauvin Olivier
118
119=head1 LICENSE
120
121This library is free software, you can redistribute it and/or modify
122it under the same terms as Perl itself.
123
124=cut
125
1261;
Note: See TracBrowser for help on using the repository browser.