--- lib/A3C/Model/User.pm 2008/03/13 17:33:45 15 +++ lib/A3C/Model/User.pm 2008/03/17 13:06:40 25 @@ -8,13 +8,20 @@ use A3C::Record schema { - column name => - type is 'text', - label is _('Ime'), + column uid => + label is ('uid'), + is indexed, + is mandatory, + is distinct; + + column hrEduPersonUniqueID => + label is ('hrEduPersonUniqueID'), + is indexed, + is distinct, is mandatory; column cn => - label is _('Ime'), + label is _('Ime i prezime'), type is 'virtual'; column sn => @@ -27,14 +34,12 @@ label is _('Ime'), is mandatory; - column email => + column mail => type is 'text', is mandatory, - label is _('Email address'), default is '', is immutable, is distinct; - - column email_confirmed => - label is _('Email address confirmed?'), - type is 'boolean'; + label is _('Email address'), default is '', + is immutable, + is distinct; column password => is unreadable, @@ -66,7 +71,8 @@ column hrEduPersonDateOfBirth => type is 'date', render as 'date', - label is _('Datum rođenja'); + label is _('Datum rođenja'), + filters are 'Jifty::DBI::Filter::Date'; column hrEduPersonGender => label is _('Spol'); @@ -190,6 +196,7 @@ type is 'date', render as 'date', is mandatory, + filters are 'Jifty::DBI::Filter::Date'; column hrEduPersonTitle => label is 'Položaj u ustanovi', @@ -291,15 +298,61 @@ column hrEduPersonPrivacy => label is _('Oznaka privatnosti'); + column loginShell => + label is _('shell'); + + column uidNumber => + label is _('uid'), + type is 'int'; + + column gidNumber => + label is _('gid'); + type is 'int'; + + column homeDirectory => + label is _('home'); + }; -use Jifty::Plugin::User::Mixin::Model::User; +# we don't use following mixing because it wants to send notificaitons on e-mail address change +#use Jifty::Plugin::User::Mixin::Model::User; use Jifty::Plugin::Authentication::Password::Mixin::Model::User; #use Jifty::Plugin::OpenID::Mixin::Model::User; use Jifty::Plugin::ActorMetadata::Mixin::Model::ActorMetadata; # created_by, created_on, updated_on # Your model-specific methods go here. +=head2 before_create + +Implement virtual columns, for now put mail from ldap into email row + +=cut + +=for later + +sub before_create { + my ($self, $attr) = @_; + if ( ! $attr->{'email'} ) { + warn "push mail to email"; + $attr->{'email'} = $attr->{'mail'}; + } +} + +=cut + +=head2 email + +Accessor for compatibility with Jifty mixins + +=cut + +sub email { + my $self = shift; + return $self->__value('mail'); +} + +sub email_confirmed { 1 }; + =head2 validate_telephoneNumber =cut @@ -312,6 +365,27 @@ return ( 1, 'OK' ); } +=head2 canonicalize_hrEduPersonExpireDate + +Support NONE as 2042-12-30 + +=cut + +sub canonicalize_hrEduPersonExpireDate { + my ( $self, $value ) = @_; + + if ( $value eq 'NONE' ) { + $self->log->warn("fixed hrEduPersonExpireDate"); + $value = '2042-12-30'; + } + + return $value; +} + +=head2 current_user_can + +=cut + sub current_user_can { # FIXME no security for now :-) return 1;