$pclf = new PermissionControlListFactory();
     $pclf->StartTransaction();
     foreach ($ids as $id) {
         $pclf->getByIdAndCompanyId($id, $current_company->getId());
         foreach ($pclf as $pc_obj) {
             $permission_arr = $pc_obj->getPermission();
             $pc_obj->setId(FALSE);
             $pc_obj->setName(Misc::generateCopyName($pc_obj->getName()));
             if ($pc_obj->isValid()) {
                 $pc_obj->Save(FALSE);
                 $pc_obj->setPermission($permission_arr);
             }
             unset($pc_obj, $permission_arr);
         }
     }
     $pclf->CommitTransaction();
     Redirect::Page(URLBuilder::getURL(NULL, 'PermissionControlList.php'));
     break;
 case 'delete':
 case 'undelete':
     if (strtolower($action) == 'delete') {
         $delete = TRUE;
     } else {
         $delete = FALSE;
     }
     $pclf = new PermissionControlListFactory();
     foreach ($ids as $id) {
         $pclf->getByIdAndCompanyId($id, $current_company->getId());
         foreach ($pclf as $pc_obj) {
             $pc_obj->setDeleted($delete);
             if ($pc_obj->isValid()) {