summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2013-06-26 21:40:31 +0200
committerBart Visscher <bartv@thisnet.nl>2013-06-26 21:40:31 +0200
commit3b31afb2a712ad06e96e0e2e5f872ec3e435810d (patch)
treeb1cb2f746bd755d98b8f93bba980219bf8f65485 /lib
parent0c680b46cdfe5106d87ad807657c9d2e558b4a73 (diff)
downloadnextcloud-server-3b31afb2a712ad06e96e0e2e5f872ec3e435810d.tar.gz
nextcloud-server-3b31afb2a712ad06e96e0e2e5f872ec3e435810d.zip
Oracle doesn't know & as bitwise AND
Diffstat (limited to 'lib')
-rw-r--r--lib/public/share.php8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/public/share.php b/lib/public/share.php
index 122ab3fa030..304cb7239eb 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -662,7 +662,13 @@ class Share {
// Remove the permissions for all reshares of this item
if (!empty($ids)) {
$ids = "'".implode("','", $ids)."'";
- $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = `permissions` & ?'
+ // TODO this should be done with Doctrine platform objects
+ if (\OC_Config::getValue( "dbtype") === 'oci') {
+ $andOp = 'BITAND(`permissions`, ?)';
+ } else {
+ $andOp = '`permissions` & ?';
+ }
+ $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = '.$andOp
.' WHERE `id` IN ('.$ids.')');
$query->execute(array($permissions));
}