From df9f5b902a39d94c0da221b5d767b19e1c35e680 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Fri, 27 Jul 2012 15:34:51 -0400 Subject: [PATCH] Fix group detection for sharing in case username contains '@', fix for oc-1270 --- apps/files_sharing/ajax/getitem.php | 7 ++++++- apps/files_sharing/lib_share.php | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/files_sharing/ajax/getitem.php b/apps/files_sharing/ajax/getitem.php index ff6c29b6a0..06a80102de 100644 --- a/apps/files_sharing/ajax/getitem.php +++ b/apps/files_sharing/ajax/getitem.php @@ -22,8 +22,13 @@ while ($path != $userDirectory) { } } else { // Check if uid_shared_with is a group - if (($pos = strpos($uid_shared_with, '@')) !== false) { + $pos = strrpos($uid_shared_with, '@'); + if ($pos !== false) { $gid = substr($uid_shared_with, $pos + 1); + } else { + $gid = false; + } + if ($gid && OC_Group::groupExists($gid)) { // Include users in the group so the users can be removed from the list of people to share with if ($path == $source) { $group = array(array('gid' => $gid, 'permissions' => $rows[$i]['permissions'], 'users' => OC_Group::usersInGroup($gid), 'parentFolder' => false)); diff --git a/apps/files_sharing/lib_share.php b/apps/files_sharing/lib_share.php index 0237acfc1a..3bedd9bebc 100644 --- a/apps/files_sharing/lib_share.php +++ b/apps/files_sharing/lib_share.php @@ -179,7 +179,7 @@ class OC_Share { $uid_shared_with = OC_Group::usersInGroup($uid_shared_with); // Remove the owner from the list of users in the group $uid_shared_with = array_diff($uid_shared_with, array(OCP\USER::getUser())); - } else if ($uid = strstr($uid_shared_with, '@', true)) { + } else if ($uid = strrchr($uid_shared_with, '@', true)) { $uid_shared_with = array($uid); } else { $uid_shared_with = array($uid_shared_with);