[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