984013bcb4e9c0a81917df0cb7a614a618fa0074
bernd Login via Client-Zertifikat...

bernd authored 15 years ago

1) <?php
2) require_once('session/start.php');
3) require_once('x509.php');
4) 
bernd Ermögliche Client-Cert-Logi...

bernd authored 12 years ago

5) require_role(array(ROLE_SYSTEMUSER, ROLE_SUBUSER, ROLE_VMAIL_ACCOUNT));
bernd Login via Client-Zertifikat...

bernd authored 15 years ago

6) 
7) 
8) if ($_GET['action'] == 'new')
9) {
10)   check_form_token('clientcert_add');
11)   if (! isset($_SESSION['clientcert_cert']))
12)     system_failure('Kein Zertifikat');
13)   
14)   add_clientcert($_SESSION['clientcert_cert'], $_SESSION['clientcert_dn'], $_SESSION['clientcert_issuer']);
15) 
16)   // Räume session auf
17)   unset($_SESSION['clientcert_cert']);
18)   unset($_SESSION['clientcert_dn']);
19)   unset($_SESSION['clientcert_issuer']);
20)   header('Location: cert');
21) }
22) elseif ($_GET['action'] == 'delete')
23) {
24)   $cert = get_cert_by_id($_GET['id']);
25)   if (! $cert)
26)     system_failure('no ID');
bernd Ermögliche Client-Cert-Logi...

bernd authored 12 years ago

27)   $username = NULL;
28)   if ($_SESSION['role'] == ROLE_SYSTEMUSER) {
29)     $username = $_SESSION['userinfo']['username'];
30)     if (isset($_SESSION['subuser']))
31)       $username = $_SESSION['subuser'];
32)   } elseif ($_SESSION['role'] == ROLE_VMAIL_ACCOUNT) {
33)     $username = $_SESSION['mailaccount'];
34)   }
35)   if (! ($cert['username'] == $username))
bernd Login via Client-Zertifikat...

bernd authored 15 years ago

36)     system_failure('Das Zertifikat ist nicht für Ihren Zugang eingerichtet');
37)   $sure = user_is_sure();
38)   if ($sure === NULL)
39)   {
bernd * alle internen Links sinnv...

bernd authored 15 years ago

40)     are_you_sure("action=delete&id={$cert['id']}", "Möchten Sie das Zertifikat »{$cert['dn']}« wirklich löschen?");