Changeset 1999 for trunk/phpgwapi/inc/class.preferences.inc.php
- Timestamp:
- 02/10/10 15:37:22 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/phpgwapi/inc/class.preferences.inc.php
r1295 r1999 222 222 $this->session = array(); 223 223 } 224 $groups = $GLOBALS['phpgw']->accounts->membership(); 225 foreach($groups as $group) 226 $gids .= ",".$group['account_id']; 227 $account_id = (int)$this->account_id; 228 224 229 $this->db->query("SELECT * FROM phpgw_preferences" 225 . " WHERE preference_owner IN (-1,-2," . (int)$this->account_id. ')',__LINE__,__FILE__);230 . " WHERE preference_owner IN (-1,-2," . $account_id . $gids . ')',__LINE__,__FILE__); 226 231 227 232 $this->forced = $this->default = $this->user = array(); … … 244 249 $this->default[$app] = $value; 245 250 break; 246 default: //user251 case $account_id: //user 247 252 $this->user[$app] = $value; 253 break; 254 default: // group 255 $this->group[$app] = $value; 248 256 break; 249 257 } … … 273 281 } 274 282 } 283 // now set/force forced values for groups 284 // 285 foreach($this->group as $app => $values) 286 { 287 foreach($values as $var => $value) 288 { 289 $this->data[$app][$var] = $value; 290 } 291 } 292 275 293 // now set/force forced values 276 294 // … … 532 550 @note the user prefs for saveing are in $this->user not in $this->data, which are the effectiv prefs only 533 551 */ 534 function save_repository($update_session_info = False,$type='user' )552 function save_repository($update_session_info = False,$type='user',$account_id = null) 535 553 { 536 554 switch($type) 537 555 { 538 556 case 'forced': 539 $account_id = -1; 557 if ($account_id == null) 558 $account_id = -1; 540 559 $prefs = &$this->forced; 541 560 break; … … 554 573 { 555 574 $this->db->transaction_begin(); 556 //$this->db->query("DELETE FROM phpgw_preferences WHERE preference_owner='$account_id'",557 $this->db->query("DELETE FROM phpgw_preferences WHERE preference_owner='$account_id' and preference_app <> 'jabberit_messenger'",558 __LINE__,__FILE__559 );560 561 575 foreach($prefs as $app => $value) 562 576 { … … 566 580 } 567 581 $this->quote($value); 568 $value = $this->db->db_addslashes(serialize($value)); 582 $value = $this->db->db_addslashes(serialize($value)); // this addslashes is for the database 569 583 $app = $this->db->db_addslashes($app); 570 584 571 $this->db->query($sql = "INSERT INTO phpgw_preferences" 572 . " (preference_owner,preference_app,preference_value)" 573 . " VALUES ($account_id,'$app','$value')",__LINE__,__FILE__); 585 $query = "SELECT (preference_owner, preference_app) FROM phpgw_preferences WHERE preference_owner = '".$account_id."' AND preference_app = '".$app."'"; 586 587 $this->db->query($query, __LINE__, __FILE__); 588 589 if(!$this->db->next_record()) 590 { 591 // Insert Db 592 $query = "INSERT INTO phpgw_preferences(preference_owner,preference_app, preference_value) ". 593 "VALUES('".$account_id."','".$app."','".$value."')"; 594 } 595 else 596 { 597 // Update Db 598 $query = "UPDATE phpgw_preferences SET preference_value = '".$value."' WHERE ". 599 "preference_owner = '".$account_id."' AND preference_app = '".$app."'"; 600 } 601 $this->db->query($query, __LINE__, __FILE__); 574 602 } 575 603 $this->db->transaction_commit();
Note: See TracChangeset
for help on using the changeset viewer.