diff --git a/plugins/personal/connectivity/class_oxchangeAccount.inc b/plugins/personal/connectivity/class_oxchangeAccount.inc
index 9b774ba3a9d6fc077a95ce457a39502bfcddfc7d..062ceb3aa4a75413b421c07782cedc5cc1399b5b 100644 (file)
<?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
{
{
/* Show tab dialog headers */
- $display= "";
+ $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>"._("This account has <b>OpenXchange</b> features disabled. Posix features are needed for openXchange accounts, enable them first.")."</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>";
+ return ($display);
+ }
+ }
+ }
+ }
/* Show main page */
$smarty= get_smarty();
$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){
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());
-
/* 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 */
- for ($i=0;$i<$this->attrs['objectClass']['count'];$i++){
- if($this->attrs['objectClass'][$i]=="OXUserObject") $needupdate=FALSE;
+ /*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 ($istemplate) $needupdate=TRUE;
+
if($needupdate){
/* Trying to open a Postgresql Database Server */
if (function_exists("pg_connect")){
}
}
- $uid=$this->attrs[$this->dnmode][0];
-
plugin::save();
/* Write back to ldap */
$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')";
}
}
-
-// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
?>