Merge branch 'master' into subadmin
This commit is contained in:
commit
ea79ff191c
|
@ -16,8 +16,12 @@ $bookid = $_POST['bookid'];
|
|||
$book = OC_Contacts_App::getAddressbook($bookid);// is owner access check
|
||||
|
||||
if(!OC_Contacts_Addressbook::setActive($bookid, $_POST['active'])) {
|
||||
OCP\Util::writeLog('contacts','ajax/activation.php: Error activating addressbook: '.$bookid, OCP\Util::ERROR);
|
||||
OCP\JSON::error(array('data' => array('message' => OC_Contacts_App::$l10n->t('Error (de)activating addressbook.'))));
|
||||
OCP\Util::writeLog('contacts',
|
||||
'ajax/activation.php: Error activating addressbook: '. $bookid,
|
||||
OCP\Util::ERROR);
|
||||
OCP\JSON::error(array(
|
||||
'data' => array(
|
||||
'message' => OC_Contacts_App::$l10n->t('Error (de)activating addressbook.'))));
|
||||
exit();
|
||||
}
|
||||
|
||||
|
|
|
@ -12,13 +12,15 @@
|
|||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
OCP\JSON::callCheck();
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
debug('name: '.$_POST['name']);
|
||||
|
||||
$userid = OCP\USER::getUser();
|
||||
$name = isset($_POST['name'])?trim(strip_tags($_POST['name'])):null;
|
||||
$description = isset($_POST['description'])?trim(strip_tags($_POST['description'])):null;
|
||||
$description = isset($_POST['description'])
|
||||
? trim(strip_tags($_POST['description']))
|
||||
: null;
|
||||
|
||||
if(is_null($name)) {
|
||||
bailOut('Cannot add addressbook with an empty name.');
|
||||
|
|
|
@ -37,13 +37,15 @@ $n = trim($_POST['n']);
|
|||
|
||||
$vcard = new OC_VObject('VCARD');
|
||||
$vcard->setUID();
|
||||
$vcard->setString('FN',$fn);
|
||||
$vcard->setString('N',$n);
|
||||
$vcard->setString('FN', $fn);
|
||||
$vcard->setString('N', $n);
|
||||
|
||||
$id = OC_Contacts_VCard::add($aid, $vcard, null, $isnew);
|
||||
if(!$id) {
|
||||
OCP\JSON::error(array('data' => array('message' => OC_Contacts_App::$l10n->t('There was an error adding the contact.'))));
|
||||
OCP\Util::writeLog('contacts','ajax/addcontact.php: Recieved non-positive ID on adding card: '.$id, OCP\Util::ERROR);
|
||||
OCP\JSON::error(array(
|
||||
'data' => array(
|
||||
'message' => OC_Contacts_App::$l10n->t('There was an error adding the contact.'))));
|
||||
OCP\Util::writeLog('contacts', 'ajax/addcontact.php: Recieved non-positive ID on adding card: '.$id, OCP\Util::ERROR);
|
||||
exit();
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ OCP\JSON::checkLoggedIn();
|
|||
OCP\JSON::checkAppEnabled('contacts');
|
||||
OCP\JSON::callCheck();
|
||||
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
$id = isset($_POST['id'])?$_POST['id']:null;
|
||||
$name = isset($_POST['name'])?$_POST['name']:null;
|
||||
|
@ -33,22 +33,26 @@ $value = isset($_POST['value'])?$_POST['value']:null;
|
|||
$parameters = isset($_POST['parameters'])?$_POST['parameters']:array();
|
||||
|
||||
$vcard = OC_Contacts_App::getContactVCard($id);
|
||||
$l10n = OC_Contacts_App::$l10n;
|
||||
|
||||
if(!$name) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('element name is not set.'));
|
||||
bailOut($l10n->t('element name is not set.'));
|
||||
}
|
||||
if(!$id) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('id is not set.'));
|
||||
bailOut($l10n->t('id is not set.'));
|
||||
}
|
||||
|
||||
if(!$vcard) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Could not parse contact: ').$id);
|
||||
bailOut($l10n->t('Could not parse contact: ').$id);
|
||||
}
|
||||
|
||||
if(!is_array($value)){
|
||||
if(!is_array($value)) {
|
||||
$value = trim($value);
|
||||
if(!$value && in_array($name, array('TEL', 'EMAIL', 'ORG', 'BDAY', 'URL', 'NICKNAME', 'NOTE'))) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Cannot add empty property.'));
|
||||
if(!$value && in_array(
|
||||
$name,
|
||||
array('TEL', 'EMAIL', 'ORG', 'BDAY', 'URL', 'NICKNAME', 'NOTE'))
|
||||
) {
|
||||
bailOut($l10n->t('Cannot add empty property.'));
|
||||
}
|
||||
} elseif($name === 'ADR') { // only add if non-empty elements.
|
||||
$empty = true;
|
||||
|
@ -59,7 +63,7 @@ if(!is_array($value)){
|
|||
}
|
||||
}
|
||||
if($empty) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('At least one of the address fields has to be filled out.'));
|
||||
bailOut($l10n->t('At least one of the address fields has to be filled out.'));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -68,12 +72,14 @@ $current = $vcard->select($name);
|
|||
foreach($current as $item) {
|
||||
$tmpvalue = (is_array($value)?implode(';', $value):$value);
|
||||
if($tmpvalue == $item->value) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Trying to add duplicate property: '.$name.': '.$tmpvalue));
|
||||
bailOut($l10n->t('Trying to add duplicate property: '.$name.': '.$tmpvalue));
|
||||
}
|
||||
}
|
||||
|
||||
if(is_array($value)) {
|
||||
ksort($value); // NOTE: Important, otherwise the compound value will be set in the order the fields appear in the form!
|
||||
// NOTE: Important, otherwise the compound value will
|
||||
// be set in the order the fields appear in the form!
|
||||
ksort($value);
|
||||
$value = array_map('strip_tags', $value);
|
||||
} else {
|
||||
$value = strip_tags($value);
|
||||
|
@ -116,24 +122,25 @@ switch($name) {
|
|||
|
||||
$line = count($vcard->children) - 1;
|
||||
|
||||
// Apparently Sabre_VObject_Parameter doesn't do well with multiple values or I don't know how to do it. Tanghus.
|
||||
// Apparently Sabre_VObject_Parameter doesn't do well with
|
||||
// multiple values or I don't know how to do it. Tanghus.
|
||||
foreach ($parameters as $key=>$element) {
|
||||
if(is_array($element) && strtoupper($key) == 'TYPE') {
|
||||
// NOTE: Maybe this doesn't only apply for TYPE?
|
||||
// And it probably shouldn't be done here anyways :-/
|
||||
foreach($element as $e){
|
||||
foreach($element as $e) {
|
||||
if($e != '' && !is_null($e)){
|
||||
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$e);
|
||||
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key, $e);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$element);
|
||||
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key, $element);
|
||||
}
|
||||
}
|
||||
$checksum = md5($vcard->children[$line]->serialize());
|
||||
|
||||
if(!OC_Contacts_VCard::edit($id,$vcard)) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Error adding contact property: '.$name));
|
||||
if(!OC_Contacts_VCard::edit($id, $vcard)) {
|
||||
bailOut($l10n->t('Error adding contact property: '.$name));
|
||||
}
|
||||
|
||||
OCP\JSON::success(array('data' => array( 'checksum' => $checksum )));
|
||||
|
|
|
@ -12,16 +12,23 @@ OCP\JSON::checkAppEnabled('contacts');
|
|||
|
||||
$id = isset($_GET['id'])?$_GET['id']:null;
|
||||
if(is_null($id)) {
|
||||
OCP\JSON::error(array('data' => array('message' => OC_Contacts_App::$l10n->t('No ID provided'))));
|
||||
OCP\JSON::error(array(
|
||||
'data' => array(
|
||||
'message' => OC_Contacts_App::$l10n->t('No ID provided'))));
|
||||
exit();
|
||||
}
|
||||
$vcard = OC_Contacts_App::getContactVCard( $id );
|
||||
foreach($vcard->children as $property){
|
||||
//OCP\Util::writeLog('contacts','ajax/categories/checksumfor.php: '.$property->name, OCP\Util::DEBUG);
|
||||
if($property->name == 'CATEGORIES') {
|
||||
$checksum = md5($property->serialize());
|
||||
OCP\JSON::success(array('data' => array('value'=>$property->value, 'checksum'=>$checksum)));
|
||||
OCP\JSON::success(array(
|
||||
'data' => array(
|
||||
'value' => $property->value,
|
||||
'checksum' => $checksum,
|
||||
)));
|
||||
exit();
|
||||
}
|
||||
}
|
||||
OCP\JSON::error(array('data' => array('message' => OC_Contacts_App::$l10n->t('Error setting checksum.'))));
|
||||
OCP\JSON::error(array(
|
||||
'data' => array(
|
||||
'message' => OC_Contacts_App::$l10n->t('Error setting checksum.'))));
|
||||
|
|
|
@ -11,7 +11,7 @@ OCP\JSON::checkLoggedIn();
|
|||
OCP\JSON::checkAppEnabled('contacts');
|
||||
OCP\JSON::callCheck();
|
||||
|
||||
require_once(__DIR__.'/../loghandler.php');
|
||||
require_once __DIR__.'/../loghandler.php';
|
||||
|
||||
$categories = isset($_POST['categories'])?$_POST['categories']:null;
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
// Check if we are a user
|
||||
OCP\JSON::checkLoggedIn();
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
OCP\JSON::callCheck();
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
$userid = OCP\USER::getUser();
|
||||
$name = trim(strip_tags($_POST['name']));
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
OCP\JSON::setContentTypeHeader('text/plain');
|
||||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
if (!isset($_GET['id'])) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('No contact ID was submitted.'));
|
||||
|
|
|
@ -23,17 +23,7 @@
|
|||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
OCP\JSON::callCheck();
|
||||
require_once('loghandler.php');
|
||||
|
||||
// foreach($_SERVER as $key=>$value) {
|
||||
// OCP\Util::writeLog('contacts','ajax/saveproperty.php: _SERVER: '.$key.'=>'.$value, OCP\Util::DEBUG);
|
||||
// }
|
||||
// foreach($_POST as $key=>$value) {
|
||||
// debug($key.'=>'.print_r($value, true));
|
||||
// }
|
||||
// foreach($_GET as $key=>$value) {
|
||||
// debug($key.'=>'.print_r($value, true));
|
||||
// }
|
||||
require_once 'loghandler.php';
|
||||
|
||||
$id = isset($_POST['id'])?$_POST['id']:null;
|
||||
if(!$id) {
|
||||
|
|
|
@ -24,22 +24,23 @@
|
|||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
OCP\JSON::callCheck();
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
$id = $_POST['id'];
|
||||
$checksum = $_POST['checksum'];
|
||||
$l10n = OC_Contacts_App::$l10n;
|
||||
|
||||
$vcard = OC_Contacts_App::getContactVCard( $id );
|
||||
$line = OC_Contacts_App::getPropertyLineByChecksum($vcard, $checksum);
|
||||
if(is_null($line)){
|
||||
bailOut(OC_Contacts_App::$l10n->t('Information about vCard is incorrect. Please reload the page.'));
|
||||
if(is_null($line)) {
|
||||
bailOut($l10n->t('Information about vCard is incorrect. Please reload the page.'));
|
||||
exit();
|
||||
}
|
||||
|
||||
unset($vcard->children[$line]);
|
||||
|
||||
if(!OC_Contacts_VCard::edit($id,$vcard)) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Error deleting contact property.'));
|
||||
if(!OC_Contacts_VCard::edit($id, $vcard)) {
|
||||
bailOut($l10n->t('Error deleting contact property.'));
|
||||
}
|
||||
|
||||
OCP\JSON::success(array('data' => array( 'id' => $id )));
|
||||
|
|
|
@ -34,8 +34,8 @@ if($checksum) {
|
|||
$tmpl->assign('adr', $adr, false);
|
||||
}
|
||||
|
||||
$tmpl->assign('id',$id);
|
||||
$tmpl->assign('adr_types',$adr_types);
|
||||
$tmpl->assign('id', $id);
|
||||
$tmpl->assign('adr_types', $adr_types);
|
||||
|
||||
$page = $tmpl->fetchPage();
|
||||
OCP\JSON::success(array('data' => array('page'=>$page, 'checksum'=>$checksum)));
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
$tmpl = new OCP\Template("contacts", "part.edit_name_dialog");
|
||||
|
||||
|
@ -25,8 +25,8 @@ if($id) {
|
|||
}
|
||||
}
|
||||
$name = array_map('htmlspecialchars', $name['value']);
|
||||
$tmpl->assign('name',$name, false);
|
||||
$tmpl->assign('id',$id, false);
|
||||
$tmpl->assign('name', $name, false);
|
||||
$tmpl->assign('id', $id, false);
|
||||
} else {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Contact ID is missing.'));
|
||||
}
|
||||
|
|
|
@ -30,20 +30,20 @@ $maxUploadFilesize = min($upload_max_filesize, $post_max_size);
|
|||
$requesttoken = $_GET['requesttoken'];
|
||||
|
||||
$freeSpace=OC_Filesystem::free_space('/');
|
||||
$freeSpace=max($freeSpace,0);
|
||||
$maxUploadFilesize = min($maxUploadFilesize ,$freeSpace);
|
||||
$freeSpace=max($freeSpace, 0);
|
||||
$maxUploadFilesize = min($maxUploadFilesize, $freeSpace);
|
||||
$adr_types = OC_Contacts_App::getTypesOfProperty('ADR');
|
||||
$phone_types = OC_Contacts_App::getTypesOfProperty('TEL');
|
||||
$email_types = OC_Contacts_App::getTypesOfProperty('EMAIL');
|
||||
|
||||
$tmpl = new OCP\Template('contacts','part.contact');
|
||||
$tmpl = new OCP\Template('contacts', 'part.contact');
|
||||
$tmpl->assign('uploadMaxFilesize', $maxUploadFilesize);
|
||||
$tmpl->assign('uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize));
|
||||
$tmpl->assign('adr_types',$adr_types);
|
||||
$tmpl->assign('phone_types',$phone_types);
|
||||
$tmpl->assign('email_types',$email_types);
|
||||
$tmpl->assign('adr_types', $adr_types);
|
||||
$tmpl->assign('phone_types', $phone_types);
|
||||
$tmpl->assign('email_types', $email_types);
|
||||
$tmpl->assign('requesttoken', $requesttoken);
|
||||
$tmpl->assign('id','');
|
||||
$tmpl->assign('id', '');
|
||||
$page = $tmpl->fetchPage();
|
||||
|
||||
OCP\JSON::success(array('data' => array( 'page' => $page )));
|
||||
|
|
|
@ -25,7 +25,7 @@ OCP\JSON::checkLoggedIn();
|
|||
OCP\JSON::checkAppEnabled('contacts');
|
||||
|
||||
|
||||
$tmpl = new OCP\Template('contacts','part.no_contacts');
|
||||
$tmpl = new OCP\Template('contacts', 'part.no_contacts');
|
||||
$page = $tmpl->fetchPage();
|
||||
|
||||
OCP\JSON::success(array('data' => array( 'page' => $page )));
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
$id = isset($_GET['id']) ? $_GET['id'] : '';
|
||||
$refresh = isset($_GET['refresh']) ? true : false;
|
||||
|
|
|
@ -20,13 +20,15 @@
|
|||
*
|
||||
*/
|
||||
|
||||
function bailOut($msg, $tracelevel=1, $debuglevel=OCP\Util::ERROR) {
|
||||
function bailOut($msg, $tracelevel=1, $debuglevel=OCP\Util::ERROR)
|
||||
{
|
||||
OCP\JSON::error(array('data' => array('message' => $msg)));
|
||||
debug($msg, $tracelevel, $debuglevel);
|
||||
exit();
|
||||
}
|
||||
|
||||
function debug($msg, $tracelevel=0, $debuglevel=OCP\Util::DEBUG) {
|
||||
function debug($msg, $tracelevel=0, $debuglevel=OCP\Util::DEBUG)
|
||||
{
|
||||
if(PHP_VERSION >= "5.4") {
|
||||
$call = debug_backtrace(false, $tracelevel+1);
|
||||
} else {
|
||||
|
@ -35,6 +37,8 @@ function debug($msg, $tracelevel=0, $debuglevel=OCP\Util::DEBUG) {
|
|||
error_log('trace: '.print_r($call, true));
|
||||
$call = $call[$tracelevel];
|
||||
if($debuglevel !== false) {
|
||||
OCP\Util::writeLog('contacts', $call['file'].'. Line: '.$call['line'].': '.$msg, $debuglevel);
|
||||
OCP\Util::writeLog('contacts',
|
||||
$call['file'].'. Line: '.$call['line'].': '.$msg,
|
||||
$debuglevel);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
// Check if we are a user
|
||||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
if(!isset($_GET['id'])) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('No contact ID was submitted.'));
|
||||
|
@ -50,7 +50,9 @@ if($image->width() > 400 || $image->height() > 400) {
|
|||
$image->resize(400); // Prettier resizing than with browser and saves bandwidth.
|
||||
}
|
||||
if(!$image->fixOrientation()) { // No fatal error so we don't bail out.
|
||||
OCP\Util::writeLog('contacts','ajax/oc_photo.php: Couldn\'t save correct image orientation: '.$localpath, OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts',
|
||||
'ajax/oc_photo.php: Couldn\'t save correct image orientation: '.$localpath,
|
||||
OCP\Util::DEBUG);
|
||||
}
|
||||
if(OC_Cache::set($tmpkey, $image->data(), 600)) {
|
||||
OCP\JSON::success(array('data' => array('id'=>$_GET['id'], 'tmp'=>$tmpkey)));
|
||||
|
|
|
@ -27,7 +27,7 @@ OCP\JSON::callCheck();
|
|||
// Firefox and Konqueror tries to download application/json for me. --Arthur
|
||||
OCP\JSON::setContentTypeHeader('text/plain');
|
||||
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
$image = null;
|
||||
|
||||
|
@ -48,7 +48,7 @@ if($id == '') {
|
|||
bailOut('Missing contact id.');
|
||||
}
|
||||
|
||||
OCP\Util::writeLog('contacts','savecrop.php: key: '.$tmpkey, OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', 'savecrop.php: key: '.$tmpkey, OCP\Util::DEBUG);
|
||||
|
||||
$data = OC_Cache::get($tmpkey);
|
||||
if($data) {
|
||||
|
@ -56,7 +56,9 @@ if($data) {
|
|||
if($image->loadFromdata($data)) {
|
||||
$w = ($w != -1 ? $w : $image->width());
|
||||
$h = ($h != -1 ? $h : $image->height());
|
||||
OCP\Util::writeLog('contacts','savecrop.php, x: '.$x1.' y: '.$y1.' w: '.$w.' h: '.$h, OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts',
|
||||
'savecrop.php, x: '.$x1.' y: '.$y1.' w: '.$w.' h: '.$h,
|
||||
OCP\Util::DEBUG);
|
||||
if($image->crop($x1, $y1, $w, $h)) {
|
||||
if(($image->width() <= 200 && $image->height() <= 200) || $image->resize(200)) {
|
||||
$card = OC_Contacts_App::getContactVCard($id);
|
||||
|
@ -65,7 +67,9 @@ if($data) {
|
|||
bailOut(OC_Contacts_App::$l10n->t('Error getting contact object.'));
|
||||
}
|
||||
if($card->__isset('PHOTO')) {
|
||||
OCP\Util::writeLog('contacts','savecrop.php: PHOTO property exists.', OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts',
|
||||
'savecrop.php: PHOTO property exists.',
|
||||
OCP\Util::DEBUG);
|
||||
$property = $card->__get('PHOTO');
|
||||
if(!$property) {
|
||||
OC_Cache::remove($tmpkey);
|
||||
|
@ -76,8 +80,12 @@ if($data) {
|
|||
$property->parameters[] = new Sabre_VObject_Parameter('TYPE', $image->mimeType());
|
||||
$card->__set('PHOTO', $property);
|
||||
} else {
|
||||
OCP\Util::writeLog('contacts','savecrop.php: files: Adding PHOTO property.', OCP\Util::DEBUG);
|
||||
$card->addProperty('PHOTO', $image->__toString(), array('ENCODING' => 'b', 'TYPE' => $image->mimeType()));
|
||||
OCP\Util::writeLog('contacts',
|
||||
'savecrop.php: files: Adding PHOTO property.',
|
||||
OCP\Util::DEBUG);
|
||||
$card->addProperty('PHOTO',
|
||||
$image->__toString(), array('ENCODING' => 'b',
|
||||
'TYPE' => $image->mimeType()));
|
||||
}
|
||||
$now = new DateTime;
|
||||
$card->setString('REV', $now->format(DateTime::W3C));
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
// Check if we are a user
|
||||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
|
@ -39,9 +39,11 @@ if(!$id) {
|
|||
if(!$checksum) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('checksum is not set.'));
|
||||
}
|
||||
if(is_array($value)){
|
||||
if(is_array($value)) {
|
||||
$value = array_map('strip_tags', $value);
|
||||
ksort($value); // NOTE: Important, otherwise the compound value will be set in the order the fields appear in the form!
|
||||
// NOTE: Important, otherwise the compound value will be
|
||||
// set in the order the fields appear in the form!
|
||||
ksort($value);
|
||||
//if($name == 'CATEGORIES') {
|
||||
// $value = OC_Contacts_VCard::escapeDelimiters($value, ',');
|
||||
//} else {
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
// Check if we are a user
|
||||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
$bookid = $_POST['id'];
|
||||
OC_Contacts_App::getAddressbook($bookid); // is owner access check
|
||||
|
|
|
@ -24,7 +24,9 @@
|
|||
OCP\JSON::checkLoggedIn();
|
||||
OCP\JSON::checkAppEnabled('contacts');
|
||||
OCP\JSON::callCheck();
|
||||
require_once('loghandler.php');
|
||||
require_once 'loghandler.php';
|
||||
|
||||
$l10n = OC_Contacts_App::$l10n;
|
||||
|
||||
$view = OCP\Files::getStorage('contacts');
|
||||
if(!$view->file_exists('imports')) {
|
||||
|
@ -39,25 +41,29 @@ if($fn) {
|
|||
OCP\JSON::success(array('data' => array('file'=>$tmpfile, 'name'=>$fn)));
|
||||
exit();
|
||||
} else {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Error uploading contacts to storage.'));
|
||||
bailOut($l10n->t('Error uploading contacts to storage.'));
|
||||
}
|
||||
}
|
||||
|
||||
// File input transfers are handled here
|
||||
if (!isset($_FILES['importfile'])) {
|
||||
OCP\Util::writeLog('contacts','ajax/uploadphoto.php: No file was uploaded. Unknown error.', OCP\Util::DEBUG);
|
||||
OCP\JSON::error(array('data' => array( 'message' => 'No file was uploaded. Unknown error' )));
|
||||
OCP\Util::writeLog('contacts',
|
||||
'ajax/uploadphoto.php: No file was uploaded. Unknown error.',
|
||||
OCP\Util::DEBUG);
|
||||
OCP\JSON::error(array('
|
||||
data' => array(
|
||||
'message' => 'No file was uploaded. Unknown error' )));
|
||||
exit();
|
||||
}
|
||||
$error = $_FILES['importfile']['error'];
|
||||
if($error !== UPLOAD_ERR_OK) {
|
||||
$errors = array(
|
||||
0=>OC_Contacts_App::$l10n->t("There is no error, the file uploaded with success"),
|
||||
1=>OC_Contacts_App::$l10n->t("The uploaded file exceeds the upload_max_filesize directive in php.ini").ini_get('upload_max_filesize'),
|
||||
2=>OC_Contacts_App::$l10n->t("The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"),
|
||||
3=>OC_Contacts_App::$l10n->t("The uploaded file was only partially uploaded"),
|
||||
4=>OC_Contacts_App::$l10n->t("No file was uploaded"),
|
||||
6=>OC_Contacts_App::$l10n->t("Missing a temporary folder")
|
||||
0=>$l10n->t("There is no error, the file uploaded with success"),
|
||||
1=>$l10n->t("The uploaded file exceeds the upload_max_filesize directive in php.ini").ini_get('upload_max_filesize'),
|
||||
2=>$l10n->t("The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"),
|
||||
3=>$l10n->t("The uploaded file was only partially uploaded"),
|
||||
4=>$l10n->t("No file was uploaded"),
|
||||
6=>$l10n->t("Missing a temporary folder")
|
||||
);
|
||||
bailOut($errors[$error]);
|
||||
}
|
||||
|
@ -67,7 +73,7 @@ if(file_exists($file['tmp_name'])) {
|
|||
if($view->file_put_contents('/imports/'.$file['name'], file_get_contents($file['tmp_name']))) {
|
||||
OCP\JSON::success(array('data' => array('file'=>$file['name'], 'name'=>$file['name'])));
|
||||
} else {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Error uploading contacts to storage.'));
|
||||
bailOut($l10n->t('Error uploading contacts to storage.'));
|
||||
}
|
||||
} else {
|
||||
bailOut('Temporary file: \''.$file['tmp_name'].'\' has gone AWOL?');
|
||||
|
|
|
@ -27,13 +27,13 @@ OCP\JSON::callCheck();
|
|||
|
||||
// Firefox and Konqueror tries to download application/json for me. --Arthur
|
||||
OCP\JSON::setContentTypeHeader('text/plain');
|
||||
require_once('loghandler.php');
|
||||
|
||||
require_once 'loghandler.php';
|
||||
$l10n = OC_Contacts_App::$l10n;
|
||||
// If it is a Drag'n'Drop transfer it's handled here.
|
||||
$fn = (isset($_SERVER['HTTP_X_FILE_NAME']) ? $_SERVER['HTTP_X_FILE_NAME'] : false);
|
||||
if ($fn) {
|
||||
if (!isset($_GET['id'])) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('No contact ID was submitted.'));
|
||||
bailOut($l10n->t('No contact ID was submitted.'));
|
||||
}
|
||||
$id = $_GET['id'];
|
||||
$tmpkey = 'contact-photo-'.md5($fn);
|
||||
|
@ -48,33 +48,38 @@ if ($fn) {
|
|||
debug('Couldn\'t save correct image orientation: '.$tmpkey);
|
||||
}
|
||||
if(OC_Cache::set($tmpkey, $image->data(), 600)) {
|
||||
OCP\JSON::success(array('data' => array('mime'=>$_SERVER['CONTENT_TYPE'], 'name'=>$fn, 'id'=>$id, 'tmp'=>$tmpkey)));
|
||||
OCP\JSON::success(array(
|
||||
'data' => array(
|
||||
'mime'=>$_SERVER['CONTENT_TYPE'],
|
||||
'name'=>$fn,
|
||||
'id'=>$id,
|
||||
'tmp'=>$tmpkey)));
|
||||
exit();
|
||||
} else {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Couldn\'t save temporary image: ').$tmpkey);
|
||||
bailOut($l10n->t('Couldn\'t save temporary image: ').$tmpkey);
|
||||
}
|
||||
} else {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Couldn\'t load temporary image: ').$tmpkey);
|
||||
bailOut($l10n->t('Couldn\'t load temporary image: ').$tmpkey);
|
||||
}
|
||||
}
|
||||
|
||||
// Uploads from file dialog are handled here.
|
||||
if (!isset($_POST['id'])) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('No contact ID was submitted.'));
|
||||
bailOut($l10n->t('No contact ID was submitted.'));
|
||||
}
|
||||
if (!isset($_FILES['imagefile'])) {
|
||||
bailOut(OC_Contacts_App::$l10n->t('No file was uploaded. Unknown error'));
|
||||
bailOut($l10n->t('No file was uploaded. Unknown error'));
|
||||
}
|
||||
|
||||
$error = $_FILES['imagefile']['error'];
|
||||
if($error !== UPLOAD_ERR_OK) {
|
||||
$errors = array(
|
||||
0=>OC_Contacts_App::$l10n->t("There is no error, the file uploaded with success"),
|
||||
1=>OC_Contacts_App::$l10n->t("The uploaded file exceeds the upload_max_filesize directive in php.ini").ini_get('upload_max_filesize'),
|
||||
2=>OC_Contacts_App::$l10n->t("The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"),
|
||||
3=>OC_Contacts_App::$l10n->t("The uploaded file was only partially uploaded"),
|
||||
4=>OC_Contacts_App::$l10n->t("No file was uploaded"),
|
||||
6=>OC_Contacts_App::$l10n->t("Missing a temporary folder")
|
||||
0=>$l10n->t("There is no error, the file uploaded with success"),
|
||||
1=>$l10n->t("The uploaded file exceeds the upload_max_filesize directive in php.ini").ini_get('upload_max_filesize'),
|
||||
2=>$l10n->t("The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"),
|
||||
3=>$l10n->t("The uploaded file was only partially uploaded"),
|
||||
4=>$l10n->t("No file was uploaded"),
|
||||
6=>$l10n->t("Missing a temporary folder")
|
||||
);
|
||||
bailOut($errors[$error]);
|
||||
}
|
||||
|
@ -91,13 +96,20 @@ if(file_exists($file['tmp_name'])) {
|
|||
debug('Couldn\'t save correct image orientation: '.$tmpkey);
|
||||
}
|
||||
if(OC_Cache::set($tmpkey, $image->data(), 600)) {
|
||||
OCP\JSON::success(array('data' => array('mime'=>$file['type'],'size'=>$file['size'],'name'=>$file['name'], 'id'=>$_POST['id'], 'tmp'=>$tmpkey)));
|
||||
OCP\JSON::success(array(
|
||||
'data' => array(
|
||||
'mime'=>$file['type'],
|
||||
'size'=>$file['size'],
|
||||
'name'=>$file['name'],
|
||||
'id'=>$_POST['id'],
|
||||
'tmp'=>$tmpkey,
|
||||
)));
|
||||
exit();
|
||||
} else {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Couldn\'t save temporary image: ').$tmpkey);
|
||||
bailOut($l10n->t('Couldn\'t save temporary image: ').$tmpkey);
|
||||
}
|
||||
} else {
|
||||
bailOut(OC_Contacts_App::$l10n->t('Couldn\'t load temporary image: ').$file['tmp_name']);
|
||||
bailOut($l10n->t('Couldn\'t load temporary image: ').$file['tmp_name']);
|
||||
}
|
||||
} else {
|
||||
bailOut('Temporary file: \''.$file['tmp_name'].'\' has gone AWOL?');
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
<type>text</type>
|
||||
<default></default>
|
||||
<notnull>false</notnull>
|
||||
<length>100</length>
|
||||
<length>200</length>
|
||||
</field>
|
||||
|
||||
<field>
|
||||
|
@ -118,7 +118,7 @@
|
|||
<type>text</type>
|
||||
<default></default>
|
||||
<notnull>false</notnull>
|
||||
<length>100</length>
|
||||
<length>200</length>
|
||||
</field>
|
||||
|
||||
<field>
|
||||
|
|
|
@ -1 +1 @@
|
|||
0.2.3
|
||||
0.2.4
|
|
@ -9,14 +9,14 @@
|
|||
#contacts { position: fixed; background: #fff; max-width: 100%; width: 20em; left: 12.5em; top: 3.7em; bottom: 3em; overflow: auto; padding: 0; margin: 0; }
|
||||
.contacts a { height: 23px; display: block; left: 12.5em; margin: 0 0 0 0; padding: 0 0 0 25px; }
|
||||
.contacts li.ui-draggable { height: 23px; }
|
||||
.ui-draggable-dragging { width: 16em; }
|
||||
.ui-draggable-dragging { width: 17em; cursor: move; }
|
||||
.ui-state-hover { border: 1px solid dashed; }
|
||||
#bottomcontrols { padding: 0; bottom:0px; height:2.8em; width: 20em; margin:0; background:#eee; border-top:1px solid #ccc; position:fixed; -moz-box-shadow: 0 -3px 3px -3px #000; -webkit-box-shadow: 0 -3px 3px -3px #000; box-shadow: 0 -3px 3px -3px #000;}
|
||||
#bottomcontrols img { margin-top: 0.35em; }
|
||||
#uploadprogressbar { display: none; padding: 0; bottom: 3em; height:2em; width: 20em; margin:0; background:#eee; border:1px solid #ccc; position:fixed; }
|
||||
#contacts_newcontact, #contacts_import, #chooseaddressbook { float: left; margin: 0.2em 0 0 1em; border: 0 none; border-radius: 0; -moz-box-shadow: none; box-shadow: none; outline: 0 none; }
|
||||
#chooseaddressbook { float: right; margin: 0.2em 1em 0 0; }
|
||||
#actionbar { position: relative; clear: both; height: 30px;}
|
||||
#actionbar { clear: both; height: 30px;}
|
||||
#contacts_deletecard {position:relative; float:left; background:url('%webroot%/core/img/actions/delete.svg') no-repeat center; }
|
||||
#contacts_downloadcard {position:relative; float:left; background:url('%webroot%/core/img/actions/download.svg') no-repeat center; }
|
||||
#contacts_propertymenu { clear: left; float:left; max-width: 15em; margin: 2em; }
|
||||
|
@ -72,7 +72,7 @@ label:hover, dt:hover { color: #333; }
|
|||
#identityprops { /*position: absolute; top: 2.5em; left: 0px;*/ }
|
||||
/*#contact_photo { max-width: 250px; }*/
|
||||
#contact_identity { min-width: 30em; }
|
||||
.contactsection { position: relative; float: left; /*max-width: 40em;*/ padding: 0.5em; height: auto: border: thin solid lightgray;/* -webkit-border-radius: 0.5em; -moz-border-radius: 0.5em; border-radius: 0.5em; background-color: #f8f8f8;*/ }
|
||||
.contactsection { position: relative; float: left; padding: 0.5em; height: auto; }
|
||||
|
||||
#cropbox { margin: auto; }
|
||||
#contacts_details_photo_wrapper { width: 200px; }
|
||||
|
|
|
@ -1565,7 +1565,7 @@ Contacts={
|
|||
if(book.contacts[c].id == undefined) { continue; }
|
||||
if(!$('#contacts li[data-id="'+book.contacts[c]['id']+'"]').length) {
|
||||
var contact = Contacts.UI.Card.createEntry(book.contacts[c]);
|
||||
if(c == self.batchnum-5) {
|
||||
if(c == self.batchnum-10) {
|
||||
contact.bind('inview', function(event, isInView, visiblePartX, visiblePartY) {
|
||||
$(this).unbind(event);
|
||||
var bookid = $(this).data('bookid');
|
||||
|
@ -1592,9 +1592,10 @@ Contacts={
|
|||
});
|
||||
if($('#contacts h3').length > 1) {
|
||||
$('#contacts li,#contacts h3').draggable({
|
||||
distance: 10,
|
||||
revert: 'invalid',
|
||||
axis: 'y', containment: '#contacts',
|
||||
scroll: true, scrollSensitivity: 100,
|
||||
scroll: true, scrollSensitivity: 40,
|
||||
opacity: 0.7, helper: 'clone'
|
||||
});
|
||||
} else {
|
||||
|
|
|
@ -37,17 +37,17 @@
|
|||
/**
|
||||
* This class manages our addressbooks.
|
||||
*/
|
||||
class OC_Contacts_Addressbook{
|
||||
class OC_Contacts_Addressbook {
|
||||
/**
|
||||
* @brief Returns the list of addressbooks for a specific user.
|
||||
* @param string $uid
|
||||
* @param boolean $active Only return addressbooks with this $active state, default(=false) is don't care
|
||||
* @return array or false.
|
||||
*/
|
||||
public static function all($uid, $active=false){
|
||||
public static function all($uid, $active=false) {
|
||||
$values = array($uid);
|
||||
$active_where = '';
|
||||
if ($active){
|
||||
if ($active) {
|
||||
$active_where = ' AND active = ?';
|
||||
$values[] = 1;
|
||||
}
|
||||
|
@ -55,13 +55,13 @@ class OC_Contacts_Addressbook{
|
|||
$stmt = OCP\DB::prepare( 'SELECT * FROM *PREFIX*contacts_addressbooks WHERE userid = ? ' . $active_where . ' ORDER BY displayname' );
|
||||
$result = $stmt->execute($values);
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.' exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.' uid: '.$uid,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.' exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.' uid: '.$uid, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
$addressbooks = array();
|
||||
while( $row = $result->fetchRow()){
|
||||
while( $row = $result->fetchRow()) {
|
||||
$addressbooks[] = $row;
|
||||
}
|
||||
if(!$active && !count($addressbooks)) {
|
||||
|
@ -76,8 +76,8 @@ class OC_Contacts_Addressbook{
|
|||
* @param integer $uid User id. If null current user will be used.
|
||||
* @return array
|
||||
*/
|
||||
public static function activeIds($uid = null){
|
||||
if(is_null($uid)){
|
||||
public static function activeIds($uid = null) {
|
||||
if(is_null($uid)) {
|
||||
$uid = OCP\USER::getUser();
|
||||
}
|
||||
$activeaddressbooks = self::all($uid, true);
|
||||
|
@ -93,7 +93,7 @@ class OC_Contacts_Addressbook{
|
|||
* @param string $uid
|
||||
* @return array
|
||||
*/
|
||||
public static function active($uid){
|
||||
public static function active($uid) {
|
||||
return self::all($uid, true);
|
||||
}
|
||||
|
||||
|
@ -112,13 +112,13 @@ class OC_Contacts_Addressbook{
|
|||
* @param integer $id
|
||||
* @return associative array or false.
|
||||
*/
|
||||
public static function find($id){
|
||||
public static function find($id) {
|
||||
try {
|
||||
$stmt = OCP\DB::prepare( 'SELECT * FROM *PREFIX*contacts_addressbooks WHERE id = ?' );
|
||||
$result = $stmt->execute(array($id));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', id: '.$id,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', id: '.$id, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -129,11 +129,11 @@ class OC_Contacts_Addressbook{
|
|||
* @brief Adds default address book
|
||||
* @return $id ID of the newly created addressbook or false on error.
|
||||
*/
|
||||
public static function addDefault($uid = null){
|
||||
public static function addDefault($uid = null) {
|
||||
if(is_null($uid)) {
|
||||
$uid = OCP\USER::getUser();
|
||||
}
|
||||
$id = self::add($uid,'Contacts','Default Address Book');
|
||||
$id = self::add($uid,'Contacts', 'Default Address Book');
|
||||
if($id !== false) {
|
||||
self::setActive($id, true);
|
||||
}
|
||||
|
@ -147,13 +147,13 @@ class OC_Contacts_Addressbook{
|
|||
* @param string $description
|
||||
* @return insertid
|
||||
*/
|
||||
public static function add($uid,$name,$description=''){
|
||||
public static function add($uid,$name,$description='') {
|
||||
try {
|
||||
$stmt = OCP\DB::prepare( 'SELECT uri FROM *PREFIX*contacts_addressbooks WHERE userid = ? ' );
|
||||
$result = $stmt->execute(array($uid));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.' exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.' uid: '.$uid,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.' exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.' uid: '.$uid, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
$uris = array();
|
||||
|
@ -166,8 +166,8 @@ class OC_Contacts_Addressbook{
|
|||
$stmt = OCP\DB::prepare( 'INSERT INTO *PREFIX*contacts_addressbooks (userid,displayname,uri,description,ctag) VALUES(?,?,?,?,?)' );
|
||||
$result = $stmt->execute(array($uid,$name,$uri,$description,1));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', uid: '.$uid,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', uid: '.$uid, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -182,16 +182,16 @@ class OC_Contacts_Addressbook{
|
|||
* @param string $description
|
||||
* @return insertid or false
|
||||
*/
|
||||
public static function addFromDAVData($principaluri,$uri,$name,$description){
|
||||
public static function addFromDAVData($principaluri,$uri,$name,$description) {
|
||||
$uid = self::extractUserID($principaluri);
|
||||
|
||||
try {
|
||||
$stmt = OCP\DB::prepare('INSERT INTO *PREFIX*contacts_addressbooks (userid,displayname,uri,description,ctag) VALUES(?,?,?,?,?)');
|
||||
$result = $stmt->execute(array($uid,$name,$uri,$description,1));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', uid: '.$uid,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', uri: '.$uri,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', uid: '.$uid, OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', uri: '.$uri, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -205,14 +205,14 @@ class OC_Contacts_Addressbook{
|
|||
* @param string $description
|
||||
* @return boolean
|
||||
*/
|
||||
public static function edit($id,$name,$description){
|
||||
public static function edit($id,$name,$description) {
|
||||
// Need these ones for checking uri
|
||||
$addressbook = self::find($id);
|
||||
|
||||
if(is_null($name)){
|
||||
if(is_null($name)) {
|
||||
$name = $addressbook['name'];
|
||||
}
|
||||
if(is_null($description)){
|
||||
if(is_null($description)) {
|
||||
$description = $addressbook['description'];
|
||||
}
|
||||
|
||||
|
@ -220,8 +220,8 @@ class OC_Contacts_Addressbook{
|
|||
$stmt = OCP\DB::prepare('UPDATE *PREFIX*contacts_addressbooks SET displayname=?,description=?, ctag=ctag+1 WHERE id=?');
|
||||
$result = $stmt->execute(array($name,$description,$id));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', id: '.$id,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', id: '.$id, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -234,15 +234,15 @@ class OC_Contacts_Addressbook{
|
|||
* @param boolean $active
|
||||
* @return boolean
|
||||
*/
|
||||
public static function setActive($id,$active){
|
||||
public static function setActive($id,$active) {
|
||||
$sql = 'UPDATE *PREFIX*contacts_addressbooks SET active = ? WHERE id = ?';
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', id: '.$id.', active: '.intval($active),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', id: '.$id.', active: '.intval($active), OCP\Util::ERROR);
|
||||
try {
|
||||
$stmt = OCP\DB::prepare($sql);
|
||||
$stmt->execute(array(intval($active), $id));
|
||||
return true;
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception for '.$id.': '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception for '.$id.': '.$e->getMessage(), OCP\Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -252,7 +252,7 @@ class OC_Contacts_Addressbook{
|
|||
* @param integer $id ID of the address book.
|
||||
* @return boolean
|
||||
*/
|
||||
public static function isActive($id){
|
||||
public static function isActive($id) {
|
||||
$sql = 'SELECT active FROM *PREFIX*contacts_addressbooks WHERE id = ?';
|
||||
try {
|
||||
$stmt = OCP\DB::prepare( $sql );
|
||||
|
@ -260,7 +260,7 @@ class OC_Contacts_Addressbook{
|
|||
$row = $result->fetchRow();
|
||||
return (bool)$row['active'];
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -269,13 +269,13 @@ class OC_Contacts_Addressbook{
|
|||
* @param integer $id
|
||||
* @return boolean
|
||||
*/
|
||||
public static function delete($id){
|
||||
public static function delete($id) {
|
||||
self::setActive($id, false);
|
||||
try {
|
||||
$stmt = OCP\DB::prepare( 'DELETE FROM *PREFIX*contacts_addressbooks WHERE id = ?' );
|
||||
$stmt->execute(array($id));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception for '.$id.': '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception for '.$id.': '.$e->getMessage(), OCP\Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -292,7 +292,7 @@ class OC_Contacts_Addressbook{
|
|||
* @param integer $id
|
||||
* @return boolean
|
||||
*/
|
||||
public static function touch($id){
|
||||
public static function touch($id) {
|
||||
$stmt = OCP\DB::prepare( 'UPDATE *PREFIX*contacts_addressbooks SET ctag = ctag + 1 WHERE id = ?' );
|
||||
$stmt->execute(array($id));
|
||||
|
||||
|
@ -305,11 +305,11 @@ class OC_Contacts_Addressbook{
|
|||
* @param array $existing existing addressbook URIs
|
||||
* @return string new name
|
||||
*/
|
||||
public static function createURI($name,$existing){
|
||||
public static function createURI($name,$existing) {
|
||||
$name = str_replace(' ', '_', strtolower($name));
|
||||
$newname = $name;
|
||||
$i = 1;
|
||||
while(in_array($newname,$existing)){
|
||||
while(in_array($newname, $existing)) {
|
||||
$newname = $name.$i;
|
||||
$i = $i + 1;
|
||||
}
|
||||
|
@ -320,8 +320,8 @@ class OC_Contacts_Addressbook{
|
|||
* @brief gets the userid from a principal path
|
||||
* @return string
|
||||
*/
|
||||
public static function extractUserID($principaluri){
|
||||
list($prefix,$userid) = Sabre_DAV_URLUtil::splitPath($principaluri);
|
||||
public static function extractUserID($principaluri) {
|
||||
list($prefix, $userid) = Sabre_DAV_URLUtil::splitPath($principaluri);
|
||||
return $userid;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,11 +61,11 @@ class OC_Contacts_App {
|
|||
if(!is_null($vcard) && !$vcard->__isset('N')) {
|
||||
$version = OCP\App::getAppVersion('contacts');
|
||||
if($version >= 5) {
|
||||
OCP\Util::writeLog('contacts','OC_Contacts_App::getContactVCard. Deprecated check for missing N field', OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', 'OC_Contacts_App::getContactVCard. Deprecated check for missing N field', OCP\Util::DEBUG);
|
||||
}
|
||||
OCP\Util::writeLog('contacts','getContactVCard, Missing N field', OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', 'getContactVCard, Missing N field', OCP\Util::DEBUG);
|
||||
if($vcard->__isset('FN')) {
|
||||
OCP\Util::writeLog('contacts','getContactVCard, found FN field: '.$vcard->__get('FN'), OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', 'getContactVCard, found FN field: '.$vcard->__get('FN'), OCP\Util::DEBUG);
|
||||
$n = implode(';', array_reverse(array_slice(explode(' ', $vcard->__get('FN')), 0, 2))).';;;';
|
||||
$vcard->setString('N', $n);
|
||||
OC_Contacts_VCard::edit( $id, $vcard);
|
||||
|
@ -203,9 +203,9 @@ class OC_Contacts_App {
|
|||
foreach($vccontacts as $vccontact) {
|
||||
$cards[] = $vccontact['carddata'];
|
||||
}
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', scanning: '.$batchsize.' starting from '.$start,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', scanning: '.$batchsize.' starting from '.$start, OCP\Util::DEBUG);
|
||||
// only reset on first batch.
|
||||
self::getVCategories()->rescan($cards, true, ($start==0?true:false));
|
||||
self::getVCategories()->rescan($cards, true, ($start == 0 ? true : false));
|
||||
$start += $batchsize;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
class OC_Search_Provider_Contacts extends OC_Search_Provider{
|
||||
function search($query){
|
||||
$addressbooks = OC_Contacts_Addressbook::all(OCP\USER::getUser(), 1);
|
||||
if(count($addressbooks)==0 || !OCP\App::isEnabled('contacts')){
|
||||
if(count($addressbooks)==0 || !OCP\App::isEnabled('contacts')) {
|
||||
return array();
|
||||
}
|
||||
$results=array();
|
||||
|
@ -10,9 +10,9 @@ class OC_Search_Provider_Contacts extends OC_Search_Provider{
|
|||
foreach($addressbooks as $addressbook){
|
||||
$vcards = OC_Contacts_VCard::all($addressbook['id']);
|
||||
foreach($vcards as $vcard){
|
||||
if(substr_count(strtolower($vcard['fullname']), strtolower($query)) > 0){
|
||||
if(substr_count(strtolower($vcard['fullname']), strtolower($query)) > 0) {
|
||||
$link = OCP\Util::linkTo('contacts', 'index.php').'&id='.urlencode($vcard['id']);
|
||||
$results[]=new OC_Search_Result($vcard['fullname'],'', $link,(string)$l->t('Contact'));//$name,$text,$link,$type
|
||||
$results[]=new OC_Search_Result($vcard['fullname'], '', $link, (string)$l->t('Contact'));//$name,$text,$link,$type
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,9 +63,9 @@ class OC_Contacts_VCard{
|
|||
$stmt = OCP\DB::prepare( $prep );
|
||||
$result = $stmt->execute($id);
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', ids: '.join(',', $id),OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.'SQL:'.$prep,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', ids: '.join(',', $id), OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.'SQL:'.$prep, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
} elseif(is_int($id) || is_string($id)) {
|
||||
|
@ -74,12 +74,12 @@ class OC_Contacts_VCard{
|
|||
$stmt = OCP\DB::prepare( $sql );
|
||||
$result = $stmt->execute(array($id));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', ids: '. $id,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', ids: '. $id, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.'. Addressbook id(s) argument is empty: '. $id,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.'. Addressbook id(s) argument is empty: '. $id, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
$cards = array();
|
||||
|
@ -102,8 +102,8 @@ class OC_Contacts_VCard{
|
|||
$stmt = OCP\DB::prepare( 'SELECT * FROM *PREFIX*contacts_cards WHERE id = ?' );
|
||||
$result = $stmt->execute(array($id));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', id: '. $id,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', id: '. $id, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -121,8 +121,8 @@ class OC_Contacts_VCard{
|
|||
$stmt = OCP\DB::prepare( 'SELECT * FROM *PREFIX*contacts_cards WHERE addressbookid = ? AND uri = ?' );
|
||||
$result = $stmt->execute(array($aid,$uri));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', aid: '.$aid.' uri'.$uri, OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', aid: '.$aid.' uri'.$uri, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -177,16 +177,16 @@ class OC_Contacts_VCard{
|
|||
try {
|
||||
$result = $stmt->execute(array($aid,$uri));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', aid: '.$aid.' uid'.$uid, OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', aid: '.$aid.' uid'.$uid, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
if($result->numRows() > 0){
|
||||
if($result->numRows() > 0) {
|
||||
while(true) {
|
||||
$tmpuid = substr(md5(rand().time()),0,10);
|
||||
$tmpuid = substr(md5(rand().time()), 0, 10);
|
||||
$uri = $tmpuid.'.vcf';
|
||||
$result = $stmt->execute(array($aid,$uri));
|
||||
if($result->numRows() > 0){
|
||||
$result = $stmt->execute(array($aid, $uri));
|
||||
if($result->numRows() > 0) {
|
||||
continue;
|
||||
} else {
|
||||
$uid = $tmpuid;
|
||||
|
@ -225,29 +225,29 @@ class OC_Contacts_VCard{
|
|||
}
|
||||
// Fix format of type parameters.
|
||||
if($upgrade && in_array($property->name, $typeprops)) {
|
||||
OCP\Util::writeLog('contacts','OC_Contacts_VCard::updateValuesFromAdd. before: '.$property->serialize(),OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', 'OC_Contacts_VCard::updateValuesFromAdd. before: '.$property->serialize(), OCP\Util::DEBUG);
|
||||
self::formatPropertyTypes($property);
|
||||
OCP\Util::writeLog('contacts','OC_Contacts_VCard::updateValuesFromAdd. after: '.$property->serialize(),OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', 'OC_Contacts_VCard::updateValuesFromAdd. after: '.$property->serialize(), OCP\Util::DEBUG);
|
||||
}
|
||||
if($property->name == 'FN'){
|
||||
if($property->name == 'FN') {
|
||||
$fn = $property->value;
|
||||
}
|
||||
if($property->name == 'N'){
|
||||
if($property->name == 'N') {
|
||||
$n = $property->value;
|
||||
}
|
||||
if($property->name == 'UID'){
|
||||
if($property->name == 'UID') {
|
||||
$uid = $property->value;
|
||||
}
|
||||
if($property->name == 'ORG'){
|
||||
if($property->name == 'ORG') {
|
||||
$org = $property->value;
|
||||
}
|
||||
if($property->name == 'EMAIL' && is_null($email)){ // only use the first email as substitute for missing N or FN.
|
||||
if($property->name == 'EMAIL' && is_null($email)) { // only use the first email as substitute for missing N or FN.
|
||||
$email = $property->value;
|
||||
}
|
||||
}
|
||||
// Check for missing 'N', 'FN' and 'UID' properties
|
||||
if(!$fn) {
|
||||
if($n && $n != ';;;;'){
|
||||
if($n && $n != ';;;;') {
|
||||
$fn = join(' ', array_reverse(array_slice(explode(';', $n), 0, 2)));
|
||||
} elseif($email) {
|
||||
$fn = $email;
|
||||
|
@ -257,21 +257,21 @@ class OC_Contacts_VCard{
|
|||
$fn = 'Unknown Name';
|
||||
}
|
||||
$vcard->setString('FN', $fn);
|
||||
OCP\Util::writeLog('contacts','OC_Contacts_VCard::updateValuesFromAdd. Added missing \'FN\' field: '.$fn,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', 'OC_Contacts_VCard::updateValuesFromAdd. Added missing \'FN\' field: '.$fn, OCP\Util::DEBUG);
|
||||
}
|
||||
if(!$n || $n == ';;;;'){ // Fix missing 'N' field. Ugly hack ahead ;-)
|
||||
if(!$n || $n == ';;;;') { // Fix missing 'N' field. Ugly hack ahead ;-)
|
||||
$slice = array_reverse(array_slice(explode(' ', $fn), 0, 2)); // Take 2 first name parts of 'FN' and reverse.
|
||||
if(count($slice) < 2) { // If not enought, add one more...
|
||||
$slice[] = "";
|
||||
}
|
||||
$n = implode(';', $slice).';;;';
|
||||
$vcard->setString('N', $n);
|
||||
OCP\Util::writeLog('contacts','OC_Contacts_VCard::updateValuesFromAdd. Added missing \'N\' field: '.$n,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', 'OC_Contacts_VCard::updateValuesFromAdd. Added missing \'N\' field: '.$n, OCP\Util::DEBUG);
|
||||
}
|
||||
if(!$uid) {
|
||||
$vcard->setUID();
|
||||
$uid = $vcard->getAsString('UID');
|
||||
OCP\Util::writeLog('contacts','OC_Contacts_VCard::updateValuesFromAdd. Added missing \'UID\' field: '.$uid,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', 'OC_Contacts_VCard::updateValuesFromAdd. Added missing \'UID\' field: '.$uid, OCP\Util::DEBUG);
|
||||
}
|
||||
if(self::trueUID($aid, $uid)) {
|
||||
$vcard->setString('UID', $uid);
|
||||
|
@ -288,8 +288,8 @@ class OC_Contacts_VCard{
|
|||
* @return insertid on success or false.
|
||||
*/
|
||||
public static function add($aid, OC_VObject $card, $uri=null, $isnew=false){
|
||||
if(is_null($card)){
|
||||
OCP\Util::writeLog('contacts','OC_Contacts_VCard::add. No vCard supplied', OCP\Util::ERROR);
|
||||
if(is_null($card)) {
|
||||
OCP\Util::writeLog('contacts', 'OC_Contacts_VCard::add. No vCard supplied', OCP\Util::ERROR);
|
||||
return null;
|
||||
};
|
||||
|
||||
|
@ -298,7 +298,7 @@ class OC_Contacts_VCard{
|
|||
self::updateValuesFromAdd($aid, $card);
|
||||
}
|
||||
|
||||
$card->setString('VERSION','3.0');
|
||||
$card->setString('VERSION', '3.0');
|
||||
// Add product ID is missing.
|
||||
$prodid = trim($card->getAsString('PRODID'));
|
||||
if(!$prodid) {
|
||||
|
@ -323,8 +323,8 @@ class OC_Contacts_VCard{
|
|||
try {
|
||||
$result = $stmt->execute(array($aid,$fn,$data,$uri,time()));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', aid: '.$aid.' uri'.$uri, OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', aid: '.$aid.' uri'.$uri, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
$newid = OCP\DB::insertid('*PREFIX*contacts_cards');
|
||||
|
@ -355,15 +355,15 @@ class OC_Contacts_VCard{
|
|||
$now = new DateTime;
|
||||
foreach($objects as $object) {
|
||||
$vcard = OC_VObject::parse($object[1]);
|
||||
if(!is_null($vcard)){
|
||||
if(!is_null($vcard)) {
|
||||
$vcard->setString('REV', $now->format(DateTime::W3C));
|
||||
$data = $vcard->serialize();
|
||||
try {
|
||||
$result = $stmt->execute(array($data,time(),$object[0]));
|
||||
//OCP\Util::writeLog('contacts','OC_Contacts_VCard::updateDataByID, id: '.$object[0].': '.$object[1],OCP\Util::DEBUG);
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', id: '.$object[0],OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', id: '.$object[0], OCP\Util::DEBUG);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -397,8 +397,8 @@ class OC_Contacts_VCard{
|
|||
try {
|
||||
$result = $stmt->execute(array($fn,$data,time(),$id));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', id'.$id, OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', id'.$id, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -414,11 +414,11 @@ class OC_Contacts_VCard{
|
|||
* @param string $data vCard file
|
||||
* @return boolean
|
||||
*/
|
||||
public static function editFromDAVData($aid,$uri,$data){
|
||||
$oldcard = self::findWhereDAVDataIs($aid,$uri);
|
||||
public static function editFromDAVData($aid, $uri, $data){
|
||||
$oldcard = self::findWhereDAVDataIs($aid, $uri);
|
||||
$card = OC_VObject::parse($data);
|
||||
if(!$card) {
|
||||
OCP\Util::writeLog('contacts','OC_Contacts_VCard::editFromDAVData. Unable to parse VCARD, uri: '.$uri,OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', Unable to parse VCARD, uri: '.$uri, OCP\Util::ERROR);
|
||||
return false;
|
||||
}
|
||||
return self::edit($oldcard['id'], $card);
|
||||
|
@ -435,8 +435,8 @@ class OC_Contacts_VCard{
|
|||
try {
|
||||
$stmt->execute(array($id));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', id: '.$id, OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', id: '.$id, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -455,8 +455,8 @@ class OC_Contacts_VCard{
|
|||
try {
|
||||
$stmt->execute(array($aid,$uri));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', aid: '.$aid.' uri: '.$uri, OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', aid: '.$aid.' uri: '.$uri, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
OC_Contacts_Addressbook::touch($aid);
|
||||
|
@ -485,14 +485,14 @@ class OC_Contacts_VCard{
|
|||
* @return array
|
||||
*/
|
||||
public static function unescapeDelimiters($value, $delimiter=';') {
|
||||
$array = explode($delimiter,$value);
|
||||
$array = explode($delimiter, $value);
|
||||
for($i=0;$i<count($array);$i++) {
|
||||
if(substr($array[$i],-1,1)=="\\") {
|
||||
if(substr($array[$i],-1, 1)=="\\") {
|
||||
if(isset($array[$i+1])) {
|
||||
$array[$i] = substr($array[$i],0,count($array[$i])-2).$delimiter.$array[$i+1];
|
||||
$array[$i] = substr($array[$i], 0, count($array[$i])-2).$delimiter.$array[$i+1];
|
||||
unset($array[$i+1]);
|
||||
} else {
|
||||
$array[$i] = substr($array[$i],0,count($array[$i])-2).$delimiter;
|
||||
$array[$i] = substr($array[$i], 0, count($array[$i])-2).$delimiter;
|
||||
}
|
||||
$i = $i - 1;
|
||||
}
|
||||
|
@ -508,12 +508,12 @@ class OC_Contacts_VCard{
|
|||
*
|
||||
* look at code ...
|
||||
*/
|
||||
public static function structureContact($object){
|
||||
public static function structureContact($object) {
|
||||
$details = array();
|
||||
foreach($object->children as $property){
|
||||
$temp = self::structureProperty($property);
|
||||
if(!is_null($temp)) {
|
||||
if(array_key_exists($property->name,$details)){
|
||||
if(array_key_exists($property->name, $details)) {
|
||||
$details[$property->name][] = $temp;
|
||||
}
|
||||
else{
|
||||
|
@ -537,10 +537,10 @@ class OC_Contacts_VCard{
|
|||
* NOTE: $value is not escaped anymore. It shouldn't make any difference
|
||||
* but we should look out for any problems.
|
||||
*/
|
||||
public static function structureProperty($property){
|
||||
public static function structureProperty($property) {
|
||||
$value = $property->value;
|
||||
//$value = htmlspecialchars($value);
|
||||
if($property->name == 'ADR' || $property->name == 'N'){
|
||||
if($property->name == 'ADR' || $property->name == 'N') {
|
||||
$value = self::unescapeDelimiters($value);
|
||||
} elseif($property->name == 'BDAY') {
|
||||
if(strpos($value, '-') === false) {
|
||||
|
@ -560,17 +560,17 @@ class OC_Contacts_VCard{
|
|||
// Faulty entries by kaddressbook
|
||||
// Actually TYPE=PREF is correct according to RFC 2426
|
||||
// but this way is more handy in the UI. Tanghus.
|
||||
if($parameter->name == 'TYPE' && $parameter->value == 'PREF'){
|
||||
if($parameter->name == 'TYPE' && $parameter->value == 'PREF') {
|
||||
$parameter->name = 'PREF';
|
||||
$parameter->value = '1';
|
||||
}
|
||||
// NOTE: Apparently Sabre_VObject_Reader can't always deal with value list parameters
|
||||
// like TYPE=HOME,CELL,VOICE. Tanghus.
|
||||
if (in_array($property->name, array('TEL', 'EMAIL')) && $parameter->name == 'TYPE'){
|
||||
if (isset($temp['parameters'][$parameter->name])){
|
||||
if (in_array($property->name, array('TEL', 'EMAIL')) && $parameter->name == 'TYPE') {
|
||||
if (isset($temp['parameters'][$parameter->name])) {
|
||||
$temp['parameters'][$parameter->name][] = $parameter->value;
|
||||
}
|
||||
else{
|
||||
else {
|
||||
$temp['parameters'][$parameter->name] = array($parameter->value);
|
||||
}
|
||||
}
|
||||
|
@ -588,7 +588,7 @@ class OC_Contacts_VCard{
|
|||
* @return boolean
|
||||
*
|
||||
*/
|
||||
public static function moveToAddressBook($aid, $id){
|
||||
public static function moveToAddressBook($aid, $id) {
|
||||
OC_Contacts_App::getAddressbook($aid); // check for user ownership.
|
||||
if(is_array($id)) {
|
||||
$id_sql = join(',', array_fill(0, count($id), '?'));
|
||||
|
@ -599,9 +599,9 @@ class OC_Contacts_VCard{
|
|||
$vals = array_merge((array)$aid, $id);
|
||||
$result = $stmt->execute($vals);
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(),OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', ids: '.join(',', $vals),OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', SQL:'.$prep,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::ERROR);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', ids: '.join(',', $vals), OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', SQL:'.$prep, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
|
@ -609,8 +609,8 @@ class OC_Contacts_VCard{
|
|||
$stmt = OCP\DB::prepare( 'UPDATE *PREFIX*contacts_cards SET addressbookid = ? WHERE id = ?' );
|
||||
$result = $stmt->execute(array($aid, $id));
|
||||
} catch(Exception $e) {
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(),OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts',__CLASS__.'::'.__METHOD__.' id: '.$id,OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.', exception: '.$e->getMessage(), OCP\Util::DEBUG);
|
||||
OCP\Util::writeLog('contacts', __CLASS__.'::'.__METHOD__.' id: '.$id, OCP\Util::DEBUG);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
OC::$CLASSPATH['OC_User_IMAP']='apps/user_external/lib/imap.php';
|
||||
OC::$CLASSPATH['OC_User_SMB']='apps/user_external/lib/smb.php';
|
||||
OC::$CLASSPATH['OC_User_FTP']='apps/user_external/lib/ftp.php';
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0"?>
|
||||
<info>
|
||||
<id>user_external</id>
|
||||
<name>External user support</name>
|
||||
<description>Use external user authentication methods</description>
|
||||
<licence>AGPL</licence>
|
||||
<author>Robin Appelman</author>
|
||||
<require>4</require>
|
||||
<shipped>true</shipped>
|
||||
<types>
|
||||
<authentication/>
|
||||
</types>
|
||||
</info>
|
|
@ -0,0 +1 @@
|
|||
0.1
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
class OC_User_FTP extends OC_User_Backend{
|
||||
private $host;
|
||||
private $secure;
|
||||
private $protocol;
|
||||
|
||||
public function __construct($host,$secure=false){
|
||||
$this->host=$host;
|
||||
$this->secure=$secure;
|
||||
$this->protocol='ftp';
|
||||
if($this->secure){
|
||||
$this->protocol.='s';
|
||||
}
|
||||
$this->protocol.='://';
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Check if the password is correct
|
||||
* @param $uid The username
|
||||
* @param $password The password
|
||||
* @returns true/false
|
||||
*
|
||||
* Check if the password is correct without logging in the user
|
||||
*/
|
||||
public function checkPassword($uid, $password){
|
||||
$url=$this->protocol.$uid.':'.$password.'@'.$this->host.'/';
|
||||
$result=@opendir($url);
|
||||
if(is_resource($result)){
|
||||
return $uid;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function userExists($uid){
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
class OC_User_IMAP extends OC_User_Backend{
|
||||
private $mailbox;
|
||||
|
||||
public function __construct($mailbox){
|
||||
$this->mailbox=$mailbox;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Check if the password is correct
|
||||
* @param $uid The username
|
||||
* @param $password The password
|
||||
* @returns true/false
|
||||
*
|
||||
* Check if the password is correct without logging in the user
|
||||
*/
|
||||
public function checkPassword($uid, $password){
|
||||
$mbox = @imap_open($this->mailbox, $uid, $password);
|
||||
imap_errors();
|
||||
imap_alerts();
|
||||
if($mbox){
|
||||
imap_close($mbox);
|
||||
return $uid;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function userExists($uid){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
class OC_User_SMB extends OC_User_Backend{
|
||||
private $host;
|
||||
|
||||
const smbclient='smbclient';
|
||||
const loginError='NT_STATUS_LOGON_FAILURE';
|
||||
|
||||
public function __construct($host){
|
||||
$this->host=$host;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Check if the password is correct
|
||||
* @param $uid The username
|
||||
* @param $password The password
|
||||
* @returns true/false
|
||||
*
|
||||
* Check if the password is correct without logging in the user
|
||||
*/
|
||||
public function checkPassword($uid, $password){
|
||||
$uidEscaped=escapeshellarg($uid);
|
||||
$password=escapeshellarg($password);
|
||||
$result=array();
|
||||
$command=self::smbclient.' //'.$this->host.'/dummy -U'.$uidEscaped.'%'.$password;
|
||||
$result=exec($command,$result);
|
||||
if(substr($result,-strlen(self::loginError))==self::loginError){
|
||||
return false;
|
||||
}else{
|
||||
return $uid;
|
||||
}
|
||||
}
|
||||
|
||||
public function userExists($uid){
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
return array(
|
||||
'imap'=>array(
|
||||
'run'=>false,
|
||||
'mailbox'=>'{imap.gmail.com:993/imap/ssl}INBOX', //see http://php.net/manual/en/function.imap-open.php
|
||||
'user'=>'foo',//valid username/password combination
|
||||
'password'=>'bar',
|
||||
),
|
||||
'smb'=>array(
|
||||
'run'=>false,
|
||||
'host'=>'localhost',
|
||||
'user'=>'test',//valid username/password combination
|
||||
'password'=>'test',
|
||||
),
|
||||
'ftp'=>array(
|
||||
'run'=>false,
|
||||
'host'=>'localhost',
|
||||
'user'=>'test',//valid username/password combination
|
||||
'password'=>'test',
|
||||
),
|
||||
);
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
class Test_User_FTP extends UnitTestCase{
|
||||
/**
|
||||
* @var OC_User_IMAP $instance
|
||||
*/
|
||||
private $instance;
|
||||
|
||||
private function getConfig(){
|
||||
return include(__DIR__.'/config.php');
|
||||
}
|
||||
|
||||
function skip(){
|
||||
$config=$this->getConfig();
|
||||
$this->skipUnless($config['ftp']['run']);
|
||||
}
|
||||
|
||||
function setUp(){
|
||||
$config=$this->getConfig();
|
||||
$this->instance=new OC_User_FTP($config['ftp']['host']);
|
||||
}
|
||||
|
||||
function testLogin(){
|
||||
$config=$this->getConfig();
|
||||
$this->assertEqual($config['ftp']['user'],$this->instance->checkPassword($config['ftp']['user'],$config['ftp']['password']));
|
||||
$this->assertFalse($this->instance->checkPassword($config['ftp']['user'],$config['ftp']['password'].'foo'));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
class Test_User_Imap extends UnitTestCase{
|
||||
/**
|
||||
* @var OC_User_IMAP $instance
|
||||
*/
|
||||
private $instance;
|
||||
|
||||
private function getConfig(){
|
||||
return include(__DIR__.'/config.php');
|
||||
}
|
||||
|
||||
function skip(){
|
||||
$config=$this->getConfig();
|
||||
$this->skipUnless($config['imap']['run']);
|
||||
}
|
||||
|
||||
function setUp(){
|
||||
$config=$this->getConfig();
|
||||
$this->instance=new OC_User_IMAP($config['imap']['mailbox']);
|
||||
}
|
||||
|
||||
function testLogin(){
|
||||
$config=$this->getConfig();
|
||||
$this->assertEqual($config['imap']['user'],$this->instance->checkPassword($config['imap']['user'],$config['imap']['password']));
|
||||
$this->assertFalse($this->instance->checkPassword($config['imap']['user'],$config['imap']['password'].'foo'));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
/**
|
||||
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
class Test_User_SMB extends UnitTestCase{
|
||||
/**
|
||||
* @var OC_User_IMAP $instance
|
||||
*/
|
||||
private $instance;
|
||||
|
||||
private function getConfig(){
|
||||
return include(__DIR__.'/config.php');
|
||||
}
|
||||
|
||||
function skip(){
|
||||
$config=$this->getConfig();
|
||||
$this->skipUnless($config['smb']['run']);
|
||||
}
|
||||
|
||||
function setUp(){
|
||||
$config=$this->getConfig();
|
||||
$this->instance=new OC_User_SMB($config['smb']['host']);
|
||||
}
|
||||
|
||||
function testLogin(){
|
||||
$config=$this->getConfig();
|
||||
$this->assertEqual($config['smb']['user'],$this->instance->checkPassword($config['smb']['user'],$config['smb']['password']));
|
||||
$this->assertFalse($this->instance->checkPassword($config['smb']['user'],$config['smb']['password'].'foo'));
|
||||
}
|
||||
}
|
31
autotest.sh
31
autotest.sh
|
@ -38,12 +38,26 @@ cat > ./tests/autoconfig-mysql.php <<DELIM
|
|||
);
|
||||
DELIM
|
||||
|
||||
cat > ./tests/autoconfig-pgsql.php <<DELIM
|
||||
<?php
|
||||
\$AUTOCONFIG = array (
|
||||
'installed' => false,
|
||||
'dbtype' => 'pgsql',
|
||||
'dbtableprefix' => 'oc_',
|
||||
'adminlogin' => 'admin',
|
||||
'adminpass' => 'admin',
|
||||
'directory' => '$BASEDIR/$DATADIR',
|
||||
'dbuser' => 'oc_autotest',
|
||||
'dbname' => 'oc_autotest',
|
||||
'dbhost' => 'localhost',
|
||||
'dbpass' => 'owncloud',
|
||||
);
|
||||
DELIM
|
||||
|
||||
function execute_tests {
|
||||
echo "Setup environment for $1 testing ..."
|
||||
# back to root folder
|
||||
cd $BASEDIR
|
||||
echo $BASEDIR
|
||||
|
||||
# revert changes to tests/data
|
||||
git checkout tests/data/*
|
||||
|
@ -59,6 +73,9 @@ function execute_tests {
|
|||
if [ "$1" == "mysql" ] ; then
|
||||
mysql -u oc_autotest -powncloud -e "DROP DATABASE oc_autotest"
|
||||
fi
|
||||
if [ "$1" == "pgsql" ] ; then
|
||||
dropdb -U oc_autotest oc_autotest
|
||||
fi
|
||||
|
||||
# copy autoconfig
|
||||
cp $BASEDIR/tests/autoconfig-$1.php $BASEDIR/config/autoconfig.php
|
||||
|
@ -77,13 +94,17 @@ function execute_tests {
|
|||
#
|
||||
execute_tests "sqlite"
|
||||
execute_tests 'mysql'
|
||||
|
||||
# TODO: implement this
|
||||
#execute_tests 'postgresql'
|
||||
execute_tests 'pgsql'
|
||||
|
||||
#
|
||||
# NOTES:
|
||||
# NOTES on mysql:
|
||||
# - CREATE USER 'oc_autotest'@'localhost' IDENTIFIED BY 'owncloud';
|
||||
# - grant access permissions: grant all on oc_autotest.* to 'oc_autotest'@'localhost';
|
||||
#
|
||||
# NOTES on pgsql:
|
||||
# - su - postgres
|
||||
# - createuser -P (enter username and password and enable superuser)
|
||||
# - to enable dropdb I decided to add following line to pg_hba.conf (this is not the safest way but I don't care for the testing machine):
|
||||
# local all all trust
|
||||
#
|
||||
|
||||
|
|
|
@ -74,8 +74,7 @@ class OC_Archive_ZIP extends OC_Archive{
|
|||
* @return int
|
||||
*/
|
||||
function mtime($path){
|
||||
$stat=$this->zip->statName($path);
|
||||
return $stat['mtime'];
|
||||
return filemtime($this->path);
|
||||
}
|
||||
/**
|
||||
* get the files in a folder
|
||||
|
|
|
@ -345,7 +345,7 @@ class OC{
|
|||
$_SESSION['user_id'] = '';
|
||||
}
|
||||
|
||||
OC_User::useBackend( OC_Config::getValue( "userbackend", "database" ));
|
||||
OC_User::useBackend(new OC_User_Database());
|
||||
OC_Group::useBackend(new OC_Group_Database());
|
||||
|
||||
// Load Apps
|
||||
|
|
38
lib/user.php
38
lib/user.php
|
@ -50,8 +50,8 @@ class OC_User {
|
|||
*
|
||||
* Makes a list of backends that can be used by other modules
|
||||
*/
|
||||
public static function registerBackend( $name ){
|
||||
self::$_backends[] = $name;
|
||||
public static function registerBackend( $backend ){
|
||||
self::$_backends[] = $backend;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -83,22 +83,26 @@ class OC_User {
|
|||
* Set the User Authentication Module
|
||||
*/
|
||||
public static function useBackend( $backend = 'database' ){
|
||||
// You'll never know what happens
|
||||
if( null === $backend OR !is_string( $backend )){
|
||||
$backend = 'database';
|
||||
}
|
||||
if($backend instanceof OC_User_Backend){
|
||||
self::$_usedBackends[get_class($backend)]=$backend;
|
||||
}else{
|
||||
// You'll never know what happens
|
||||
if( null === $backend OR !is_string( $backend )){
|
||||
$backend = 'database';
|
||||
}
|
||||
|
||||
// Load backend
|
||||
switch( $backend ){
|
||||
case 'database':
|
||||
case 'mysql':
|
||||
case 'sqlite':
|
||||
self::$_usedBackends[$backend] = new OC_User_Database();
|
||||
break;
|
||||
default:
|
||||
$className = 'OC_USER_' . strToUpper($backend);
|
||||
self::$_usedBackends[$backend] = new $className();
|
||||
break;
|
||||
// Load backend
|
||||
switch( $backend ){
|
||||
case 'database':
|
||||
case 'mysql':
|
||||
case 'sqlite':
|
||||
self::$_usedBackends[$backend] = new OC_User_Database();
|
||||
break;
|
||||
default:
|
||||
$className = 'OC_USER_' . strToUpper($backend);
|
||||
self::$_usedBackends[$backend] = new $className();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
true;
|
||||
|
|
|
@ -32,8 +32,7 @@ $testSuiteName="ownCloud Unit Test Suite";
|
|||
if(OC::$CLI){
|
||||
$reporter=new TextReporter;
|
||||
$test=isset($_SERVER['argv'][1])?$_SERVER['argv'][1]:false;
|
||||
if($test=='xml')
|
||||
{
|
||||
if($test=='xml'){
|
||||
$reporter= new XmlReporter;
|
||||
$test=false;
|
||||
|
||||
|
@ -42,7 +41,7 @@ if(OC::$CLI){
|
|||
}
|
||||
}
|
||||
}else{
|
||||
$reporter='HtmlReporter';
|
||||
$reporter=new HtmlReporter;
|
||||
$test=isset($_GET['test'])?$_GET['test']:false;
|
||||
}
|
||||
|
||||
|
@ -81,10 +80,10 @@ function loadTests($dir,$testSuite, $test){
|
|||
}elseif(substr($file,-4)=='.php' and $file!=__FILE__){
|
||||
$name=getTestName($file);
|
||||
if($test===false or $test==$name or substr($name,0,strlen($test))==$test){
|
||||
$extractor = new SimpleFileLoader();
|
||||
$extractor = new SimpleFileLoader();
|
||||
$loadedSuite=$extractor->load($file);
|
||||
if ($loadedSuite->getSize() > 0)
|
||||
$testSuite->add($loadedSuite);
|
||||
$testSuite->add($loadedSuite);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue