2 /***************************************************************************
3 * Copyright (C) 2003-2011 Polytechnique.org *
4 * http://opensource.polytechnique.org/ *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
22 // {{{ class PartnerSharing
23 // Holds data about a "directory partner".
30 public $has_directory = false
;
31 public $has_bulkmail = false
;
32 public $default_sharing_level = Visibility
::VIEW_NONE
;
33 protected $api_uid = null
;
35 protected function __construct(array $data)
37 foreach ($data as $key => $val) {
42 public function apiUser()
44 return User
::getSilentWithUID($this->api_uid
);
47 public static function fetchByAPIUser(User
$user)
49 $res = XDB
::fetchOneAssoc('SELECT id, shortname, name, url,
50 has_directory, has_bulkmail,
51 default_sharing_level, api_uid
52 FROM profile_partnersharing_enum
53 WHERE api_uid = {?}', $user->uid
);
57 return new PartnerSharing($res);
61 public static function fetchById($id)
63 $res = XDB
::fetchOneAssoc('SELECT id, shortname, name, url,
64 has_directory, has_bulkmail,
65 default_sharing_level, api_uid
66 FROM profile_partnersharing_enum
67 WHERE id = {?}', $id);
71 return new PartnerSharing($res);
76 // {{{ class PartnerSettings
80 public $sharing_level;
81 public $allow_email = false
;
82 protected $partner_id;
83 public $partner = null
;
85 public function __construct(array $data)
87 foreach ($data as $key => $val) {
90 $this->partner
= PartnerSharing
::fetchById($this->partner_id
);
91 $this->sharing_visibility
= Visibility
::get($this->sharing_level
);
94 public static function getEmpty($partner_id)
97 'partner_id' => $partner_id,
99 'sharing_level' => Visibility
::VIEW_NONE
,
100 'allow_email' => false
,
102 return new PartnerSettings($data);
107 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: