diff --git a/lib/public/share.php b/lib/public/share.php
index 2ba3187dffc..ec371ebf982 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -122,7 +122,6 @@ class Share {
 	public static function share($itemType, $item, $shareType, $shareWith, $permissions) {
 		$uidOwner = \OC_User::getUser();
 		// Verify share type and sharing conditions are met
-		// TODO Doesn't handle types 
 		switch ($shareType) {
 			case self::SHARE_TYPE_USER:
 				\OC_Log::write('OCP\Share', 'share type '.$shareType, \OC_Log::ERROR);
@@ -168,6 +167,7 @@ class Share {
 				$uidSharedWith = '';
 				$gidSharedWith = null;
 				break;
+			// Future share types need to include their own conditions
 			default:
 				\OC_Log::write('OCP\Share', 'Share type '.$shareType.' is not valid for '.$item, \OC_Log::ERROR);
 				return false;
@@ -204,20 +204,7 @@ class Share {
 	* @return Returns true on success or false on failure
 	*/
 	public static function unshare($itemType, $item, $shareType, $shareWith) {
-		$uidOwner = \OC_User::getUser();
-		switch ($shareType) {
-			case self::SHARE_TYPE_USER:
-			case self::SHARETYPE_PRIVATE_LINK:
-				$item = self::getItems($itemType, $item, $shareWith, null, $uidOwner, false, 1);
-				break;
-			case self::SHARE_TYPE_GROUP:
-				$item = self::getItems($itemType, $item, null, $shareWith, $uidOwner, false, 1);
-				break;
-			default:
-				\OC_Log::write('OCP\Share', 'Share type '.$shareType.' is not valid for item '.$item, \OC_Log::ERROR);
-				return false;
-		}
-		if ($item) {
+		if ($item = self::getItems($itemType, $item, $shareType, $shareWith, \OC_User::getUser(), self::FORMAT_NONE, 1)) {
 			self::delete($item['id']);
 			return true;
 		}
@@ -265,7 +252,8 @@ class Share {
 	public static function setTarget($itemType, $oldTarget, $newTarget) {
 		if ($backend = self::getBackend($itemType)) {
 			$uidSharedWith = \OC_User::getUser();
-			if ($item = self::getItems($itemType, $oldTarget, $uidSharedWith, true, null, false, 1)) {
+			// TODO Check permissions for setting target?
+			if ($item = self::getItems($itemType, $oldTarget, self::SHARE_TYPE_USER, $uidSharedWith, null, self::FORMAT_NONE, 1)) {
 				// Check if this is a group share
 				if ($item['uid_shared_with'] == null) {
 					// A new entry needs to be created exclusively for the user
@@ -303,20 +291,7 @@ class Share {
 	* @return Returns true on success or false on failure
 	*/
 	public static function setPermissions($itemType, $item, $shareType, $shareWith, $permissions) {
-		$uidOwner = \OC_User::getUser();
-		switch ($shareType) {
-			case self::SHARE_TYPE_USER:
-			case self::SHARETYPE_PRIVATE_LINK:
-				$item = self::getItems($itemType, $item, $shareWith, null, $uidOwner, false, 1);
-				break;
-			case self::SHARE_TYPE_GROUP:
-				$item = self::getItems($itemType, $item, null, $shareWith, $uidOwner, false, 1);
-				break;
-			default:
-				\OC_Log::write('OCP\Share', 'Share type '.$shareType.' is not valid for item '.$item, \OC_Log::ERROR);
-				return false;
-		}
-		if ($item) {
+		if ($item = self::getItems($itemType, $item, $shareType, $shareWith, \OC_User::getUser(), self::FORMAT_NONE, 1)) {
 			// Check if this item is a reshare and verify that the permissions granted don't exceed the parent shared item
 			if (isset($item['parent'])) {
 				$query = \OC_DB::prepare('SELECT permissions FROM *PREFIX*sharing WHERE id = ? LIMIT 1');