index.php 2 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 'lib/db.php';
28
include 'lib/views.php';
29
include 'lib/config.php';
30

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

Stephane Crozat's avatar
Fix #9  
Stephane Crozat committed
40
/** Subscription and unsubscription management **/
stc's avatar
stc committed
41
42
43
44
45
46
47
48
49
50
51
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
Fix #9  
Stephane Crozat committed
52
53
54
55
56
/** Explanation management **/
if (isset($_GET['explanation'])) {
  $db->setExplanation($_SESSION['utclogin'],$_GET['explanation']);
}

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

?>