Blame view

sources/apps/gallery/ajax/getimages.php 2.13 KB
d1bafeea1   Kload   [fix] Upgrade to ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  <?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.
   */
  
  OCP\JSON::checkAppEnabled('gallery');
  
  if (isset($_GET['token'])) {
  	$token = $_GET['token'];
  	$linkItem = \OCP\Share::getShareByToken($token);
  	if (is_array($linkItem) && isset($linkItem['uid_owner'])) {
  		// seems to be a valid share
  		$type = $linkItem['item_type'];
  		$fileSource = $linkItem['file_source'];
  		$shareOwner = $linkItem['uid_owner'];
  		$path = null;
  		$rootLinkItem = \OCP\Share::resolveReShare($linkItem);
  		$fileOwner = $rootLinkItem['uid_owner'];
  
  		// Setup FS with owner
  		OCP\JSON::checkUserExists($fileOwner);
  		OC_Util::tearDownFS();
  		OC_Util::setupFS($fileOwner);
  
  		// The token defines the target directory (security reasons)
  		$path = \OC\Files\Filesystem::getPath($linkItem['file_source']);
  
  		$view = new \OC\Files\View(\OC\Files\Filesystem::getView()->getAbsolutePath($path));
  		$images = $view->searchByMime('image');
6d9380f96   Cédric Dupont   Update sources OC...
33
34
35
  		$result = array();
  		foreach ($images as $image) {
  			$result[] = $token . $image['path'];
d1bafeea1   Kload   [fix] Upgrade to ...
36
37
38
  		}
  
  		OCP\JSON::setContentTypeHeader();
6d9380f96   Cédric Dupont   Update sources OC...
39
  		echo json_encode(array('images' => $result, 'users' => array(), 'displayNames' => array()));
d1bafeea1   Kload   [fix] Upgrade to ...
40
41
42
43
44
45
46
47
48
49
  
  		exit;
  	}
  }
  
  OCP\JSON::checkLoggedIn();
  OCP\JSON::checkAppEnabled('gallery');
  
  $images = \OCP\Files::searchByMime('image');
  $user = \OCP\User::getUser();
6d9380f96   Cédric Dupont   Update sources OC...
50
51
  $users = array();
  $result = array();
d1bafeea1   Kload   [fix] Upgrade to ...
52
53
  
  foreach ($images as &$image) {
6d9380f96   Cédric Dupont   Update sources OC...
54
55
56
57
58
59
60
61
  	// we show shared images another way
  	if ($image->getStorage() instanceof \OC\Files\Storage\Shared) {
  		$owner = $image['uid_owner'];
  		$users[$owner] = $owner;
  	} else {
  		$owner = $user;
  	}
  	$path = $image['path'];
d1bafeea1   Kload   [fix] Upgrade to ...
62
63
64
  	if (strpos($path, DIRECTORY_SEPARATOR . ".")) {
  		continue;
  	}
6d9380f96   Cédric Dupont   Update sources OC...
65
  	$result[] = $owner . $path;
d1bafeea1   Kload   [fix] Upgrade to ...
66
67
68
69
70
71
72
73
74
75
76
77
  }
  
  $displayNames = array();
  foreach ($users as $user) {
  	$displayNames[$user] = \OCP\User::getDisplayName($user);
  }
  
  function startsWith($haystack, $needle) {
  	return !strncmp($haystack, $needle, strlen($needle));
  }
  
  OCP\JSON::setContentTypeHeader();
6d9380f96   Cédric Dupont   Update sources OC...
78
  echo json_encode(array('images' => $result, 'users' => array_values($users), 'displayNames' => $displayNames));