cis notified web server of a job completion; upload form interface and validation...
[living-lab-site.git] / application / controllers / test.php
1 <?php
2
3 /**
4  * @property CI_Config $config
5  */
6 class Test extends CI_Controller {
7
8         function Test()
9         {
10                 parent::__construct();
11
12                 $this->lang->load('openid', 'english');
13                 $this->load->library('openid');
14                 $this->load->helper('url');
15                 //$this->output->enable_profiler(TRUE);
16         }
17
18         // Index
19         function index()
20         {
21                 if ($this->input->post('action') == 'verify')
22                 {
23                         $user_id = $this->input->post('openid_identifier');
24                         $pape_policy_uris = $this->input->post('policies');
25
26                         if (!$pape_policy_uris)
27                         {
28                                 $pape_policy_uris = array();
29                         }
30
31                         $this->config->load('openid');
32                         $req = $this->config->item('openid_required');
33                         $opt = $this->config->item('openid_optional');
34                         $policy = site_url($this->config->item('openid_policy'));
35                         $request_to = site_url($this->config->item('openid_request_to'));
36
37                         $this->openid->set_request_to($request_to);
38                         $this->openid->set_trust_root(base_url());
39                         $this->openid->set_args(null);
40                         $this->openid->set_sreg(true, $req, $opt, $policy);
41                         $this->openid->set_pape(true, $pape_policy_uris);
42                         $this->openid->authenticate($user_id);
43                 }
44                 else
45                 {
46                         $data['pape_policy_uris'] = array(
47                                 PAPE_AUTH_MULTI_FACTOR_PHYSICAL,
48                                 PAPE_AUTH_MULTI_FACTOR,
49                                 PAPE_AUTH_PHISHING_RESISTANT
50                         );
51
52                         $this->load->view('view_openid', $data);
53                 }
54         }
55
56         // Policy
57         function policy()
58         {
59                 $this->load->view('openid_policy_view');
60         }
61
62         // set message
63         function _set_message($msg, $val = '', $sub = '%s')
64         {
65                 return str_replace($sub, $val, $this->lang->line($msg));
66         }
67
68         // Check
69         function check()
70         {
71                 $this->config->load('openid');
72                 $request_to = site_url($this->config->item('openid_request_to'));
73
74                 $this->openid->set_request_to($request_to);
75                 $response = $this->openid->getResponse();
76
77                 switch ($response->status)
78                 {
79                         case Auth_OpenID_CANCEL:
80                                 $data['msg'] = $this->lang->line('openid_cancel');
81                                 break;
82                         case Auth_OpenID_FAILURE:
83                                 $data['error'] = $this->_set_message('openid_failure', $response->message);
84                                 break;
85                         case Auth_OpenID_SUCCESS:
86                                 $openid = $response->getDisplayIdentifier();
87                                 $esc_identity = htmlspecialchars($openid, ENT_QUOTES);
88
89                                 $data['success'] = $this->_set_message('openid_success', array($esc_identity, $esc_identity), array('%s', '%t'));
90
91                                 if ($response->endpoint->canonicalID)
92                                 {
93                                         $data['success'] .= $this->_set_message('openid_canonical', $response->endpoint->canonicalID);
94                                 }
95
96                                 $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response);
97                                 $sreg = $sreg_resp->contents();
98
99                                 foreach ($sreg as $key => $value)
100                                 {
101                                         $data['success'] .= $this->_set_message('openid_content', array($key, $value), array('%s', '%t'));
102                                 }
103
104                                 $pape_resp = Auth_OpenID_PAPE_Response::fromSuccessResponse($response);
105
106                                 if ($pape_resp)
107                                 {
108                                         if ($pape_resp->auth_policies)
109                                         {
110                                                 $data['success'] .= $this->lang->line('openid_pape_policies_affected');
111
112                                                 foreach ($pape_resp->auth_policies as $uri)
113                                                 {
114                                                         $data['success'] .= "<li><tt>$uri</tt></li>";
115                                                 }
116
117                                                 $data['success'] .= "</ul>";
118                                         }
119                                         else
120                                         {
121                                                 $data['success'] .= $this->lang->line('openid_pape_not_affected');
122                                         }
123
124                                         if (isset($pape_resp->auth_age) && $pape_resp->auth_age)
125                                         {
126                                                 $data['success'] .= $this->_set_message('openid_auth_age', $pape_resp->auth_age);
127                                         }
128
129                                         if ($pape_resp->nist_auth_level)
130                                         {
131                                                 $data['success'] .= $this->_set_message('openid_nist_level', $pape_resp->nist_auth_level);
132                                         }
133                                 }
134                                 else
135                                 {
136                                         $data['success'] .= $this->lang->line('openid_pape_noresponse');
137                                 }
138                                 break;
139                 }
140
141                 $data['pape_policy_uris'] = array(
142                         PAPE_AUTH_MULTI_FACTOR_PHYSICAL,
143                         PAPE_AUTH_MULTI_FACTOR,
144                         PAPE_AUTH_PHISHING_RESISTANT
145                 );
146
147 //              echo "nickname: $nickname";
148 //              echo "esc_identity: $esc_identity";
149                 
150                 $this->load->view('view_openid', $data);
151         }
152
153 }
154
155 ?>