Esempio n. 1
0
 /**	
  * updateUsers is for administrator direct from GridPanel
  * @param id, field, value
  */
 function updateUsersAction()
 {
     $guid = $this->_getParam('guid') ? $this->_getParam('guid') : '';
     $field = $this->_getParam('field') ? $this->_getParam('field') : '';
     $value = $this->_getParam('value') ? $this->_getParam('value') : '';
     $aclMan = Pandamp_Acl::manager();
     $obj = new Pandamp_Crypt_Password();
     $guidMan = new Pandamp_Core_Guid();
     $tblUserDetail = new Pandamp_Modules_Identity_User_Model_UserDetail();
     $tblUser = new Pandamp_Modules_Identity_User_Model_User();
     $rowUser = $tblUser->find($guid)->current();
     $rowUserDetailNew = $tblUserDetail->fetchNew();
     $rowUserDetailNew->uid = $guid;
     $rowUserDetailNew->packageId = $rowUser->packageId;
     $rowUserDetailNew->promotionId = $rowUser->promotionId;
     $rowUserDetailNew->educationId = $rowUser->educationId;
     $rowUserDetailNew->expenseId = $rowUser->expenseId;
     $rowUserDetailNew->paymentId = $rowUser->paymentId;
     $rowUserDetailNew->businessTypeId = $rowUser->businessTypeId;
     $rowUserDetailNew->periodeId = $rowUser->periodeId;
     $rowUserDetailNew->activationDate = $rowUser->activationDate;
     $rowUserDetailNew->isEmailSent = $rowUser->isEmailSent;
     $rowUserDetailNew->isActive = $rowUser->isActive;
     switch ($field) {
         case 'packageId':
             // delete user group = trial from gacl
             $aclMan->deleteUser($rowUser->username);
             // add user to gacl
             $aReturn = $aclMan->getGroupData($value);
             $aclMan->addUser($rowUser->username, $aReturn[2]);
             $rowUser->packageId = $value;
             if ($value == 26 || $value == 27) {
                 $rowUser->periodeId = 2;
             }
             // set to trial
             $result = $rowUser->save();
             if ($result) {
                 $rowUserDetailNew->save();
                 $this->view->success = true;
                 $this->view->message = "[user:{$rowUser->username}] Added Packed Successfully";
             }
             break;
         case 'periodeId':
             if ($value == 1) {
                 $rowUser->activationDate = '0000-00-00 00:00:00';
             } elseif ($value == 2) {
                 if ($rowUser->packageId == 26 || $rowUser->packageId == 27) {
                     $rowUser->activationDate = date("Y-m-d H:i:s");
                     // delete user group = trial from gacl
                     $aclMan->deleteUser($rowUser->username);
                     // add user to gacl
                     $aclMan->addUser($rowUser->username, 'member_gratis');
                 } else {
                     $this->view->success = false;
                     $this->view->message = "Wrong packaged!!";
                 }
             } elseif ($value == 3) {
                 $rowUser->activationDate = date("Y-m-d H:i:s");
                 // delete user group = trial from gacl
                 $aclMan->deleteUser($rowUser->username);
                 // add user to gacl
                 $aReturn = $aclMan->getGroupData($rowUser->packageId);
                 $aclMan->addUser($rowUser->username, $aReturn[2]);
             } elseif ($value == 4) {
                 if ($rowUser->packageId == 26 || $rowUser->packageId == 27) {
                     $rowUser->activationDate = date("Y-m-d H:i:s");
                     // delete user group = trial from gacl
                     $aclMan->deleteUser($rowUser->username);
                     // add user to gacl
                     $aclMan->addUser($rowUser->username, 'member_gratis');
                 } else {
                     $this->view->success = false;
                     $this->view->message = "Wrong packaged!!";
                 }
             }
             // TODO :: should followed by changing the package after user do upgrade
             // elseif ($value == 5) // upgrade
             // {
             //	$rowUserDetail->activationDate = date("Y-m-d H:i:s");
             // }
             $rowUser->periodeId = $value;
             $result = $rowUser->save();
             if ($result) {
                 $rowUserDetailNew->save();
                 $this->view->success = true;
                 $this->view->message = "[user:{$rowUser->username}] Update Successfully";
             }
             break;
         case 'paymentId':
             $rowUser->paymentId = $value;
             $result = $rowUser->save();
             if ($result) {
                 $rowUserDetailNew->save();
                 $this->view->success = true;
                 $this->view->message = "[user:{$rowUser->username}] Update Successfully";
             }
             break;
     }
 }