Skip to Content.
Sympa Menu

comanage-dev - Re: [comanage-dev] r390 - in registry/trunk/app: Controller View/CoPeople

Subject: COmanage Developers List

List archive

Re: [comanage-dev] r390 - in registry/trunk/app: Controller View/CoPeople


Chronological Thread 
  • From: Marie Huynh <>
  • To:
  • Subject: Re: [comanage-dev] r390 - in registry/trunk/app: Controller View/CoPeople
  • Date: Tue, 23 Oct 2012 18:14:26 -0700

Are the redirects supposed to be different for the deletes? From here:
http://localhost/registry/co_groups/edit/16/co:11

I click add and after the addition, it redirects back to that page.  When I click the x to remove the added user, it redirects to this page instead:

http://localhost/registry/co_people/edit/3/co:11/tab:group 

On Tue, Oct 23, 2012 at 4:19 PM, <> wrote:
Author: benno
Date: 2012-10-23 19:19:34 -0400 (Tue, 23 Oct 2012)
New Revision: 390

Modified:
   registry/trunk/app/Controller/CoGroupMembersController.php
   registry/trunk/app/View/CoPeople/fields.inc
Log:
Fix handling of deleting group members (CO-495)

Modified: registry/trunk/app/Controller/CoGroupMembersController.php
===================================================================
--- registry/trunk/app/Controller/CoGroupMembersController.php  2012-10-23 12:56:16 UTC (rev 389)
+++ registry/trunk/app/Controller/CoGroupMembersController.php  2012-10-23 23:19:34 UTC (rev 390)
@@ -43,6 +43,9 @@
   // Edit and view need recursion so we get Name for rendering view
   public $edit_recursion = 2;
   public $view_recursion = 2;
+
+  // We need to track the group ID under certain circumstances to enable performRedirect
+  private $gid = null;

   /**
    * Add one or more CO Group Members.
@@ -239,20 +242,21 @@

     $owner = false;
     $member = false;
-    $gid = null;

+    // Store the group ID in the controller object since performRedirect may need it
+
     if($this->action == 'add' && isset($this->request->data['CoGroupMember']['co_group_id']))
-      $gid = $this->request->data['CoGroupMember']['co_group_id'];
+      $this->gid = $this->request->data['CoGroupMember']['co_group_id'];
     elseif(($this->action == 'delete' || $this->action == 'edit' || $this->action == 'view')
            && isset($this->request->params['pass'][0]))
-      $gid = $this->CoGroupMember->field('co_group_id', array('CoGroupMember.id' => $this->request->params['pass'][0]));
+      $this->gid = $this->CoGroupMember->field('co_group_id', array('CoGroupMember.id' => $this->request->params['pass'][0]));
     elseif($this->action == 'select' && isset($this->request->params['named']['cogroup']))
-      $gid = $this->request->params['named']['cogroup'];
+      $this->gid = $this->request->params['named']['cogroup'];

-    if(isset($gid) && !empty($cmr['copersonid']))
+    if(isset($this->gid) && !empty($cmr['copersonid']))
     {
       $gm = $this->CoGroupMember->find('all', array('conditions' =>
-                                                    array('CoGroupMember.co_group_id' => $gid,
+                                                    array('CoGroupMember.co_group_id' => $this->gid,
                                                           'CoGroupMember.co_person_id' => $cmr['copersonid'])));

       if(isset($gm[0]['CoGroupMember']['owner']) && $gm[0]['CoGroupMember']['owner'])
@@ -298,33 +302,35 @@
   function performRedirect() {
     // Figure out where to redirect back to based on how we were called

-    $cop = null;
+    $cop = null;

     if($this->action == 'add' && isset($this->request->data['CoGroupMember']['co_person_id']))
       $cop = $this->request->data['CoGroupMember']['co_person_id'];
-    elseif($this->action == 'delete' && isset($this->request->params['named']['CoPersonid']))
-      $cop = $this->request->params['named']['CoPersonid'];
+    elseif($this->action == 'delete' && isset($this->request->params['named']['copersonid']))
+      $cop = $this->request->params['named']['copersonid'];

-    if(isset($cop))
-    {
+    if(isset($cop)) {
       $params = array('controller' => 'co_people',
                       'action'     => 'edit',
                       $cop,
                       'co'         => $this->cur_co['Co']['id'],
                       'tab'        => 'group'
                      );
-      $this->redirect($params);
-    }
-    else
-    {
+    } elseif(isset($this->gid)) {
       $params = array('controller' => 'co_groups',
                       'action'     => 'edit',
-                      $this->request->data['CoGroupMember']['co_group_id'],
-                      'co'         => $this->cur_co['Co']['id'],
-                      'tab'        => 'group'
+                      $this->gid,
+                      'co'         => $this->cur_co['Co']['id']
                      );
-      $this->redirect($params);
+    } else {
+      // A perhaps not ideal default, but we shouldn't get here
+      $params = array('controller' => 'co_groups',
+                      'action'     => 'index',
+                      'co'         => $this->cur_co['Co']['id']
+                     );
     }
+
+    $this->redirect($params);
   }

   /**

Modified: registry/trunk/app/View/CoPeople/fields.inc
===================================================================
--- registry/trunk/app/View/CoPeople/fields.inc 2012-10-23 12:56:16 UTC (rev 389)
+++ registry/trunk/app/View/CoPeople/fields.inc 2012-10-23 23:19:34 UTC (rev 390)
@@ -535,7 +535,7 @@
                         print '</div>';
                         print '<div>';
                           // XXX we already checked for $permissions['edit'], but not ['delete']... should we?
-                          print '<a class="deletebutton" title="' . _txt('op.delete') . '" . _jtxt(_txt('fd.group.memin', array(Sanitize::html($g['CoGroup']['name'])))) . '\', \'' . $this->Html->url(array('controller' => 'co_group_members', 'action' => 'delete', $g['id'], 'CoPersonid' => $co_people[0]['CoPerson']['id'], 'co' => $cur_co['Co']['id'])) . '\')";>' . _txt('op.delete') . '</a>' . "\n";
+                          print '<a class="deletebutton" title="' . _txt('op.delete') . '" . _jtxt(_txt('fd.group.memin', array(Sanitize::html($g['CoGroup']['name'])))) . '\', \'' . $this->Html->url(array('controller' => 'co_group_members', 'action' => 'delete', $g['id'], 'copersonid' => $co_people[0]['CoPerson']['id'], 'co' => $cur_co['Co']['id'])) . '\')";>' . _txt('op.delete') . '</a>' . "\n";
                         print '</div>';
                       print '</div>';
                     }





Archive powered by MHonArc 2.6.16.

Top of Page