forked from extern/egroupware
139 lines
3.3 KiB
PHP
139 lines
3.3 KiB
PHP
<?php
|
|
/**************************************************************************\
|
|
* phpGroupWare - addressbook *
|
|
* http://www.phpgroupware.org *
|
|
* Written by Joseph Engo <jengo@mail.com> *
|
|
* -------------------------------------------- *
|
|
* 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. *
|
|
\**************************************************************************/
|
|
|
|
/* $Id$ */
|
|
|
|
class soaddressbook
|
|
{
|
|
var $contacts;
|
|
var $rights;
|
|
var $grants;
|
|
var $owner;
|
|
|
|
function soaddressbook()
|
|
{
|
|
global $phpgw,$phpgw_info,$owner;
|
|
|
|
if(!isset($owner)) { $owner = 0; }
|
|
|
|
$grants = $phpgw->acl->get_grants('addressbook');
|
|
if(!isset($owner) || !$owner)
|
|
{
|
|
$owner = $phpgw_info['user']['account_id'];
|
|
$rights = PHPGW_ACL_READ + PHPGW_ACL_ADD + PHPGW_ACL_EDIT + PHPGW_ACL_DELETE + 16;
|
|
}
|
|
else
|
|
{
|
|
if($grants[$owner])
|
|
{
|
|
$rights = $grants[$owner];
|
|
if (!($rights & PHPGW_ACL_READ))
|
|
{
|
|
$owner = $phpgw_info['user']['account_id'];
|
|
$rights = PHPGW_ACL_READ + PHPGW_ACL_ADD + PHPGW_ACL_EDIT + PHPGW_ACL_DELETE + 16;
|
|
}
|
|
}
|
|
}
|
|
$this->rights = $rights;
|
|
$this->grants = $grants;
|
|
$this->owner = $owner;
|
|
}
|
|
|
|
function makeobj()
|
|
{
|
|
if (!is_object($this->contacts))
|
|
{
|
|
$this->contacts = CreateObject('phpgwapi.contacts');
|
|
}
|
|
return;
|
|
}
|
|
|
|
function read_entries($start,$offset,$qcols,$query,$qfilter,$sort,$order)
|
|
{
|
|
$this->makeobj();
|
|
$readrights = $this->rights & PHPGW_ACL_READ;
|
|
return $this->contacts->read($start,$offset,$qcols,$query,$qfilter,$sort,$order,$readrights);
|
|
}
|
|
|
|
function read_entry($id,$fields)
|
|
{
|
|
$this->makeobj();
|
|
if ($this->rights & PHPGW_ACL_READ)
|
|
{
|
|
return $this->contacts->read_single_entry($id,$fields);
|
|
}
|
|
else
|
|
{
|
|
$rtrn = array(0 => array('No access' => 'No access'));
|
|
return $rtrn;
|
|
}
|
|
}
|
|
|
|
function read_last_entry($fields)
|
|
{
|
|
$this->makeobj();
|
|
if ($this->rights & PHPGW_ACL_READ)
|
|
{
|
|
return $this->contacts->read_last_entry($fields);
|
|
}
|
|
else
|
|
{
|
|
$rtrn = array('No access' => 'No access');
|
|
return $rtrn;
|
|
}
|
|
}
|
|
|
|
function add_entry($fields)
|
|
{
|
|
$this->makeobj();
|
|
$fields['tid'] = trim($fields['tid']);
|
|
if(empty($fields['tid']))
|
|
{
|
|
$fields['tid'] = 'n';
|
|
}
|
|
if ($this->rights & PHPGW_ACL_ADD)
|
|
{
|
|
$id = $this->contacts->add($fields['owner'],$fields,$fields['access'],$fields['cat_id'],$fields['tid']);
|
|
}
|
|
return $id;
|
|
}
|
|
|
|
function get_lastid()
|
|
{
|
|
$this->makeobj();
|
|
$entry = $this->contacts->read_last_entry();
|
|
$ab_id = $entry[0]['id'];
|
|
return $ab_id;
|
|
}
|
|
|
|
function update_entry($fields)
|
|
{
|
|
$this->makeobj();
|
|
if ($this->rights & PHPGW_ACL_EDIT)
|
|
{
|
|
$this->contacts->update($fields['ab_id'],$fields['owner'],$fields,$fields['access'],$fields['cat_id']);
|
|
}
|
|
return;
|
|
}
|
|
|
|
function delete_entry($data)
|
|
{
|
|
$this->makeobj();
|
|
if ($this->rights & PHPGW_ACL_DELETE)
|
|
{
|
|
$this->contacts->delete($data['id']);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
?>
|