Code

Fixed ogroup saving
[gosa.git] / plugins / personal / connectivity / class_oxchangeAccount.inc
index 9108b92cb1d0884e299f4d2538315d065b344b85..d88b3801db7417353a97ed6c4457f5508c5a0b16 100644 (file)
@@ -1,4 +1,23 @@
 <?php
+/*
+  This code is part of GOsa (https://gosa.gonicus.de)
+  Copyright (C) 2005 Alejandro Escanero Blanco
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
 class oxchangeAccount extends plugin
 {
   /* Definitions */
@@ -14,16 +33,15 @@ class oxchangeAccount extends plugin
   var $OXAppointmentDays="500";
   var $OXTaskDays="5";
   var $OXTimeZone="GMT";
-  var $writeGlobalAddressBook="FALSE";
   var $mailEnabled="OK";
 
   /* attribute list for save action */
-  var $attributes= array("OXAppointmentDays", "OXTaskDays", "OXTimeZone","writeGlobalAddressBook","mailEnabled");
+  var $attributes= array("OXAppointmentDays", "OXTaskDays", "OXTimeZone","mailEnabled");
   var $objectclasses= array("OXUserObject");
 
+  var $uid = "";
 
   var $oxconf = array();
-
   var $timezones=array(
       "Africa/Abidjan",
       "Africa/Accra",
@@ -564,26 +582,53 @@ class oxchangeAccount extends plugin
       "Zulu"
         );
 
+  var $dnmode= "";
 
-
-  function oxchangeAccount ($config, $dn= NULL)
+  function oxchangeAccount ($config, $dn= NULL, $parent= NULL)
   {
-    plugin::plugin ($config, $dn);
+    plugin::plugin ($config, $dn, $parent);
     for ($i=0;$i<count($this->config->data['TABS']['CONNECTIVITY']);$i++){
-      if($this->config->data['TABS']['CONNECTIVITY'][$i]['CLASS']=='oxchangeAccount')
-      {
+      if($this->config->data['TABS']['CONNECTIVITY'][$i]['CLASS']=='oxchangeAccount') {
         $this->oxconf=$this->config->data['TABS']['CONNECTIVITY'][$i];
         break;
       }
     }
+
+    /* Setting uid to default */
+    if(isset($this->attrs['uid'][0])){
+      $this->uid = $this->attrs['uid'][0];
+    }
+
+    $this->dnmode= $this->config->current['DNMODE'];
   }
 
   function execute()
   {
+       /* Call parent execute */
+       //plugin::execute();
 
-    /* Show tab dialog headers */
-    $display= "";
 
+       $display="";
+    /* Show tab dialog headers  * /
+    $display="";
+    if ($this->parent != NULL){
+      if ($this->is_account){
+       $display="";
+      } else {
+        $obj= $this->parent->by_object['posixAccount'];
+       $obj2= $this->parent->by_object['mailAccount'];
+        if (! $obj->is_account){
+          $display= "<BR><BR><CENTER>".sprintf(_("This account has %s features disabled. Posix features are needed for openXchange accounts, enable them first."), "<b>"._("OpenXchange")."</b>")."</CENTER><BR><BR>";
+
+        } else {
+         if (! $obj2->is_account){
+           $display= "<BR><BR><CENTER>".sprintf(_("This account has %s features disabled. Mail features are needed for openXchange accounts, enable them first."), "<b>"._("OpenXchange")."</b>")."</CENTER><BR><BR>";
+            return ($display);
+         }
+        }
+      }
+    }
+*/
     /* Show main page */
     $smarty= get_smarty();
 
@@ -601,21 +646,34 @@ class oxchangeAccount extends plugin
     $smarty->assign("oxchangeAccountACL", chkacl($this->acl, "oxchangeAccount"));
     if ($this->is_account){
       $smarty->assign("oxchangeState", "checked");
+      $smarty->assign("oxState", "");
     } else {
       $smarty->assign("oxchangeState", "");
-      $smarty->assign("fstate", "disabled");
+      $smarty->assign("oxState", "disabled");
     }
 
-    // if ($this->is_account){
     $smarty->assign("timezones", $this->timezones);
-    // } else {
-    //         $smarty->assign("timezones", array("GMT"));
-    // }
 
 
     if ($this->parent != NULL){
       $smarty->assign("tabbed", 1);
-    }
+    }else{
+      $smarty->assign("tabbed", 0);
+       }
+
+       /* Trying to open a Postgresql Database Server */
+       if (function_exists("pg_connect")){
+               if(isset($this->oxconf["PGUSER"]) and isset($this->oxconf["PGHOST"]) and isset($this->oxconf["PGDBNAME"]) and isset($this->oxconf["PGPASSWD"])){
+                       $pgcon =  @pg_connect("host=".$this->oxconf["PGHOST"]." user=".$this->oxconf["PGUSER"]." password=".$this->oxconf["PGPASSWD"]." dbname=".$this->oxconf["PGDBNAME"]);
+                       if (! $pgcon){
+                               $smarty->assign("pg", false);
+                       }
+               }else{
+                       $smarty->assign("pg", false);
+               }
+       }else{
+               $smarty->assign("pg", false);
+       }
 
     $display.= $smarty->fetch (get_template_path('oxchange.tpl', TRUE, dirname(__FILE__)));
     return ($display);
@@ -624,64 +682,73 @@ class oxchangeAccount extends plugin
   function remove_from_parent()
   {
     $sqldeluser=array(
-        "delete from prg_notes where (user_right like '".$this->attrs['cn'][0]."') and (group_right like 's')",
-        "delete from prg_documents_read where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_documents_mod where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_docufolders_read where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_docufolders_mod where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_date_rights where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_date_notification where (member_uid like '".$this->attrs['cn'][0]."')",
-        "delete from prg_dates_members where (member_uid like '".$this->attrs['cn'][0]."')",
-        "delete from prg_knowledge_read where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_knowledge_mod where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_knowledge_folder_read where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_knowledge_folder_mod where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_pin_board_read where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_pin_board_mod where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_bookmarks_read where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_bookmarks_mod where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_bookmarks_folder_read where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_bookmarks_folder_mod where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_tasks_rights where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_tasks_notification where (member_uid like '".$this->attrs['cn'][0]."')",
-        "delete from prg_tasks_members where (member_uid like '".$this->attrs['cn'][0]."')",
-        "delete from prg_projects_rights where (user_right like '".$this->attrs['cn'][0]."')",
-        "delete from prg_projects_notification where (member_uid like '".$this->attrs['cn'][0]."')",
-        "delete        from prg_projects_members where (member_uid like '".$this->attrs['cn'][0]."')",
-        "delete from oxfolder_permissions where (entity like '".$this->attrs['cn'][0]."') AND ((role = 256) OR (role = 1024))",
-        "delete from oxfolder_standardfolders where owner like '".$this->attrs['cn'][0]."'",
-        "delete from prg_forum_read where user_right = '".$this->attrs['cn'][0]."'",
-        "delete from prg_forum_mod where user_right = '".$this->attrs['cn'][0]."'",
-        "delete from prg_forum_abo where user_right = '".$this->attrs['cn'][0]."'",
-        "delete from prg_forum_seen where username = '".$this->attrs['cn'][0]."'",
-        "delete from sys_holiday where (userid like '".$this->attrs['cn'][0]."')",
-        "delete from usr_holiday where (userid like '".$this->attrs['cn'][0]."')");
+        "delete from prg_notes where (user_right like '".$this->attrs[$this->dnmode][0]."') and (group_right like 's')",
+        "delete from prg_documents_read where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_documents_mod where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_docufolders_read where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_docufolders_mod where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_date_rights where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_date_notification where (member_uid like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_dates_members where (member_uid like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_knowledge_read where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_knowledge_mod where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_knowledge_folder_read where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_knowledge_folder_mod where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_pin_board_read where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_pin_board_mod where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_bookmarks_read where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_bookmarks_mod where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_bookmarks_folder_read where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_bookmarks_folder_mod where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_tasks_rights where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_tasks_notification where (member_uid like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_tasks_members where (member_uid like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_projects_rights where (user_right like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from prg_projects_notification where (member_uid like '".$this->attrs[$this->dnmode][0]."')",
+        "delete        from prg_projects_members where (member_uid like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from oxfolder_permissions where (entity like '".$this->attrs[$this->dnmode][0]."') AND ((role = 256) OR (role = 1024))",
+        "delete from oxfolder_standardfolders where owner like '".$this->attrs[$this->dnmode][0]."'",
+        "delete from prg_forum_read where user_right = '".$this->attrs[$this->dnmode][0]."'",
+        "delete from prg_forum_mod where user_right = '".$this->attrs[$this->dnmode][0]."'",
+        "delete from prg_forum_abo where user_right = '".$this->attrs[$this->dnmode][0]."'",
+        "delete from prg_forum_seen where username = '".$this->attrs[$this->dnmode][0]."'",
+        "delete from sys_holiday where (userid like '".$this->attrs[$this->dnmode][0]."')",
+        "delete from usr_holiday where (userid like '".$this->attrs[$this->dnmode][0]."')");
 
     /* Trying to open a Postgresql Database Server */
     if (function_exists("pg_connect")){
-      if(isset($this->oxconf["PGUSER"]) and isset($this->oxconf["PGHOST"]) and isset($this->oxconf["PGDBNAME"]) and isset($this->oxconf["PGPASSWD"])){
-        $pgcon = pg_connect("host=".$this->oxconf["PGHOST"]." user=".$this->oxconf["PGUSER"]." password=".$this->oxconf["PGPASSWD"]." dbname=".$this->oxconf["PGDBNAME"]);
+      if(isset($this->oxconf["PGUSER"]) and 
+                isset($this->oxconf["PGHOST"]) and 
+            isset($this->oxconf["PGDBNAME"]) and 
+         isset($this->oxconf["PGPASSWD"])){
+        $pgcon = @pg_connect("host=".$this->oxconf["PGHOST"]." user=".$this->oxconf["PGUSER"]." password=".$this->oxconf["PGPASSWD"]." dbname=".$this->oxconf["PGDBNAME"]);
         if (! $pgcon){
-          print_red(_("Couldn't Connect To Postgresql Database"));
+          print_red(_("Couldn't connect to postgresql database!"));
           return;
         }
       }else{
-        print_red(_("Needed Parameters to openexchange connectivity plugin failed!"));
+        print_red(_("Needed parameters for openexchange connectivity plugin are missing!"));
         return;
       }
     }else{
-      print_red(_("PHP4 module for Postgresql Database Failed!"));
+      print_red(_("PHP4 module for postgresql database is missing!"));
       return;
     }
 
     plugin::remove_from_parent();
     $ldap= $this->config->get_ldap_link();
 
+    if($ldap->dn_exists("ou=addr,".$this->dn)){
+       $ldap->rmdir_recursive("ou=addr,".$this->dn);
+       show_ldap_error($ldap->get_error(), _("Removing of oxchange addressbook failed"));
+    }
+
     $ldap->cd($this->dn);
     @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__,
         $this->attributes, "Save");
-    $ldap->modify($this->attrs);
-    show_ldap_error($ldap->get_error());
+    $this->cleanup();
+    $ldap->modify ($this->attrs); 
+    show_ldap_error($ldap->get_error(), _("Removing oxchange account failed"));
 
     /* Optionally execute a command after we're done */
     $this->postremove();
@@ -720,69 +787,101 @@ class oxchangeAccount extends plugin
   function save()
   {
 
-    /* Trying to open a Postgresql Database Server */
-    if (function_exists("pg_connect")){
-      if(isset($this->oxconf["PGUSER"]) and isset($this->oxconf["PGHOST"]) and isset($this->oxconf["PGDBNAME"]) and isset($this->oxconf["PGPASSWD"])){
-        $pgcon = pg_connect("host=".$this->oxconf["PGHOST"]." user=".$this->oxconf["PGUSER"]." password=".$this->oxconf["PGPASSWD"]." dbname=".$this->oxconf["PGDBNAME"]);
-        if (! $pgcon){
-          print_red(_("Couldn't Connect To Postgresql Database"));
+    $needupdate=TRUE;
+    $istemplate=FALSE;
+
+
+/*      print "<pre>".print_r($this->attrs, true)."</pre>";*/
+
+
+    /*First at all, we must check if this is new or is updated */
+    /*Also check is we have a template, if is a template, is a new user */
+    if (isset($this->attrs['objectClass'])){
+      foreach ($this->attrs['objectClass'] as $object){
+        if($object=="OXUserObject") $needupdate=FALSE;
+       if($object=="gosaUserTemplate") $istemplate=TRUE;
+      }
+    }
+
+    $uidarray=array();
+    preg_match("/^(\w+(?=\=))=((\w|\s|\.)+(?=\,)),.*/",$this->dn,$uidarray);
+    $uid=$uidarray[2];
+    if (trim($uid) == "") {
+      print_red(_("The Open-Xchange accountname is empty and thus invalid! Check to make sure that ".
+                  "you are not using any strange characters in the loginname."));
+      return;
+    }
+       
+    if ($istemplate) $needupdate=TRUE;
+
+    if($needupdate){
+      /* Trying to open a Postgresql Database Server */
+      if (function_exists("pg_connect")){
+        if(isset($this->oxconf["PGUSER"]) and isset($this->oxconf["PGHOST"]) and isset($this->oxconf["PGDBNAME"]) and isset($this->oxconf["PGPASSWD"])){
+          $pgcon =  @pg_connect("host=".$this->oxconf["PGHOST"]." user=".$this->oxconf["PGUSER"]." password=".$this->oxconf["PGPASSWD"]." dbname=".$this->oxconf["PGDBNAME"]);
+          if (! $pgcon){
+            print_red(_("Couldn't connect to postgresql database!"));
+            return;
+          }
+        }else{
+          print_red(_("Needed parameters for openexchange connectivity plugin are missing!"));
           return;
         }
       }else{
-        print_red(_("Needed Parameters to openexchange connectivity plugin failed!"));
+        print_red(_("PHP4 module for postgresql database is missing!"));
         return;
       }
-    }else{
-      print_red(_("PHP4 module for Postgresql Database Failed!"));
-      return;
     }
 
-    $uid=$this->attrs['cn'][0];
-
     plugin::save();
 
     /* Write back to ldap */
     $ldap= $this->config->get_ldap_link();
     $ldap->cd($this->dn);
-    $ldap->modify($this->attrs);
-    show_ldap_error($ldap->get_error());
+    $this->cleanup();
+    $ldap->modify ($this->attrs); 
+
+    show_ldap_error($ldap->get_error(), _("Saving of oxchange account failed"));
 
     /* Optionally execute a command after we're done */
     $this->postcreate();
 
-    /* Finally save data to postgresql server */
-    pg_set_client_encoding ("UNICODE");
-    $nv = "SELECT nextval ('serial_id')";
-    $ot = "insert into oxfolder_tree (fuid, parent, fname, module, type, owner, creator, creating_date, created_from, changing_date, changed_from) VALUES (%d, 1, '%s', '%s', 'private', '%s', '%s', 'now', 'System', 'now', 'System')";
-    $op = "INSERT INTO oxfolder_permissions (puid, pid, role, entity, sealed, fp, orp, owp, odp) VALUES (%d, %d, 32768,  '%s', 0, 128, 128, 128, 128)";
-    $os = "insert into oxfolder_standardfolders (owner,module_calendar,module_contact,module_task) VALUES ('%s',%d,%d,%d)";
-    $ugr= "INSERT INTO usr_general_rights SELECT creating_date, created_from, changing_date, changed_from,text('%s'),  addr_u, addr_r, addr_d, cont_u, cont_r, cont_d, data_u, data_r, data_d, serie_u, serie_r, serie_d, task_u, task_r, task_d,  refer, proj_u, proj_r, proj_d, dfolder_u, dfolder_r, dfolder_d, doc_u, doc_r, doc_d, knowl_u, knowl_r, knowl_d, bfolder_u,  bfolder_r, bfolder_d, bookm_u, bookm_r, bookm_d, pin_u, pin_r, pin_d, forum_n, fentrie_n, setup, pin_public, internal,  int_groups, kfolder_u, kfolder_r, kfolder_d, webmail FROM sys_gen_rights_template WHERE login LIKE 'default_template'";
-
-    $res=pg_exec($pgcon,$nv); $calendarid=pg_fetch_row($res); pg_freeresult($res);
-    $q=sprintf($ot,$calendarid[0],'My Appointments','calendar',$uid,$uid);
-    pg_exec($pgcon,$q);
-    $res=pg_exec($pgcon,$nv); $nid=pg_fetch_row($res); pg_freeresult($res);
-    $q=sprintf($op,$nid[0],$calendarid[0],$uid);
-    pg_exec($pgcon,$q);
-    $res=pg_exec($pgcon,$nv); $contactsid=pg_fetch_row($res); pg_freeresult($res);
-    $q=sprintf($ot,$contactsid[0],'My Contacts','contact',$uid,$uid);
-    pg_exec($pgcon,$q);
-    $res=pg_exec($pgcon,$nv); $nid=pg_fetch_row($res); pg_freeresult($res);
-    $q=sprintf($op,$nid[0],$contactsid[0],$uid);
-    pg_exec($pgcon,$q);
-    $res=pg_exec($pgcon,$nv); $tasksid=pg_fetch_row($res); pg_freeresult($res);
-    $q=sprintf($ot,$tasksid[0],'My Tasks','task',$uid,$uid);
-    pg_exec($pgcon,$q);
-    $res=pg_exec($pgcon,$nv); $nid=pg_fetch_row($res); pg_freeresult($res);
-    $q=sprintf($op,$nid[0],$tasksid[0],$uid);
-    pg_exec($pgcon,$q);
-    $q=sprintf($os,$uid,$calendarid[0],$contactsid[0],$tasksid[0]);
-    pg_exec($pgcon,$q);
-    $q=sprintf($ugr,$uid);
-    pg_exec($pgcon,$q);
-    pg_close($pgcon);
+    if($needupdate){
+      $ldap->create_missing_trees("ou=addr,".$this->dn);
+      show_ldap_error($ldap->get_error(), _("Creating oxchange addressbook tree failed"));
+      /* Finally save data to postgresql server */
+      pg_set_client_encoding ("UNICODE");
+      $nv = "SELECT nextval ('serial_id')";
+      $ot = "insert into oxfolder_tree (fuid, parent, fname, module, type, owner, creator, creating_date, created_from, changing_date, changed_from) VALUES (%d, 1, '%s', '%s', 'private', '%s', '%s', 'now', 'System', 'now', 'System')";
+      $op = "INSERT INTO oxfolder_permissions (puid, pid, role, entity, sealed, fp, orp, owp, odp) VALUES (%d, %d, 32768,  '%s', 0, 128, 128, 128, 128)";
+      $os = "insert into oxfolder_standardfolders (owner,module_calendar,module_contact,module_task) VALUES ('%s',%d,%d,%d)";
+      $ugr= "INSERT INTO usr_general_rights SELECT creating_date, created_from, changing_date, changed_from,text('%s'),  addr_u, addr_r, addr_d, cont_u, cont_r, cont_d, data_u, data_r, data_d, serie_u, serie_r, serie_d, task_u, task_r, task_d,  refer, proj_u, proj_r, proj_d, dfolder_u, dfolder_r, dfolder_d, doc_u, doc_r, doc_d, knowl_u, knowl_r, knowl_d, bfolder_u,  bfolder_r, bfolder_d, bookm_u, bookm_r, bookm_d, pin_u, pin_r, pin_d, forum_n, fentrie_n, setup, pin_public, internal,  int_groups, kfolder_u, kfolder_r, kfolder_d, webmail FROM sys_gen_rights_template WHERE login LIKE 'default_template'";
+
+      $res=pg_exec($pgcon,$nv); $calendarid=pg_fetch_row($res); pg_freeresult($res);
+      $q=sprintf($ot,$calendarid[0],'My Appointments','calendar',$uid,$uid);
+      pg_exec($pgcon,$q);
+      $res=pg_exec($pgcon,$nv); $nid=pg_fetch_row($res); pg_freeresult($res);
+      $q=sprintf($op,$nid[0],$calendarid[0],$uid);
+      pg_exec($pgcon,$q);
+      $res=pg_exec($pgcon,$nv); $contactsid=pg_fetch_row($res); pg_freeresult($res);
+      $q=sprintf($ot,$contactsid[0],'My Contacts','contact',$uid,$uid);
+      pg_exec($pgcon,$q);
+      $res=pg_exec($pgcon,$nv); $nid=pg_fetch_row($res); pg_freeresult($res);
+      $q=sprintf($op,$nid[0],$contactsid[0],$uid);
+      pg_exec($pgcon,$q);
+      $res=pg_exec($pgcon,$nv); $tasksid=pg_fetch_row($res); pg_freeresult($res);
+      $q=sprintf($ot,$tasksid[0],'My Tasks','task',$uid,$uid);
+      pg_exec($pgcon,$q);
+      $res=pg_exec($pgcon,$nv); $nid=pg_fetch_row($res); pg_freeresult($res);
+      $q=sprintf($op,$nid[0],$tasksid[0],$uid);
+      pg_exec($pgcon,$q);
+      $q=sprintf($os,$uid,$calendarid[0],$contactsid[0],$tasksid[0]);
+      pg_exec($pgcon,$q);
+      $q=sprintf($ugr,$uid);
+      pg_exec($pgcon,$q);
+      pg_close($pgcon);
+    }
   }
 }
 
-// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
 ?>