Blame view

sources/apps/activity/rss.php 2.46 KB
d1bafeea1   Kload   [fix] Upgrade to ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  <?php
  
  /**
   * ownCloud - Activity app
   *
   * @author Frank Karlitschek
   * @copyright 2013 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.
   *
6d9380f96   Cédric Dupont   Update sources OC...
19
   * You should have received a copy of the GNU Affero General Public
d1bafeea1   Kload   [fix] Upgrade to ...
20
21
22
   * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
   *
   */
6d9380f96   Cédric Dupont   Update sources OC...
23
  \OCP\App::checkAppEnabled('activity');
d1bafeea1   Kload   [fix] Upgrade to ...
24

6d9380f96   Cédric Dupont   Update sources OC...
25
26
27
28
29
30
31
32
33
34
  $forceUserLogout = false;
  if (!\OCP\User::isLoggedIn()) {
  	if (!isset($_GET['token']) || strlen($_GET['token']) !== 30) {
  		// Token missing or invalid
  		header('HTTP/1.0 404 Not Found');
  		exit;
  	}
  
  	$preferences = new \OC\Preferences(\OC_DB::getConnection());
  	$users = $preferences->getUsersForValue('activity', 'rsstoken', $_GET['token']);
d1bafeea1   Kload   [fix] Upgrade to ...
35

6d9380f96   Cédric Dupont   Update sources OC...
36
37
38
39
40
  	if (sizeof($users) !== 1) {
  		// User not found
  		header('HTTP/1.0 404 Not Found');
  		exit;
  	}
d1bafeea1   Kload   [fix] Upgrade to ...
41

6d9380f96   Cédric Dupont   Update sources OC...
42
43
44
45
46
47
48
  	// Token found login as that user
  	\OC_User::setUserId(array_shift($users));
  	$forceUserLogout = true;
  }
  
  // check if the user has the right permissions.
  \OCP\User::checkLoggedIn();
d1bafeea1   Kload   [fix] Upgrade to ...
49

6d9380f96   Cédric Dupont   Update sources OC...
50
51
52
53
54
55
  // rss is of content type text/xml
  if (isset($_SERVER['HTTP_ACCEPT']) && stristr($_SERVER['HTTP_ACCEPT'], 'application/rss+xml')) {
  	header('Content-Type: application/rss+xml');
  } else {
  	header('Content-Type: text/xml; charset=UTF-8');
  }
d1bafeea1   Kload   [fix] Upgrade to ...
56
57
  
  // generate and show the rss feed
6d9380f96   Cédric Dupont   Update sources OC...
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
  $l = \OCP\Util::getL10N('activity');
  $data = new \OCA\Activity\Data(\OC::$server->getActivityManager());
  $groupHelper = new \OCA\Activity\GroupHelper(
  	\OC::$server->getActivityManager(),
  	new \OCA\Activity\DataHelper(
  		\OC::$server->getActivityManager(),
  		new \OCA\Activity\ParameterHelper(new \OC\Files\View(''), $l),
  		$l
  	),
  	false
  );
  
  $tmpl = new \OCP\Template('activity', 'rss');
  
  $tmpl->assign('rssLang', \OC_Preferences::getValue(\OCP\User::getUser(), 'core', 'lang'));
  $tmpl->assign('rssLink', \OCP\Util::linkToAbsolute('activity', 'rss.php'));
  $tmpl->assign('rssPubDate', date('r'));
  $tmpl->assign('user', \OCP\User::getUser());
  
  $tmpl->assign('activities', $data->read($groupHelper, 0, 30, 'all'));
  
  $tmpl->printPage();
d1bafeea1   Kload   [fix] Upgrade to ...
80

6d9380f96   Cédric Dupont   Update sources OC...
81
82
83
  if ($forceUserLogout) {
  	\OCP\User::logout();
  }