mirror of
https://github.com/owncloudarchive/contacts.git
synced 2025-01-18 07:52:21 +01:00
Fix scrutinizer issues
This commit is contained in:
parent
a6393f9695
commit
12b2b1cd61
@ -56,7 +56,7 @@ class App {
|
||||
'ldap' => 'OCA\Contacts\Backend\Ldap',
|
||||
'local' => 'OCA\Contacts\Backend\Database',
|
||||
'shared' => 'OCA\Contacts\Backend\Shared',
|
||||
'owncloudusers' => 'OCA\Contacts\Backend\OwnCloudUsers',
|
||||
'owncloudusers' => 'OCA\Contacts\Backend\OwnCloudUsers',
|
||||
);
|
||||
|
||||
public function __construct(
|
||||
|
@ -6,7 +6,7 @@ use OCA\Contacts\Contact,
|
||||
OCA\Contacts\VObject\VCard,
|
||||
OCA\Contacts\Utils\Properties,
|
||||
Sabre\VObject\Reader,
|
||||
OCA\Contacts\Addressbook;
|
||||
OCA\Contacts\Addressbook;
|
||||
|
||||
|
||||
/**
|
||||
@ -32,50 +32,50 @@ class OwnCloudUsers extends AbstractBackend {
|
||||
private $cardsTableName = '*PREFIX*contacts_ocu_cards';
|
||||
|
||||
public function __construct($userid){
|
||||
$this->userid = $userid ? $userid : \OCP\User::getUser();
|
||||
$this->userid = $userid ? $userid : \OCP\User::getUser();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getAddressBooksForUser(array $options = array()) {
|
||||
// Only 1 addressbook for every user
|
||||
$sql = 'SELECT * FROM ' . $this->addressBooksTableName . ' WHERE id = ?';
|
||||
$args = array($this->userid);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute($args);
|
||||
$row = $result->fetchRow();
|
||||
// Only 1 addressbook for every user
|
||||
$sql = 'SELECT * FROM ' . $this->addressBooksTableName . ' WHERE id = ?';
|
||||
$args = array($this->userid);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute($args);
|
||||
$row = $result->fetchRow();
|
||||
|
||||
if(!$row){ // TODO -> better way?
|
||||
// Create new addressbook
|
||||
$sql = 'INSERT INTO ' . $this->addressBooksTableName
|
||||
. ' ( '
|
||||
. 'id, '
|
||||
. 'displayname, '
|
||||
//. 'uri, ' TODO
|
||||
. 'description, '
|
||||
//. 'ctag, '
|
||||
. 'active '
|
||||
. ') VALUES ( '
|
||||
. '?, '
|
||||
. '?, '
|
||||
. '?, '
|
||||
. '? '
|
||||
. ')';
|
||||
$args = array(
|
||||
$this->userid,
|
||||
'ownCloud Users',
|
||||
'ownCloud Users',
|
||||
1
|
||||
);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$query->execute($args);
|
||||
if(!$row){ // TODO -> better way?
|
||||
// Create new addressbook
|
||||
$sql = 'INSERT INTO ' . $this->addressBooksTableName
|
||||
. ' ( '
|
||||
. 'id, '
|
||||
. 'displayname, '
|
||||
//. 'uri, ' TODO
|
||||
. 'description, '
|
||||
//. 'ctag, '
|
||||
. 'active '
|
||||
. ') VALUES ( '
|
||||
. '?, '
|
||||
. '?, '
|
||||
. '?, '
|
||||
. '? '
|
||||
. ')';
|
||||
$args = array(
|
||||
$this->userid,
|
||||
'ownCloud Users',
|
||||
'ownCloud Users',
|
||||
1
|
||||
);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$query->execute($args);
|
||||
|
||||
return $this->getAddressBooksForUser();
|
||||
} else {
|
||||
$row['permissions'] = \OCP\PERMISSION_ALL;
|
||||
return array($row);
|
||||
}
|
||||
return $this->getAddressBooksForUser();
|
||||
} else {
|
||||
$row['permissions'] = \OCP\PERMISSION_ALL;
|
||||
return array($row);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -84,15 +84,15 @@ class OwnCloudUsers extends AbstractBackend {
|
||||
*/
|
||||
public function getAddressBook($addressBookId, array $options = array()) {
|
||||
|
||||
$sql = 'SELECT * FROM ' . $this->addressBooksTableName . ' WHERE id = ?';
|
||||
$args = array($addressBookId);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute($args);
|
||||
$row = $result->fetchRow();
|
||||
$row['permissions'] = \OCP\PERMISSION_ALL;
|
||||
$row['backend'] = $this->name;
|
||||
$sql = 'SELECT * FROM ' . $this->addressBooksTableName . ' WHERE id = ?';
|
||||
$args = array($addressBookId);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute($args);
|
||||
$row = $result->fetchRow();
|
||||
$row['permissions'] = \OCP\PERMISSION_ALL;
|
||||
$row['backend'] = $this->name;
|
||||
|
||||
return array($row);
|
||||
return array($row);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -100,42 +100,42 @@ class OwnCloudUsers extends AbstractBackend {
|
||||
* There are as many contacts in this addressbook as in this ownCloud installation
|
||||
*/
|
||||
public function getContacts($addressbookid, array $options = array()){
|
||||
$contacts = array();
|
||||
$contacts = array();
|
||||
|
||||
$sql = 'SELECT * FROM ' . $this->cardsTableName . ' WHERE owner = ?';
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute(array($this->userid));
|
||||
while($row = $result->fetchRow()){
|
||||
$row['permissions'] = \OCP\PERMISSION_ALL;
|
||||
$contacts[] = $row;
|
||||
}
|
||||
$sql = 'SELECT * FROM ' . $this->cardsTableName . ' WHERE owner = ?';
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute(array($this->userid));
|
||||
while($row = $result->fetchRow()){
|
||||
$row['permissions'] = \OCP\PERMISSION_ALL;
|
||||
$contacts[] = $row;
|
||||
}
|
||||
|
||||
$contactsId = array();
|
||||
$contactsId = array();
|
||||
|
||||
foreach($contacts as $contact){
|
||||
$contactsId[] = $contact['id'];
|
||||
}
|
||||
foreach($contacts as $contact){
|
||||
$contactsId[] = $contact['id'];
|
||||
}
|
||||
|
||||
$users = \OCP\User::getUsers();
|
||||
$recall = false;
|
||||
$users = \OCP\User::getUsers();
|
||||
$recall = false;
|
||||
|
||||
$add = array_diff($users, $contactsId);
|
||||
$remove = array_diff($contactsId, $users);
|
||||
if(count($add) > 0){
|
||||
$this->addContacts($add, $addressbookid);
|
||||
$recall = true;
|
||||
}
|
||||
$add = array_diff($users, $contactsId);
|
||||
$remove = array_diff($contactsId, $users);
|
||||
if(count($add) > 0){
|
||||
$this->addContacts($add, $addressbookid);
|
||||
$recall = true;
|
||||
}
|
||||
|
||||
if(count($remove) > 0){
|
||||
$this->removeContacts($remove, $addressbookid);
|
||||
$recall = true;
|
||||
}
|
||||
if(count($remove) > 0){
|
||||
$this->removeContacts($remove, $addressbookid);
|
||||
$recall = true;
|
||||
}
|
||||
|
||||
if($recall === true){
|
||||
return $this->getContacts($addressbookid);
|
||||
} else {
|
||||
return $contacts;
|
||||
}
|
||||
if($recall === true){
|
||||
return $this->getContacts($addressbookid);
|
||||
} else {
|
||||
return $contacts;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -146,13 +146,13 @@ class OwnCloudUsers extends AbstractBackend {
|
||||
* ownCloud username 'bar' the params would be: $addressbookid = 'foo'; $id = 'bar';
|
||||
*/
|
||||
public function getContact($addressbookid, $id, array $options = array()){
|
||||
$sql = 'SELECT * FROM ' . $this->cardsTableName . ' WHERE owner = ?';
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute(array($this->userid));
|
||||
$row = $result->fetchRow();
|
||||
$row['permissions'] = \OCP\PERMISSION_ALL;
|
||||
$sql = 'SELECT * FROM ' . $this->cardsTableName . ' WHERE owner = ?';
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute(array($this->userid));
|
||||
$row = $result->fetchRow();
|
||||
$row['permissions'] = \OCP\PERMISSION_ALL;
|
||||
|
||||
return $row;
|
||||
return $row;
|
||||
}
|
||||
|
||||
// Not needed since there is only one addressbook for every user
|
||||
@ -168,41 +168,41 @@ class OwnCloudUsers extends AbstractBackend {
|
||||
* @return bool
|
||||
*/
|
||||
private function addContacts($contacts, $addressbookid){
|
||||
foreach($contacts as $user){
|
||||
$sql = 'INSERT INTO ' . $this->cardsTableName . ' ('
|
||||
. 'id, '
|
||||
. 'owner,'
|
||||
. 'addressbookid, '
|
||||
. 'fullname, '
|
||||
. 'carddata, '
|
||||
. 'uri, '
|
||||
. 'lastmodified'
|
||||
. ') VALUES ('
|
||||
. '?,'
|
||||
. '?,'
|
||||
. '?,'
|
||||
. '?,'
|
||||
. '?,'
|
||||
. '?,'
|
||||
. '?'
|
||||
. ')';
|
||||
foreach($contacts as $user){
|
||||
$sql = 'INSERT INTO ' . $this->cardsTableName . ' ('
|
||||
. 'id, '
|
||||
. 'owner,'
|
||||
. 'addressbookid, '
|
||||
. 'fullname, '
|
||||
. 'carddata, '
|
||||
. 'uri, '
|
||||
. 'lastmodified'
|
||||
. ') VALUES ('
|
||||
. '?,'
|
||||
. '?,'
|
||||
. '?,'
|
||||
. '?,'
|
||||
. '?,'
|
||||
. '?,'
|
||||
. '?'
|
||||
. ')';
|
||||
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
|
||||
$contact = new Contact(
|
||||
$addressBook = new AddressBook($this , $this->getAddressBooksForUser()), // since there is only one addressbook with OC users for each OC user we can use this function
|
||||
$this,
|
||||
array(
|
||||
"id" => $user,
|
||||
"lastmodified" => time(),
|
||||
"displayname" => \OCP\User::getDisplayName($user),
|
||||
"fullname" => \OCP\User::getDisplayName($user)
|
||||
)
|
||||
);
|
||||
$carddata = $this->generateCardData($contact);
|
||||
$result = $query->execute(array($user, $this->userid, $addressbookid, \OCP\User::getDisplayName($user), $carddata->serialize(), 'test', time()));
|
||||
// TODO Check if $result succeeded
|
||||
}
|
||||
$contact = new Contact(
|
||||
$addressBook = new AddressBook($this , $this->getAddressBooksForUser()), // since there is only one addressbook with OC users for each OC user we can use this function
|
||||
$this,
|
||||
array(
|
||||
"id" => $user,
|
||||
"lastmodified" => time(),
|
||||
"displayname" => \OCP\User::getDisplayName($user),
|
||||
"fullname" => \OCP\User::getDisplayName($user)
|
||||
)
|
||||
);
|
||||
$carddata = $this->generateCardData($contact);
|
||||
$result = $query->execute(array($user, $this->userid, $addressbookid, \OCP\User::getDisplayName($user), $carddata->serialize(), 'test', time()));
|
||||
// TODO Check if $result succeeded
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -213,13 +213,13 @@ class OwnCloudUsers extends AbstractBackend {
|
||||
* @return bool
|
||||
*/
|
||||
private function removeContacts($contacts, $addressbookid){
|
||||
foreach($contacts as $user){
|
||||
$sql = 'DELETE FROM ' . $this->cardsTableName . ' WHERE owner = ? AND id = ?';
|
||||
foreach($contacts as $user){
|
||||
$sql = 'DELETE FROM ' . $this->cardsTableName . ' WHERE owner = ? AND id = ?';
|
||||
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute(array($this->userid, $user));
|
||||
// TODO Check if $result succeeded
|
||||
}
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute(array($this->userid, $user));
|
||||
// TODO Check if $result succeeded
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -228,32 +228,32 @@ class OwnCloudUsers extends AbstractBackend {
|
||||
* @return Vcard
|
||||
*/
|
||||
private function generateCardData($data){
|
||||
if (!$data instanceof VCard) {
|
||||
try {
|
||||
$data = Reader::read($data);
|
||||
} catch(\Exception $e) {
|
||||
\OCP\Util::writeLog('contacts', __METHOD__.', exception: '.$e->getMessage(), \OCP\Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!$data instanceof VCard) {
|
||||
try {
|
||||
$data = Reader::read($data);
|
||||
} catch(\Exception $e) {
|
||||
\OCP\Util::writeLog('contacts', __METHOD__.', exception: '.$e->getMessage(), \OCP\Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$data->validate(VCard::REPAIR|VCard::UPGRADE);
|
||||
} catch (\Exception $e) {
|
||||
\OCP\Util::writeLog('contacts', __METHOD__ . ' ' .
|
||||
'Error validating vcard: ' . $e->getMessage(), \OCP\Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
$data->validate(VCard::REPAIR|VCard::UPGRADE);
|
||||
} catch (\Exception $e) {
|
||||
\OCP\Util::writeLog('contacts', __METHOD__ . ' ' .
|
||||
'Error validating vcard: ' . $e->getMessage(), \OCP\Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
$now = new \DateTime;
|
||||
$data->REV = $now->format(\DateTime::W3C);
|
||||
$now = new \DateTime;
|
||||
$data->REV = $now->format(\DateTime::W3C);
|
||||
|
||||
$appinfo = \OCP\App::getAppInfo('contacts');
|
||||
$appversion = \OCP\App::getAppVersion('contacts');
|
||||
$prodid = '-//ownCloud//NONSGML ' . $appinfo['name'] . ' ' . $appversion.'//EN';
|
||||
$data->PRODID = $prodid;
|
||||
$appinfo = \OCP\App::getAppInfo('contacts');
|
||||
$appversion = \OCP\App::getAppVersion('contacts');
|
||||
$prodid = '-//ownCloud//NONSGML ' . $appinfo['name'] . ' ' . $appversion.'//EN';
|
||||
$data->PRODID = $prodid;
|
||||
|
||||
return $data;
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -261,56 +261,56 @@ class OwnCloudUsers extends AbstractBackend {
|
||||
*/
|
||||
public function updateContact($addressBookId, $id, $contact, array $options = array()) {
|
||||
|
||||
$updateRevision = true;
|
||||
$isCardDAV = false;
|
||||
$updateRevision = true;
|
||||
$isCardDAV = false;
|
||||
|
||||
if (!$contact instanceof VCard) {
|
||||
try {
|
||||
$contact = Reader::read($contact);
|
||||
} catch(\Exception $e) {
|
||||
\OCP\Util::writeLog('contacts', __METHOD__.', exception: '.$e->getMessage(), \OCP\Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!$contact instanceof VCard) {
|
||||
try {
|
||||
$contact = Reader::read($contact);
|
||||
} catch(\Exception $e) {
|
||||
\OCP\Util::writeLog('contacts', __METHOD__.', exception: '.$e->getMessage(), \OCP\Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_array($id)) {
|
||||
if (isset($id['id'])) {
|
||||
$id = $id['id'];
|
||||
} elseif (isset($id['uri'])) {
|
||||
$updateRevision = false;
|
||||
$isCardDAV = true;
|
||||
$id = $this->getIdFromUri($id['uri']);
|
||||
if (is_array($id)) {
|
||||
if (isset($id['id'])) {
|
||||
$id = $id['id'];
|
||||
} elseif (isset($id['uri'])) {
|
||||
$updateRevision = false;
|
||||
$isCardDAV = true;
|
||||
$id = $this->getIdFromUri($id['uri']);
|
||||
|
||||
if (is_null($id)) {
|
||||
\OCP\Util::writeLog('contacts', __METHOD__ . ' Couldn\'t find contact', \OCP\Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
if (is_null($id)) {
|
||||
\OCP\Util::writeLog('contacts', __METHOD__ . ' Couldn\'t find contact', \OCP\Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
} else {
|
||||
throw new \Exception(
|
||||
__METHOD__ . ' If second argument is an array, either \'id\' or \'uri\' has to be set.'
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
throw new \Exception(
|
||||
__METHOD__ . ' If second argument is an array, either \'id\' or \'uri\' has to be set.'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if ($updateRevision || !isset($contact->REV)) {
|
||||
$now = new \DateTime;
|
||||
$contact->REV = $now->format(\DateTime::W3C);
|
||||
}
|
||||
if ($updateRevision || !isset($contact->REV)) {
|
||||
$now = new \DateTime;
|
||||
$contact->REV = $now->format(\DateTime::W3C);
|
||||
}
|
||||
|
||||
$data = $contact->serialize();
|
||||
$data = $contact->serialize();
|
||||
|
||||
$sql = 'UPDATE ' . $this->cardsTableName
|
||||
. ' SET '
|
||||
. '`addressbookid` = ?, '
|
||||
. '`fullname` = ?, '
|
||||
. '`carddata` = ?, '
|
||||
. '`lastmodified` = ? '
|
||||
. ' WHERE '
|
||||
. '`id` = ? '
|
||||
. 'AND `owner` = ? ';
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute(array($addressBookId, $contact->FN, $data, time(), $id, $this->userid));
|
||||
return true;
|
||||
$sql = 'UPDATE ' . $this->cardsTableName
|
||||
. ' SET '
|
||||
. '`addressbookid` = ?, '
|
||||
. '`fullname` = ?, '
|
||||
. '`carddata` = ?, '
|
||||
. '`lastmodified` = ? '
|
||||
. ' WHERE '
|
||||
. '`id` = ? '
|
||||
. 'AND `owner` = ? ';
|
||||
$query = \OCP\DB::prepare($sql);
|
||||
$result = $query->execute(array($addressBookId, $contact->FN, $data, time(), $id, $this->userid));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user