diff --git a/plugins/personal/connectivity/class_oxchangeAccount.inc b/plugins/personal/connectivity/class_oxchangeAccount.inc
index a77d8c2decfba24c1fd03b34ad86006e610d3475..317506027c0dbb300b15c25635ebd5ba33e665e0 100644 (file)
function execute()
{
+ /* Call parent execute */
+ //plugin::execute();
+
/* Show tab dialog headers */
$display="";
$obj= $this->parent->by_object['posixAccount'];
$obj2= $this->parent->by_object['mailAccount'];
if (! $obj->is_account){
- $display= "<BR><BR><CENTER>"._("This account has <b>OpenXchange</b> features disabled. Posix features are needed for openXchange accounts, enable them first.")."</CENTER><BR><BR>";
+ $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>"._("This account has <b>OpenXchange</b> features disabled. Mail features are needed for openXchange accounts, enable them first.")."</CENTER><BR><BR>";
+ $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);
}
}
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());
+ }
+
$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());
/* Optionally execute a command after we're done */
$this->postremove();
{
$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;
}
- $uid=$this->attrs[$this->dnmode][0];
- }else{
-
- if($this->dnmode="uid") $uid=$this->parent->by_object['user']->uid;
- else $uid=$this->parent->by_object['user']->sn." ".$this->parent->by_object['user']->givenName;
}
+ $uidarray=array();
+ preg_match("/^(\w+(?=\=))=((\w|\s)+(?=\,)),.*/",$this->dn,$uidarray);
+ $uid=$uidarray[2];
+
+ 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"));
+ 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::save();
/* Write back to ldap */
$ldap= $this->config->get_ldap_link();
$ldap->cd($this->dn);
- $ldap->modify($this->attrs);
+ $this->cleanup();
+$ldap->modify ($this->attrs);
+
show_ldap_error($ldap->get_error());
/* Optionally execute a command after we're done */
$this->postcreate();
if($needupdate){
+ $ldap->create_missing_trees("ou=addr,".$this->dn);
+ show_ldap_error($ldap->get_error());
/* Finally save data to postgresql server */
pg_set_client_encoding ("UNICODE");
$nv = "SELECT nextval ('serial_id')";