/[A3C]/lib/A3C/Model/User.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /lib/A3C/Model/User.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 23 by dpavlin, Mon Mar 17 13:02:50 2008 UTC revision 38 by dpavlin, Sun Mar 30 13:32:12 2008 UTC
# Line 22  use A3C::Record schema { Line 22  use A3C::Record schema {
22    
23          column cn =>          column cn =>
24                  label is _('Ime i prezime'),                  label is _('Ime i prezime'),
25                  type is 'virtual';                  is mandatory;
26    
27          column sn =>          column sn =>
                 type is 'virtual',  
28                  label is _('Prezime'),                  label is _('Prezime'),
29                  is mandatory;                  is mandatory;
30    
31          column givenName =>          column givenName =>
                 type is 'virtual',  
32                  label is _('Ime'),                  label is _('Ime'),
33                  is mandatory;                  is mandatory;
34    
# Line 66  use A3C::Record schema { Line 64  use A3C::Record schema {
64    
65          column hrEduPersonUniqueNumber =>          column hrEduPersonUniqueNumber =>
66  #               is mandatory,  #               is mandatory,
67                  label is _('JMBG');                  label is _('Unique number');
68    
69          column hrEduPersonDateOfBirth =>          column hrEduPersonDateOfBirth =>
70                  type is 'date',                  type is 'date',
# Line 150  use A3C::Record schema { Line 148  use A3C::Record schema {
148                  ],                  ],
149                  default is '';                  default is '';
150    
151            column organization =>
152                    refers_to A3C::Model::Organization by 'id',
153                    is mandatory;
154    
155          column hrEduPersonAffiliation =>          column hrEduPersonAffiliation =>
156                  label is _('Povezanost s ustanovom'),                  label is _('Povezanost s ustanovom'),
157                  is mandatory,                  is mandatory,
# Line 253  use A3C::Record schema { Line 255  use A3C::Record schema {
255                  label is 'Pripadnost grupi',                  label is 'Pripadnost grupi',
256                  hint is 'skolskagodina::razred';                  hint is 'skolskagodina::razred';
257    
         column o =>  
                 label is _('Naziv matične ustanove'),  
                 is mandatory;  
           
         column hrEduPersonHomeOrg =>  
                 label is _('Oznaka matične ustanove'),  
                 hint is 'CARNet',  
                 is mandatory;  
   
258          column ou =>          column ou =>
259                  label is _('Organizacijska jedinica');                  label is _('Organizacijska jedinica');
260                    
261          column roomNumber =>          column roomNumber =>
262                  label is _('Broj sobe');                  label is _('Broj sobe');
263    
         column postalAddress =>  
                 label is _('Poštanska adresa'),  
                 render as 'textarea',  
                 is mandatory;  
           
         column l =>  
                 label is _('Mjesto'),  
                 hist is 'Zagreb',  
                 is mandatory;  
   
         column postalCode =>  
                 label is _('Poštanski broj'),  
                 hint is 'HR-10000';  
   
         column street =>  
                 label is _('Ulica i kućni broj');  
           
264          column homePostalAddress =>          column homePostalAddress =>
265                  label is _('Kućna poštanska adresa'),                  label is _('Kućna poštanska adresa'),
266                  render as 'textarea';                  render as 'textarea';
# Line 312  use A3C::Record schema { Line 288  use A3C::Record schema {
288          column homeDirectory =>          column homeDirectory =>
289                  label is _('home');                  label is _('home');
290    
         column objectClass =>  
                 type is 'virtual';  
   
291  };  };
292    
293  # we don't use following mixing because it wants to send notificaitons on e-mail address change  # we don't use following mixing because it wants to send notificaitons on e-mail address change
# Line 368  sub validate_telephoneNumber { Line 341  sub validate_telephoneNumber {
341          return ( 1, 'OK' );          return ( 1, 'OK' );
342  }  }
343    
344    =head2 hrEduPersonUniqueNumber
345    
346    Check if JMBG is valid
347    
348    =cut
349    
350    sub validate_hrEduPersonUniqueNumber {
351            my ( $self, $value ) = @_;
352    
353            if ( $value =~ m/^JMBG:\s+(\d+)$/ ) {
354    
355                    my $jmbg = $1;
356    
357                    return ( 0, _('JMBG must have 13 digits') ) unless length($jmbg) == 13;
358    
359                    sub digit_at {
360                            my ($jmbg,$pos) = @_;
361                            return ord(substr($jmbg,$pos,1)) - ord('0');
362                    }
363    
364                    my $sum;
365                    my $fact = 7;
366    
367                    foreach my $i ( 0 .. 11 ) {
368                            my $c = digit_at( $jmbg, $i );
369                            $sum += $c * $fact;
370    #                       warn "## $c * $fact => $sum\n";
371                            $fact--;
372                            $fact = 7 if $fact == 1;
373                    }
374    
375                    my $ost = $sum % 11;
376                    $ost = 11 - $ost if $ost > 1;
377    
378                    return ( 0, _("JMBG is invalid") ) if $ost != digit_at( $jmbg, 12 );
379            }
380    
381            return ( 1, 'OK' );
382    }
383    
384  =head2 canonicalize_hrEduPersonExpireDate  =head2 canonicalize_hrEduPersonExpireDate
385    
386  Support NONE as 2042-12-30  Support NONE as 2042-12-30
# Line 377  Support NONE as 2042-12-30 Line 390  Support NONE as 2042-12-30
390  sub canonicalize_hrEduPersonExpireDate {  sub canonicalize_hrEduPersonExpireDate {
391          my ( $self, $value ) = @_;          my ( $self, $value ) = @_;
392    
393          if ( $value eq 'NONE' ) {          if ( lc($value) eq 'none' ) {
394                  $self->log->warn("fixed hrEduPersonExpireDate");                  $self->log->warn("fixed hrEduPersonExpireDate");
395                  $value = '2042-12-30';                  $value = '2042-12-30';
396          }          }

Legend:
Removed from v.23  
changed lines
  Added in v.38

  ViewVC Help
Powered by ViewVC 1.1.26