--- lib/A3C/Action/SyncOrganization.pm 2008/04/09 23:14:47 66 +++ lib/A3C/Action/SyncOrganization.pm 2008/05/01 17:06:02 106 @@ -12,19 +12,22 @@ use A3C::LDAP; +use Data::Dump qw/dump/; + use Jifty::Param::Schema; use Jifty::Action schema { - param cn => + param org_uid => label is _('Organization'), available are defer { + my $ldap = A3C::LDAP->new; my $coll = A3C::Model::OrganizationCollection->new; # unlimit, order_by works, other way around doesn't! $coll->unlimit; - $coll->order_by( column => 'cn', order => 'ASC' ); + $coll->order_by( column => $ldap->link->{value_from}, order => 'ASC' ); [{ - display_from => 'name', - value_from => 'cn', + display_from => $ldap->link->{display_from}, + value_from => $ldap->{link}->{value_from}, collection => $coll, }]; }, @@ -44,16 +47,17 @@ if ( $self->result->success ) { - my $organization = A3C::Model::Organization->new; - my $cn = $self->argument_value( 'cn' ); - $organization->load_by_cols( cn => $cn ) or die "can't load organization"; - my $ldap = A3C::LDAP->new; - my $coll = $ldap->collection( 'Person', filter => "(HrEduPersonHomeOrg=$cn)" ); + my $org_uid = $self->argument_value( 'org_uid' ); + my $person_filter = $ldap->link->{person_filter}; + + my $org_class = Jifty->app_class('Model', $ldap->objectClass->{organization} ); + + my $coll = $ldap->collection( $ldap->objectClass->{person}, filter => "($person_filter=$org_uid)" ); $self->result->content( 'synced-users' => $coll ); - $self->result->message( sprintf('Synced %d users from %s (%s)', $coll->count, $organization->name, $cn) ); + $self->result->message( _('Synced %1 users from %2', $coll->count, $org_uid) ); # } else { # $self->result->error();