ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
privfeed.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
12 include_once "Services/Context/classes/class.ilContext.php";
14 
15 require_once("Services/Init/classes/class.ilInitialisation.php");
17 
18 global $lng, $ilSetting;
19 
20 $feed_set = new ilSetting("news");
21 
22 
23 if (!isset($_SERVER['PHP_AUTH_PW']) || !isset($_SERVER['PHP_AUTH_USER'])) {
24  Header("WWW-Authenticate: Basic realm=\"ILIAS Newsfeed\"");
25  Header("HTTP/1.0 401 Unauthorized");
26 
27  exit;
28 } else {
29  if ($_GET["user_id"] != "" && ilObjUser::_getFeedPass($_GET["user_id"]) != "" &&
30  (md5($_SERVER['PHP_AUTH_PW']) == ilObjUser::_getFeedPass($_GET["user_id"]) &&
31  $_SERVER['PHP_AUTH_USER'] == ilObjUser::_lookupLogin($_GET["user_id"]))
32  && $feed_set->get("enable_private_feed")) {
33  include_once("./Services/Feeds/classes/class.ilUserFeedWriter.php");
34  // Third parameter is true for private feed
35  $writer = new ilUserFeedWriter($_GET["user_id"], $_GET["hash"], true);
36  $writer->showFeed();
37  } elseif ($_GET["ref_id"] != "" && md5($_SERVER['PHP_AUTH_PW']) == ilObjUser::_getFeedPass(ilObjUser::_lookupId($_SERVER['PHP_AUTH_USER']))) {
38  include_once("./Services/Feeds/classes/class.ilObjectFeedWriter.php");
39  // Second parameter is optional to pass on to database-level to get news for logged-in users
40  $writer = new ilObjectFeedWriter($_GET["ref_id"], ilObjUser::_lookupId($_SERVER['PHP_AUTH_USER']));
41  $writer->showFeed();
42  } else {
43  // send appropriate header, if password is wrong, otherwise
44  // there is no chance to re-enter it (unless, e.g. the browser is closed)
45  if (md5($_SERVER['PHP_AUTH_PW']) != ilObjUser::_getFeedPass(ilObjUser::_lookupId($_SERVER['PHP_AUTH_USER']))) {
46  Header("WWW-Authenticate: Basic realm=\"ILIAS Newsfeed\"");
47  Header("HTTP/1.0 401 Unauthorized");
48  exit;
49  }
50 
51  include_once("./Services/Feeds/classes/class.ilFeedItem.php");
52  include_once("./Services/Feeds/classes/class.ilFeedWriter.php");
53 
54  $blankFeedWriter = new ilFeedWriter();
55  $feed_item = new ilFeedItem();
56  $lng->loadLanguageModule("news");
57 
58  if ($ilSetting->get('short_inst_name') != "") {
59  $blankFeedWriter->setChannelTitle($ilSetting->get('short_inst_name'));
60  } else {
61  $blankFeedWriter->setChannelTitle("ILIAS");
62  }
63 
64 
65 
66 
67  if (!$feed_set->get("enable_private_feed")) {
68  $blankFeedWriter->setChannelAbout(ILIAS_HTTP_PATH);
69  $blankFeedWriter->setChannelLink(ILIAS_HTTP_PATH);
70  // title
71  $feed_item->setTitle($lng->txt("priv_feed_no_access_title"));
72 
73  // description
74  $feed_item->setDescription($lng->txt("priv_feed_no_access_body"));
75  $feed_item->setLink(ILIAS_HTTP_PATH);
76  } else {
77  $blankFeedWriter->setChannelAbout(ILIAS_HTTP_PATH);
78  $blankFeedWriter->setChannelLink(ILIAS_HTTP_PATH);
79  // title
80  $feed_item->setTitle($lng->txt("priv_feed_no_auth_title"));
81 
82  // description
83  $feed_item->setDescription($lng->txt("priv_feed_no_auth_body"));
84  $feed_item->setLink(ILIAS_HTTP_PATH);
85  }
86  $blankFeedWriter->addItem($feed_item);
87  $blankFeedWriter->showFeed();
88  }
89 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$_GET["client_id"]
Definition: webdav.php:30
exit
Definition: login.php:29
static _lookupId($a_user_str)
const CONTEXT_RSS_AUTH
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static initILIAS()
ilias initialisation
static _getFeedPass(int $a_user_id)
Lookup news feed password for user.
$_SERVER['HTTP_HOST']
Definition: raiseError.php:10
$feed_set
Definition: privfeed.php:20
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
global $ilSetting
Definition: privfeed.php:18
static init(string $a_type)
Init context by type.
global $lng
Definition: privfeed.php:18
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static _lookupLogin(int $a_user_id)