fix persons and sites registration pages for latest changes
authorThierry Parmentelat <thierry.parmentelat@inria.fr>
Fri, 11 Jan 2013 07:43:30 +0000 (08:43 +0100)
committerThierry Parmentelat <thierry.parmentelat@inria.fr>
Fri, 11 Jan 2013 07:43:30 +0000 (08:43 +0100)
to AddPerson

planetlab/persons/register.php
planetlab/sites/register.php

index b0dc35e..3b2c18d 100644 (file)
@@ -133,7 +133,14 @@ function register_person ($person) {
 
   $errors = errors_init ();
 
-  // N.B.: site_ids and roles are ignored by AddPerson()
+  // jan-2013 with improvements in plcapi-5.1-6 about managing persons and tags,
+  // AddPerson has gone more picky and we need to remove some fields
+  // that no longer are silently ignored by AddPerson
+  $site_ids=$person['site_ids'];
+  unset ($person['site_ids']);
+  $roles=$person['roles'];
+  unset ($person['roles']);
+  
   $person_id = $adm->AddPerson($person);
   $errors = errors_record ($adm,$errors);
 
@@ -141,15 +148,15 @@ function register_person ($person) {
     $adm->begin();
 
     // Add person to requested sites
-    foreach ($person['site_ids'] as $site_id) {
+    foreach ($site_ids as $site_id) {
       $adm->AddPersonToSite($person_id, intval($site_id));
       $adm->SetPersonPrimarySite($person_id, intval($site_id));
     }
 
     // Add requested roles. Always add the user role. 
     $adm->AddRoleToPerson('user', $person_id);
-    if (!empty($person['roles'])) {
-      foreach ($person['roles'] as $role) {
+    if (!empty($roles)) {
+      foreach ($roles as $role) {
        $adm->AddRoleToPerson($role, $person_id);
       }
     }
index c9d59fc..56d2f7b 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-// $Id$
 //
 // Site registration and verification form. 
 //
@@ -144,6 +143,11 @@ EOF;
       // creating TECH
       $known_tech = $adm->GetPersons(array("email"=>$tech['email'],
                                           "peer_id"=>NULL),array("person_id"));
+      // jan-2013 with improvements in plcapi-5.1-6 about managing persons and tags,
+      // AddPerson has gone more picky and we need to remove some fields
+      // that no longer are silently ignored by AddPerson
+      $user_role_required=$tech['user-role'];
+      unset($tech['user-role']);
       if ($known_tech) {
        $messages [] = " Note: Tech was already known";
        $tech_id=$known_tech[0]['person_id'];
@@ -163,7 +167,7 @@ EOF;
       if ($adm->AddRoleToPerson('tech',$tech_id)) {
        $verboses [] = $tech['email'] . " granted Tech role";
       }
-      if ( ($tech['user-role']) && $adm->AddRoleToPerson('user',$tech_id) ) {
+      if ( $user_role_required && $adm->AddRoleToPerson('user',$tech_id) ) {
        $verboses [] = $tech['email'] . " granted User role";
       }
     }