494545a92161fbb73f9752d8738f2824f8e5da7f
bernd Login via Client-Zertifikat...

bernd authored 15 years ago

1) <?php
2) 
3) require_once('inc/security.php');
4) 
5) function get_logins_by_cert($cert) 
6) {
7) 	$cert = mysql_real_escape_string(str_replace(array('-----BEGIN CERTIFICATE-----', '-----END CERTIFICATE-----', ' ', "\n"), array(), $cert));
8) 	$query = "SELECT type,username,startpage FROM system.clientcert WHERE cert='{$cert}'";
9) 	$result = db_query($query);
10) 	if (mysql_num_rows($result) < 1)
11) 		return NULL;
12) 	else {
13) 		$ret = array();
14) 		while ($row = mysql_fetch_assoc($result)) {
15) 			$ret[] = $row;
16) 		}
17) 		return $ret;
18) 	}
19) }
20) 
21) function get_cert_by_id($id) 
22) {
23)   $id = (int) $id;
24) 	if ($id == 0)
25) 	  system_failure('no ID');
26) 	$query = "SELECT id,dn,issuer,cert,username,startpage FROM system.clientcert WHERE `id`='{$id}' LIMIT 1";
27) 	$result = db_query($query);
28) 	if (mysql_num_rows($result) < 1)
29) 		return NULL;
30) 	$ret = mysql_fetch_assoc($result);
31)   DEBUG($ret);
32)   return $ret;
33) }
34) 
35) 
36) function get_certs_by_username($username) 
37) {
38) 	$username = mysql_real_escape_string($username);
39) 	if ($username == '')
40) 	  system_failure('empty username');
41) 	$query = "SELECT id,dn,issuer,cert,startpage FROM system.clientcert WHERE `username`='{$username}'";
42) 	$result = db_query($query);
43) 	if (mysql_num_rows($result) < 1)
44) 		return NULL;
45) 	while ($row = mysql_fetch_assoc($result)) {
46) 	  $ret[] = $row;
47) 	}
48) 	return $ret;
49) }
50) 
51) 
52) function add_clientcert($certdata, $dn, $issuer, $startpage='')
53) {
bernd Cert-Login geht jetztauch m...

bernd authored 14 years ago

54)   $type = 'user';
55)   if (isset($_SESSION['subuser']))
56)     $type = 'subuser';
bernd Login via Client-Zertifikat...

bernd authored 15 years ago

57)   $certdata = mysql_real_escape_string($certdata);
58)   $dn = maybe_null(mysql_real_escape_string($dn));
59)   $issuer = maybe_null(mysql_real_escape_string($issuer));
60)   if ($startpage &&  ! check_path($startpage))
61)     system_failure('Startseite kaputt');
62)   $startpage = maybe_null(mysql_real_escape_string($startpage));
bernd Cert-Login geht jetztauch m...

bernd authored 14 years ago

63) 
bernd Login via Client-Zertifikat...

bernd authored 15 years ago

64)   $username = mysql_real_escape_string($_SESSION['userinfo']['username']);
bernd Cert-Login geht jetztauch m...

bernd authored 14 years ago

65)   if ($type == 'subuser')
66)     $username = $_SESSION['subuser'];
bernd Login via Client-Zertifikat...

bernd authored 15 years ago

67)   if ($username == '')
68)     system_failure('Kein Username');
69) 
70)   if ($certdata == '')
71)     system_failure('Kein Zertifikat');
72)   DEBUG($certdata);
73)   DEBUG($dn);
74)   DEBUG($issuer);
75) 
76)   db_query("INSERT INTO system.clientcert (`dn`, `issuer`, `cert`, `type`, `username`, `startpage`) 
bernd Cert-Login geht jetztauch m...

bernd authored 14 years ago

77) VALUES ({$dn}, {$issuer}, '{$certdata}', '{$type}', '{$username}', {$startpage})");
bernd Login via Client-Zertifikat...

bernd authored 15 years ago

78) 
79) }
80) 
81) 
82) function delete_clientcert($id)
83) {
84)   $id = (int) $id;
85)   $username = mysql_real_escape_string($_SESSION['userinfo']['username']);
bernd Erlaube das Löschen von Cli...

bernd authored 14 years ago

86)   if (isset($_SESSION['subuser']))
87)     $username = mysql_real_escape_string($_SESSION['subuser']);