[Rt-commit] r18949 - rt/3.999/trunk/lib/RT/Model
ruz at bestpractical.com
ruz at bestpractical.com
Fri Mar 27 10:12:30 EDT 2009
Author: ruz
Date: Fri Mar 27 10:12:30 2009
New Revision: 18949
Modified:
rt/3.999/trunk/lib/RT/Model/CachedGroupMember.pm
Log:
* don't use is_group, it's just make not much sence, if there are
some records referencing this one via 'via' column then we must
delete/disable them when we delete/disable parent
Modified: rt/3.999/trunk/lib/RT/Model/CachedGroupMember.pm
==============================================================================
--- rt/3.999/trunk/lib/RT/Model/CachedGroupMember.pm (original)
+++ rt/3.999/trunk/lib/RT/Model/CachedGroupMember.pm Fri Mar 27 10:12:30 2009
@@ -163,27 +163,23 @@
return $id if $args{'member'}->id == $args{'group'}->id;
- if ( $args{'member'}->is_group() ) {
- my $GroupMembers = $args{'member'}->object->members;
- while ( my $member = $GroupMembers->next() ) {
- my $cached_member = RT::Model::CachedGroupMember->new( current_user => $self->current_user );
- my $c_id = $cached_member->create(
- group => $args{'group'},
- member => $member->member_obj,
- immediate_parent => $args{'member'},
- disabled => $args{'disabled'},
- via => $id
- );
- unless ($c_id) {
- return (undef); #percolate the error upwards.
- # the caller will log an error and abort the transaction
- }
-
+ my $GroupMembers = $args{'member'}->object->members;
+ while ( my $member = $GroupMembers->next() ) {
+ my $cached_member = RT::Model::CachedGroupMember->new( current_user => $self->current_user );
+ my $c_id = $cached_member->create(
+ group => $args{'group'},
+ member => $member->member,
+ immediate_parent => $args{'member'},
+ disabled => $args{'disabled'},
+ via => $id
+ );
+ unless ($c_id) {
+ return (undef); #percolate the error upwards.
+ # the caller will log an error and abort the transaction
}
}
return ($id);
-
}
@@ -199,29 +195,26 @@
sub delete {
my $self = shift;
- my $member = $self->member_obj();
- if ( $member->is_group ) {
- my $deletable = RT::Model::CachedGroupMemberCollection->new( current_user => $self->current_user );
-
- $deletable->limit(
- column => 'id',
- operator => '!=',
- value => $self->id
- );
- $deletable->limit(
- column => 'via',
- operator => '=',
- value => $self->id
- );
-
- while ( my $kid = $deletable->next ) {
- my $kid_err = $kid->delete();
- unless ($kid_err) {
- Jifty->log->error( "Couldn't delete CachedGroupMember " . $kid->id );
- return (undef);
- }
+ my $deletable = RT::Model::CachedGroupMemberCollection->new( current_user => $self->current_user );
+ $deletable->limit(
+ column => 'id',
+ operator => '!=',
+ value => $self->id
+ );
+ $deletable->limit(
+ column => 'via',
+ operator => '=',
+ value => $self->id
+ );
+
+ while ( my $kid = $deletable->next ) {
+ my $kid_err = $kid->delete();
+ unless ($kid_err) {
+ Jifty->log->error( "Couldn't delete CachedGroupMember " . $kid->id );
+ return (undef);
}
}
+
my $err = $self->SUPER::delete();
unless ($err) {
Jifty->log->error( "Couldn't delete CachedGroupMember " . $self->id );
@@ -271,27 +264,23 @@
return ($err);
}
- my $member = $self->member_obj();
- if ( $member->is_group ) {
- my $deletable = RT::Model::CachedGroupMemberCollection->new( current_user => $self->current_user );
-
- $deletable->limit(
- column => 'via',
- operator => '=',
- value => $self->id
- );
- $deletable->limit(
- column => 'id',
- operator => '!=',
- value => $self->id
- );
-
- while ( my $kid = $deletable->next ) {
- my $kid_err = $kid->set_disabled($val);
- unless ($kid_err) {
- Jifty->log->error( "Couldn't Setdisabled CachedGroupMember " . $kid->id );
- return ($kid_err);
- }
+ my $deletable = RT::Model::CachedGroupMemberCollection->new( current_user => $self->current_user );
+ $deletable->limit(
+ column => 'via',
+ operator => '=',
+ value => $self->id
+ );
+ $deletable->limit(
+ column => 'id',
+ operator => '!=',
+ value => $self->id
+ );
+
+ while ( my $kid = $deletable->next ) {
+ my $kid_err = $kid->set_disabled($val);
+ unless ($kid_err) {
+ Jifty->log->error( "Couldn't Setdisabled CachedGroupMember " . $kid->id );
+ return ($kid_err);
}
}
More information about the Rt-commit
mailing list