summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a8f0ab7)
raw | patch | inline | side by side (parent: a8f0ab7)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Tue, 24 Jun 2008 09:14:17 +0000 (09:14 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Tue, 24 Jun 2008 09:14:17 +0000 (09:14 +0000) |
-You are no longer able to edit attributes in MyAccount->phone while not in edit mode.
-Fixed problem with uid, pager,mail, cn references. The DB entries were not updated if one of this attributes has changed.
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@11409 594d385d-05f5-0310-b6e9-bd551577e9d8
-Fixed problem with uid, pager,mail, cn references. The DB entries were not updated if one of this attributes has changed.
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@11409 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-plugins/gofon/gofon/phoneaccount/class_phoneAccount.inc | patch | blob | history |
diff --git a/gosa-plugins/gofon/gofon/phoneaccount/class_phoneAccount.inc b/gosa-plugins/gofon/gofon/phoneaccount/class_phoneAccount.inc
index 3eae8ca904f5b11e3539a867af8df3ee623ad10d..4be721303bd9718349be1a883cdb83f6b4df2f78 100644 (file)
/* Definitions */
var $plHeadline= "Phone";
var $plDescription= "This does something";
- var $has_mailAccount= FALSE;
/* Attributes */
var $telephoneNumber = array();
var $CopyPasteVars = array("phoneNumbers","macroarray","macrostillavailable"/*"phoneNumbers" -Reset- */,
"hardware_list","used_hardware");
- var $attributes = array("goFonDeliveryMode", "goFonFormat","cn","goFonHomeServer",
+ var $attributes = array("goFonDeliveryMode", "goFonFormat","goFonHomeServer",
"goFonHardware","goFonPIN","goFonVoicemailPIN","telephoneNumber", "goFonMacro","macro");
var $objectclasses= array("goFonAccount");
var $uid;
+ var $cn;
var $view_logged = FALSE;
var $multiple_support = TRUE;
+ var $mailAddress = "";
+ var $has_mailAccount = FALSE;
+ var $pager = "";
function phoneAccount (&$config, $dn= NULL, $parent= NULL)
{
}
}
- /* Set up has_mailAccount */
- if (isset($this->attrs['objectClass'])){
- if (in_array("gosaMailAccount", $this->attrs['objectClass'])){
- $this->has_mailAccount= TRUE;
- }
- }
-
/* Set parent object to tab object */
if(is_object($parent)){
$this->parent = $parent->parent;
- }else{
+ }
- /* Workaround ...
- FIXME, * If there is time, split this code into class_voip.inc and class_phoneaccount.inc
- This code is to much to be comprehensible and understandable.
- * We don't need a parent object here, we just need a reference to the users uid and cn.
-
- */
- $this->parent = new usertabs($this->config,
- $this->config->data['TABS']['USERTABS'],$this->dn);
+ /* Get current uid and cn
+ */
+ if(isset($this->attrs['uid'][0])){
+ $this->uid = $this->attrs['uid'][0];
+ }
+ if(isset($this->attrs['cn'][0])){
+ $this->cn = $this->attrs['cn'][0];
+ }
+ if(isset($this->attrs['mail'][0])){
+ $this->mailAddress = $this->attrs['mail'][0];
+ }
+ if(isset($this->attrs['pager'][0])){
+ $this->pager = $this->attrs['pager'][0];
}
- /* Set uid */
- if((isset($this->parent->by_object['user']->uid))&&(!empty($this->parent->by_object['user']->uid))){
- $this->uid = $this->parent->by_object['user']->uid;
+ /* If there is a parent object present, use references
+ */
+ if(isset($this->parent->by_object['user']->uid)){
+ $this->uid = &$this->parent->by_object['user']->uid;
}
- if((isset($this->parent->by_object['user']->cn))&&(!empty($this->parent->by_object['user']->cn))){
- $this->cn = $this->parent->by_object['user']->cn;
+ if(isset($this->parent->by_object['user']->cn)){
+ $this->cn =&$this->parent->by_object['user']->cn;
+ }
+ if(isset($this->parent->by_object['user']->pager)){
+ $this->pager =&$this->parent->by_object['user']->pager;
+ }
+ if(isset($this->parent->by_object['mailAccount']->mail)){
+ $this->mailAddress = &$this->parent->by_object['mailAccount']->mail;
+ $this->has_mailAccount = &$this->parent->by_object['mailAccount']->is_account();
}
-
/* Check server configurations
* Load all server configuration in $this->goFonHomeServers if available
$newnums[]= preg_replace("/[^0-9]/","",$tele);
}
- /* If deletion starts from userslist, cn uid are not set */
- if((isset($this->parent->by_object['user']->uid))&&(!empty($this->parent->by_object['user']->uid))){
- $this->uid = $this->parent->by_object['user']->uid;
- }
- if((isset($this->parent->by_object['user']->cn))&&(!empty($this->parent->by_object['user']->cn))){
- $this->cn = $this->parent->by_object['user']->cn;
- }
+ if(empty($this->uid)) trigger_error("Uid is empty.");
+
+
/* Create voicemail entry
*/
if((!isset($this->cn))||(empty($this->cn))){
$CNname= $this->cn;
}
- if((isset($this->parent))&&(isset($this->parent->by_object['mailAccount']))&&($this->parent->by_object['mailAccount']->is_account==true)){
- $s_mail = $this->parent->by_object['mailAccount']->mail;
- }else{
- $s_mail = "";
+ $s_mail = "";
+ if($this->has_mailAccount){
+ $s_mail = $this->mailAddress;;
}
+
/* Get phonehardware to setup sip entry */
$ldap = $this->config->get_ldap_link();
$r_res = $ldap->search("(&(objectClass=goFonHardware)(cn=".$this->goFonHardware."))", array('*'));
"context" => $this->voice_context,
"email" => $s_mail);
- /* Set pager number if available */
- if(isset($this->parent->by_object['user']->pager)){
- $voice_data_array['pager'] = $this->parent->by_object['user']->pager;
- }
+ $voice_data_array['pager'] = $this->pager;
/* Check if there is already an entry in sip_users for this uid */
$query_tmp = "SELECT * FROM ".$a_New['VOICE_TABLE']." WHERE customer_id='".$customer_id."';\n";
$display = "";
$SkipWrite = (!isset($this->parent) || !$this->parent) && !session::is_set('edit');
+
if(empty($this->macro)&&(!empty($this->goFonMacro))){
/* Go through already saved values, for a parameter */
/* Assign acls */
$tmp = $this->plInfo();
foreach($tmp['plProvidedAcls'] as $name => $translation){
- $smarty->assign($name."ACL",$this->getacl($name));
+ $smarty->assign($name."ACL",$this->getacl($name,$SkipWrite));
}
/* Transfer ACL's */
{
if(!$this->initially_was_account) return;
- foreach($this->attributes as $key=>$val){
- if(in_array($val,array("uid","cn"))){
- unset($this->attributes[$key]);
- unset($this->$val);
- }
- }
if(count($this->goFonHomeServers) && !empty($this->init_HomeServer) && is_callable("mysql_pconnect")){
// Get Configuration for initial Mysql database Server
$SQL="";
- /* If deletion starts from userslist, cn uid are not set */
- if((isset($this->parent->by_object['user']->uid))&&(!empty($this->parent->by_object['user']->uid))){
- $this->uid = $this->parent->by_object['user']->uid;
- }
-
- if((isset($this->parent->by_object['user']->cn))&&(!empty($this->parent->by_object['user']->cn))){
- $this->cn = $this->parent->by_object['user']->cn;
- }
$first_num = false;
// Delete old entries
}
foreach($this->phoneNumbers as $num){
- if(!isset($this->cn)) $this->cn = "";
-
if((isset($numbers[$num]))&&(($numbers[$num]['uid'][0]!=$this->uid))){
if(isset($numbers[$num]['uid'][0])){
return sprintf(_("The specified telephonenumber '%s' is already assigned to '%s'."),$num,$numbers[$num]['uid'][0]);