set token types
[ga4php.git] / authserver / www / admin_actions.php
1 <?php 
2 require_once("../lib/authClient.php");
3
4 $myAC = new GAAuthClient();
5
6 session_start();
7
8 if(isset($_SESSION["loggedin"])) if($_SESSION["loggedin"]) $loggedin = true;
9 else $loggedin = false;
10
11 if(isset($_REQUEST["action"])) {
12         switch($_REQUEST["action"]) {
13                 case "customtoken":
14                         $ttype = $_REQUEST["tokentype"];
15                         $tkey = $_REQUEST["tokenkey"];
16                         $username = $_REQUEST["username"];
17                         $ret1 = $myAC->setUserTokenType($username, $ttype);
18                         $ret2 = $myAC->setUserToken($username, $tkey);
19                         error_log("got, $ret1, $ret2...");
20                         break;
21                 case "synctoken":
22                         $username = $_REQUEST["username"];
23                         $tokenone = $_REQUEST["tokenone"];
24                         $tokentwo = $_REQUEST["tokentwo"];
25                         $retval = $myAC->syncUserToken($username, $tokenone, $tokentwo);
26                         error_log("retval: $retval");
27                         if($retval) {
28                                 header("Location: ?message=".urlencode("token synced"));
29                                 exit(0);
30                         } else {
31                                 header("Location: ?error=".urlencode("token not synced"));
32                                 exit(0);
33                         }
34                         
35                         break;
36                 case "recreatehotptoken":
37                         $username = $_REQUEST["username"];
38                         $myAC->addUser($username, "HOTP");
39                         header("Location: ?message=".urlencode("seemed to work?"));
40                         break;
41                 case "recreatetotptoken":
42                         $username = $_REQUEST["username"];
43                         $myAC->addUser($username, "TOTP");
44                         header("Location: ?message=".urlencode("seemed to work?"));
45                         break;
46                 case "deletetoken":
47                         $username = $_REQUEST["username"];
48                         $myAC->deleteUserToken($username);
49                         header("Location: ?message=".urlencode("seemed to work?"));
50                         break;
51                 case "edituser":
52                         $username = $_REQUEST["username"];
53                         if($_REQUEST["original_real"] != $_REQUEST["realname"]) {
54                                 $myAC->setUserRealName($username, $_REQUEST["realname"]);
55                         }
56                         if($_REQUEST["password"] != "") {
57                                 if($_REQUEST["password"]!=$_REQUEST["password_conf"]) {
58                                         header("Location: ?message=confirmfalse");
59                                 } else {
60                                         $myAC->setUserPass($username, $_REQUEST["password"]);
61                                 }
62                         }
63                         break;
64                 case "login":
65                         $username = $_REQUEST["username"];
66                         $password = $_REQUEST["password"];
67                         
68                         if($myAC->authUserPass($username, $password)) {
69                                 $_SESSION["loggedin"] = true;
70                                 $_SESSION["username"] = $username;
71                                 header("Location: admin.php");
72                         } else {
73                                 header("Location: admin.php?error=".urlencode("Login Failed"));
74                         }
75                         
76                         exit(0);
77                         break;
78                 case "logout":
79                         $_SESSION["loggedin"] = false;
80                         $_SESSION["username"] = "";
81                         header("Location: admin.php");
82                         exit(0);
83                         break;
84                 case "createuser":
85                         $username = $_REQUEST["username"];
86                         $users = explode(",",$username);
87                         foreach($users as $user) {
88                                 $user = trim($user);
89                                 error_log("createing, $user\n");
90                                 if($user != "" && strlen($user)>2) $myAC->addUser($user);
91                         }
92                         header("Location: admin.php");
93                         exit(0);
94                         break;
95                 case "update":
96                         error_log("would update");
97                         $err = print_r($_REQUEST, true);
98                         error_log("req: $err\n");
99                         $username = $_REQUEST["username"];
100                         if($_REQUEST["realname"]!="") {
101                                 $myAC->setUserRealName($username, $_REQUEST["realname"]);
102                         }
103                         if($_REQUEST["password"]!= "") {
104                                 $myAC->setUserPass($username, $_REQUEST["password"]);
105                         }
106                         break;
107                 case "delete":
108                         $username = $_REQUEST["username"];
109                         $myAC->deleteUser($username);
110                         break;
111                 case "deletepass":
112                         $username = $_REQUEST["username"];
113                         $myAC->setUserPass($username, "");
114                         break;
115                 case "getotkimg":
116                         $otk = $_REQUEST["otk"];
117                         $username = $_REQUEST["username"];
118                         error_log("requesting otk, $otk");
119                         $otk_img = $myAC->getOtkPng($username,$otk);
120                         header("Content-type: image/png");
121                         echo $otk_img;
122                         exit(0);
123                         break;
124         }
125 }
126 ?>