-sub __Relates
-{
- my $self = shift;
- my %args = (
- Shredder => undef,
- Dependencies => undef,
- @_,
- );
- my $deps = $args{'Dependencies'};
- my $list = [];
-
- if( $self->_Accessible( 'Creator', 'read' ) ) {
- my $obj = RT::Principal->new( $self->CurrentUser );
- $obj->Load( $self->Creator );
-
- if( $obj && defined $obj->id ) {
- push( @$list, $obj );
- } else {
- my $rec = $args{'Shredder'}->GetRecord( Object => $self );
- $self = $rec->{'Object'};
- $rec->{'State'} |= INVALID;
- push @{ $rec->{'Description'} },
- "Have no related User(Creator) #". $self->Creator ." object";
- }
- }
-
- if( $self->_Accessible( 'LastUpdatedBy', 'read' ) ) {
- my $obj = RT::Principal->new( $self->CurrentUser );
- $obj->Load( $self->LastUpdatedBy );
-
- if( $obj && defined $obj->id ) {
- push( @$list, $obj );
- } else {
- my $rec = $args{'Shredder'}->GetRecord( Object => $self );
- $self = $rec->{'Object'};
- $rec->{'State'} |= INVALID;
- push @{ $rec->{'Description'} },
- "Have no related User(LastUpdatedBy) #". $self->LastUpdatedBy ." object";
- }
- }
-
- $deps->_PushDependencies(
- BaseObject => $self,
- Flags => RELATES,
- TargetObjects => $list,
- Shredder => $args{'Shredder'}
- );
-
- # cause of this $self->SUPER::__Relates should be called last
- # in overridden subs
- my $rec = $args{'Shredder'}->GetRecord( Object => $self );
- $rec->{'State'} |= VALID unless( $rec->{'State'} & INVALID );
-
- return;
-}
-