Conflicts: lib/private/appconfig.phpremotes/origin/ldap_group_count
commit
9fac95c2ab
@ -0,0 +1,185 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com> |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
|
||||
namespace OC\Files; |
||||
|
||||
class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { |
||||
/** |
||||
* @var array $data |
||||
*/ |
||||
private $data; |
||||
|
||||
/** |
||||
* @var string $path |
||||
*/ |
||||
private $path; |
||||
|
||||
/** |
||||
* @var \OC\Files\Storage\Storage $storage |
||||
*/ |
||||
private $storage; |
||||
|
||||
/** |
||||
* @var string $internalPath |
||||
*/ |
||||
private $internalPath; |
||||
|
||||
public function __construct($path, $storage, $internalPath, $data) { |
||||
$this->path = $path; |
||||
$this->storage = $storage; |
||||
$this->internalPath = $internalPath; |
||||
$this->data = $data; |
||||
} |
||||
|
||||
public function offsetSet($offset, $value) { |
||||
$this->data[$offset] = $value; |
||||
} |
||||
|
||||
public function offsetExists($offset) { |
||||
return isset($this->data[$offset]); |
||||
} |
||||
|
||||
public function offsetUnset($offset) { |
||||
unset($this->data[$offset]); |
||||
} |
||||
|
||||
public function offsetGet($offset) { |
||||
return $this->data[$offset]; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getPath() { |
||||
return $this->path; |
||||
} |
||||
|
||||
/** |
||||
* @return \OCP\Files\Storage |
||||
*/ |
||||
public function getStorage() { |
||||
return $this->storage; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getInternalPath() { |
||||
return $this->internalPath; |
||||
} |
||||
|
||||
/** |
||||
* @return int |
||||
*/ |
||||
public function getId() { |
||||
return $this->data['fileid']; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getMimetype() { |
||||
return $this->data['mimetype']; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getMimePart() { |
||||
return $this->data['mimepart']; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getName() { |
||||
return $this->data['name']; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getEtag() { |
||||
return $this->data['etag']; |
||||
} |
||||
|
||||
/** |
||||
* @return int |
||||
*/ |
||||
public function getSize() { |
||||
return $this->data['size']; |
||||
} |
||||
|
||||
/** |
||||
* @return int |
||||
*/ |
||||
public function getMTime() { |
||||
return $this->data['mtime']; |
||||
} |
||||
|
||||
/** |
||||
* @return bool |
||||
*/ |
||||
public function isEncrypted() { |
||||
return $this->data['encrypted']; |
||||
} |
||||
|
||||
/** |
||||
* @return int |
||||
*/ |
||||
public function getPermissions() { |
||||
return $this->data['permissions']; |
||||
} |
||||
|
||||
/** |
||||
* @return \OCP\Files\FileInfo::TYPE_FILE | \OCP\Files\FileInfo::TYPE_FOLDER |
||||
*/ |
||||
public function getType() { |
||||
return $this->data['type']; |
||||
} |
||||
|
||||
public function getData(){ |
||||
return $this->data; |
||||
} |
||||
|
||||
/** |
||||
* @param int $permissions |
||||
* @return bool |
||||
*/ |
||||
protected function checkPermissions($permissions) { |
||||
return ($this->getPermissions() & $permissions) === $permissions; |
||||
} |
||||
|
||||
/** |
||||
* @return bool |
||||
*/ |
||||
public function isReadable() { |
||||
return $this->checkPermissions(\OCP\PERMISSION_READ); |
||||
} |
||||
|
||||
/** |
||||
* @return bool |
||||
*/ |
||||
public function isUpdateable() { |
||||
return $this->checkPermissions(\OCP\PERMISSION_UPDATE); |
||||
} |
||||
|
||||
/** |
||||
* @return bool |
||||
*/ |
||||
public function isDeletable() { |
||||
return $this->checkPermissions(\OCP\PERMISSION_DELETE); |
||||
} |
||||
|
||||
/** |
||||
* @return bool |
||||
*/ |
||||
public function isShareable() { |
||||
return $this->checkPermissions(\OCP\PERMISSION_SHARE); |
||||
} |
||||
} |
@ -0,0 +1,126 @@ |
||||
<?php |
||||
/** |
||||
* ownCloud |
||||
* |
||||
* @author Frank Karlitschek |
||||
* @author Jakob Sack |
||||
* @copyright 2012 Frank Karlitschek frank@owncloud.org |
||||
* |
||||
* This library is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
* License as published by the Free Software Foundation; either |
||||
* version 3 of the License, or any later version. |
||||
* |
||||
* This library is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public |
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>. |
||||
* |
||||
*/ |
||||
|
||||
/** |
||||
* This class provides an easy way for apps to store config values in the |
||||
* database. |
||||
*/ |
||||
class OC_Appconfig { |
||||
/** |
||||
* @return \OCP\IAppConfig |
||||
*/ |
||||
private static function getAppConfig() { |
||||
return \OC::$server->getAppConfig(); |
||||
} |
||||
|
||||
/** |
||||
* @brief Get all apps using the config |
||||
* @return array with app ids |
||||
* |
||||
* This function returns a list of all apps that have at least one |
||||
* entry in the appconfig table. |
||||
*/ |
||||
public static function getApps() { |
||||
return self::getAppConfig()->getApps(); |
||||
} |
||||
|
||||
/** |
||||
* @brief Get the available keys for an app |
||||
* @param string $app the app we are looking for |
||||
* @return array with key names |
||||
* |
||||
* This function gets all keys of an app. Please note that the values are |
||||
* not returned. |
||||
*/ |
||||
public static function getKeys($app) { |
||||
return self::getAppConfig()->getKeys($app); |
||||
} |
||||
|
||||
/** |
||||
* @brief Gets the config value |
||||
* @param string $app app |
||||
* @param string $key key |
||||
* @param string $default = null, default value if the key does not exist |
||||
* @return string the value or $default |
||||
* |
||||
* This function gets a value from the appconfig table. If the key does |
||||
* not exist the default value will be returned |
||||
*/ |
||||
public static function getValue($app, $key, $default = null) { |
||||
return self::getAppConfig()->getValue($app, $key, $default); |
||||
} |
||||
|
||||
/** |
||||
* @brief check if a key is set in the appconfig |
||||
* @param string $app |
||||
* @param string $key |
||||
* @return bool |
||||
*/ |
||||
public static function hasKey($app, $key) { |
||||
return self::getAppConfig()->hasKey($app, $key); |
||||
} |
||||
|
||||
/** |
||||
* @brief sets a value in the appconfig |
||||
* @param string $app app |
||||
* @param string $key key |
||||
* @param string $value value |
||||
* |
||||
* Sets a value. If the key did not exist before it will be created. |
||||
*/ |
||||
public static function setValue($app, $key, $value) { |
||||
self::getAppConfig()->setValue($app, $key, $value); |
||||
} |
||||
|
||||
/** |
||||
* @brief Deletes a key |
||||
* @param string $app app |
||||
* @param string $key key |
||||
* |
||||
* Deletes a key. |
||||
*/ |
||||
public static function deleteKey($app, $key) { |
||||
self::getAppConfig()->deleteKey($app, $key); |
||||
} |
||||
|
||||
/** |
||||
* @brief Remove app from appconfig |
||||
* @param string $app app |
||||
* |
||||
* Removes all keys in appconfig belonging to the app. |
||||
*/ |
||||
public static function deleteApp($app) { |
||||
self::getAppConfig()->deleteApp($app); |
||||
} |
||||
|
||||
/** |
||||
* get multiply values, either the app or key can be used as wildcard by setting it to false |
||||
* |
||||
* @param app |
||||
* @param key |
||||
* @return array |
||||
*/ |
||||
public static function getValues($app, $key) { |
||||
return self::getAppConfig()->getValues($app, $key); |
||||
} |
||||
} |
@ -0,0 +1,59 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2014 Arthur Schiwon <blizzz@owncloud.com> |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
* |
||||
*/ |
||||
namespace OC\Share; |
||||
|
||||
class SearchResultSorter { |
||||
private $search; |
||||
private $encoding; |
||||
private $key; |
||||
private $log; |
||||
|
||||
/** |
||||
* @param $search the search term as was given by the user |
||||
* @param $key the array key containing the value that should be compared |
||||
* against |
||||
* @param $encoding optional, encoding to use, defaults to UTF-8 |
||||
* @param $log optional, an \OC\Log instance |
||||
*/ |
||||
public function __construct($search, $key, \OC\Log $log = null, $encoding = 'UTF-8') { |
||||
$this->encoding = $encoding; |
||||
$this->key = $key; |
||||
$this->log = $log; |
||||
$this->search = mb_strtolower($search, $this->encoding); |
||||
} |
||||
|
||||
/** |
||||
* User and Group names matching the search term at the beginning shall appear |
||||
* on top of the share dialog. Following entries in alphabetical order. |
||||
* Callback function for usort. http://php.net/usort |
||||
*/ |
||||
public function sort($a, $b) { |
||||
if(!isset($a[$this->key]) || !isset($b[$this->key])) { |
||||
if(!is_null($this->log)) { |
||||
$this->log->error('Sharing dialogue: cannot sort due to ' . |
||||
'missing array key', array('app' => 'core')); |
||||
} |
||||
return 0; |
||||
} |
||||
$nameA = mb_strtolower($a[$this->key], $this->encoding); |
||||
$nameB = mb_strtolower($b[$this->key], $this->encoding); |
||||
$i = mb_strpos($nameA, $this->search, 0, $this->encoding); |
||||
$j = mb_strpos($nameB, $this->search, 0, $this->encoding); |
||||
|
||||
if($i === $j || $i > 0 && $j > 0) { |
||||
return strcmp(mb_strtolower($nameA, $this->encoding), |
||||
mb_strtolower($nameB, $this->encoding)); |
||||
} elseif ($i === 0) { |
||||
return -1; |
||||
} else { |
||||
return 1; |
||||
} |
||||
} |
||||
} |
||||
|
@ -0,0 +1,138 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com> |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
namespace OCP\Files; |
||||
|
||||
interface FileInfo { |
||||
const TYPE_FILE = 'file'; |
||||
const TYPE_FOLDER = 'folder'; |
||||
|
||||
/** |
||||
* Get the Etag of the file or folder |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getEtag(); |
||||
|
||||
/** |
||||
* Get the size in bytes for the file or folder |
||||
* |
||||
* @return int |
||||
*/ |
||||
public function getSize(); |
||||
|
||||
/** |
||||
* Get the last modified date as timestamp for the file or folder |
||||
* |
||||
* @return int |
||||
*/ |
||||
public function getMtime(); |
||||
|
||||
/** |
||||
* Get the name of the file or folder |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getName(); |
||||
|
||||
/** |
||||
* Get the path relative to the storage |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getInternalPath(); |
||||
|
||||
/** |
||||
* Get the absolute path |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getPath(); |
||||
|
||||
/** |
||||
* Get the full mimetype of the file or folder i.e. 'image/png' |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getMimetype(); |
||||
|
||||
/** |
||||
* Get the first part of the mimetype of the file or folder i.e. 'image' |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getMimePart(); |
||||
|
||||
/** |
||||
* Get the storage the file or folder is storage on |
||||
* |
||||
* @return \OCP\Files\Storage |
||||
*/ |
||||
public function getStorage(); |
||||
|
||||
/** |
||||
* Get the file id of the file or folder |
||||
* |
||||
* @return int |
||||
*/ |
||||
public function getId(); |
||||
|
||||
/** |
||||
* Check whether the file is encrypted |
||||
* |
||||
* @return bool |
||||
*/ |
||||
public function isEncrypted(); |
||||
|
||||
/** |
||||
* Get the permissions of the file or folder as bitmasked combination of the following constants |
||||
* \OCP\PERMISSION_CREATE |
||||
* \OCP\PERMISSION_READ |
||||
* \OCP\PERMISSION_UPDATE |
||||
* \OCP\PERMISSION_DELETE |
||||
* \OCP\PERMISSION_SHARE |
||||
* \OCP\PERMISSION_ALL |
||||
* |
||||
* @return int |
||||
*/ |
||||
public function getPermissions(); |
||||
|
||||
/** |
||||
* Check whether this is a file or a folder |
||||
* |
||||
* @return \OCP\Files\FileInfo::TYPE_FILE | \OCP\Files\FileInfo::TYPE_FOLDER |
||||
*/ |
||||
public function getType(); |
||||
|
||||
/** |
||||
* Check if the file or folder is readable |
||||
* |
||||
* @return bool |
||||
*/ |
||||
public function isReadable(); |
||||
|
||||
/** |
||||
* Check if a file is writable |
||||
* |
||||
* @return bool |
||||
*/ |
||||
public function isUpdateable(); |
||||
|
||||
/** |
||||
* Check if a file or folder can be deleted |
||||
* |
||||
* @return bool |
||||
*/ |
||||
public function isDeletable(); |
||||
|
||||
/** |
||||
* Check if a file or folder can be shared |
||||
* |
||||
* @return bool |
||||
*/ |
||||
public function isShareable(); |
||||
} |
@ -0,0 +1,91 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com> |
||||
* This file is licensed under the Affero General Public License version 3 or |
||||
* later. |
||||
* See the COPYING-README file. |
||||
*/ |
||||
namespace OCP; |
||||
|
||||
/** |
||||
* This class provides an easy way for apps to store config values in the |
||||
* database. |
||||
*/ |
||||
interface IAppConfig { |
||||
/** |
||||
* @brief check if a key is set in the appconfig |
||||
* @param string $app |
||||
* @param string $key |
||||
* @return bool |
||||
*/ |
||||
public function hasKey($app, $key); |
||||
|
||||
/** |
||||
* @brief Gets the config value |
||||
* @param string $app app |
||||
* @param string $key key |
||||
* @param string $default = null, default value if the key does not exist |
||||
* @return string the value or $default |
||||
* |
||||
* This function gets a value from the appconfig table. If the key does |
||||
* not exist the default value will be returned |
||||
*/ |
||||
public function getValue($app, $key, $default = null); |
||||
|
||||
/** |
||||
* @brief Deletes a key |
||||
* @param string $app app |
||||
* @param string $key key |
||||
* @return bool |
||||
* |
||||
* Deletes a key. |
||||
*/ |
||||
public function deleteKey($app, $key); |
||||
|
||||
/** |
||||
* @brief Get the available keys for an app |
||||
* @param string $app the app we are looking for |
||||
* @return array with key names |
||||
* |
||||
* This function gets all keys of an app. Please note that the values are |
||||
* not returned. |
||||
*/ |
||||
public function getKeys($app); |
||||
|
||||
/** |
||||
* get multiply values, either the app or key can be used as wildcard by setting it to false |
||||
* |
||||
* @param app |
||||
* @param key |
||||
* @return array |
||||
*/ |
||||
public function getValues($app, $key); |
||||
|
||||
/** |
||||
* @brief sets a value in the appconfig |
||||
* @param string $app app |
||||
* @param string $key key |
||||
* @param string $value value |
||||
* |
||||
* Sets a value. If the key did not exist before it will be created. |
||||
*/ |
||||
public function setValue($app, $key, $value); |
||||
|
||||
/** |
||||
* @brief Get all apps using the config |
||||
* @return array with app ids |
||||
* |
||||
* This function returns a list of all apps that have at least one |
||||
* entry in the appconfig table. |
||||
*/ |
||||
public function getApps(); |
||||
|
||||
/** |
||||
* @brief Remove app from appconfig |
||||
* @param string $app app |
||||
* @return bool |
||||
* |
||||
* Removes all keys in appconfig belonging to the app. |
||||
*/ |
||||
public function deleteApp($app); |
||||
} |
@ -0,0 +1,47 @@ |
||||
<?php |
||||
/** |
||||
* ownCloud |
||||
* |
||||
* @author Arthur Schiwon |
||||
* @copyright 2014 Arthur Schiwon <blizzz@owncloud.com> |
||||
* |
||||
* This library is free software; you can redistribute it and/or |
||||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE |
||||
* License as published by the Free Software Foundation; either |
||||
* version 3 of the License, or any later version. |
||||
* |
||||
* This library is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public |
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>. |
||||
*/ |
||||
|
||||
class Test_Share_Search extends \PHPUnit_Framework_TestCase { |
||||
public function testSort() { |
||||
$search = 'lin'; |
||||
$sorter = new \OC\Share\SearchResultSorter($search, 'foobar'); |
||||
|
||||
$result = array( |
||||
array('foobar' => 'woot'), |
||||
array('foobar' => 'linux'), |
||||
array('foobar' => 'Linus'), |
||||
array('foobar' => 'Bicyclerepairwoman'), |
||||
); |
||||
|
||||
usort($result, array($sorter, 'sort')); |
||||
$this->assertTrue($result[0]['foobar'] === 'Linus'); |
||||
$this->assertTrue($result[1]['foobar'] === 'linux'); |
||||
$this->assertTrue($result[2]['foobar'] === 'Bicyclerepairwoman'); |
||||
$this->assertTrue($result[3]['foobar'] === 'woot'); |
||||
} |
||||
|
||||
/** |
||||
* @expectedException PHPUnit_Framework_Error |
||||
*/ |
||||
public function testSortWrongLog() { |
||||
$sorter = new \OC\Share\SearchResultSorter('foo', 'bar', 'UTF-8', 'foobar'); |
||||
} |
||||
} |
Loading…
Reference in new issue