index.php 2.01 KB
Newer Older
stc's avatar
stc committed
1 2 3 4 5 6 7 8 9 10 11
<?php
session_start();

if (!isset($_SESSION['ticket'])) {
  /*  If session is already open for current PHP file, user is already logged in, do nothing
      If session is not open on current PHP file, check if it is open on CAS server
        If it is open on CAS server retrieve session informations
        If it is not on open on CAS server, ask for login to CAS server
  */

  include $_SERVER['DOCUMENT_ROOT'].'/apisub/lib/cas.php';
12 13
  $cas = new CAS('https://cas.utc.fr/cas/','http');
  $info = $cas->authenticate();
stc's avatar
stc committed
14 15 16 17 18 19 20
  if ($info != -1) 	{
    $_SESSION['ticket'] = $_GET['ticket'];
    $_SESSION['utclogin'] = $info['cas:user'];
    $_SESSION['mail'] = $info['cas:attributes']['cas:mail'];
    $_SESSION['surname'] = strtoupper($info['cas:attributes']['cas:sn']);
    $_SESSION['firstname'] = $info['cas:attributes']['cas:givenName'];
  }
21
  else {
22
    $cas->login();
23 24
  }
  $_SESSION['localcopy'] =  true; //call localcopy once per session
stc's avatar
stc committed
25 26 27
}

include $_SERVER['DOCUMENT_ROOT'].'/apisub/lib/db.php';
28 29
include 'lib/views.php';

stc's avatar
stc committed
30
$db = new DB();
31 32 33 34
if ($_SESSION['localcopy']) {
  $db->copyUser($_SESSION['utclogin'], $_SESSION['surname'], $_SESSION['firstname']);
  $_SESSION['localcopy']=false;
}
35 36
Views::printHtmlBegin();
Views::printUser($_SESSION['utclogin'], $_SESSION['surname'], $_SESSION['firstname']);
37
Views::printInstructions();
stc's avatar
stc committed
38

Stephane Crozat's avatar
Stephane Crozat committed
39
/** Subscription and unsubscription management **/
stc's avatar
stc committed
40 41 42 43 44 45 46 47 48 49 50
if (isset($_GET['api']) && isset($_GET['utclogin'])) {
  if (isset($_GET['action'])) {
    if ($_GET['action']=='sub') {
      $db->subToApi($_GET['utclogin'], $_GET['api']);
    }
    elseif ($_GET['action']=='unsub') {
      $db->unsubToApi($_GET['utclogin'], $_GET['api']);
    }
  }
}

Stephane Crozat's avatar
Stephane Crozat committed
51 52 53 54 55
/** Explanation management **/
if (isset($_GET['explanation'])) {
  $db->setExplanation($_SESSION['utclogin'],$_GET['explanation']);
}

56
Views::printSubList($db->subList($_SESSION['utclogin']), $_SESSION['utclogin']);
Stephane Crozat's avatar
Stephane Crozat committed
57
Views::printExplanation($db->getExplanation($_SESSION['utclogin']), $_SESSION['utclogin']);
58
Views::printApiList($db->apiList('H', 2019), $_SESSION['utclogin']);
stc's avatar
stc committed
59 60

?>