d19fa54838a69c5af053080f517e3aa8bcb9cad8
[ga4php.git] / authserver / usercmd.php
1 <?php
2 /*
3  * 
4  * 
5  * This file is designed as a "script" extension to freeradius (or some such tool) for radius authentication.
6  * Also provided is a simple web interface for managing users in freeradius.
7  * 
8  * The simple web interface should also provide a mechanism for configuring freeradius itself
9  * 
10  */
11
12 require_once("lib/authClient.php");
13
14 $myAC = new GAAuthClient();
15
16 /*
17 define("MSG_AUTH_USER_TOKEN", 1);
18 define("MSG_ADD_USER_TOKEN", 2);
19 define("MSG_DELETE_USER", 3);
20 define("MSG_AUTH_USER_PASSWORD", 4);
21 define("MSG_SET_USER_PASSWORD", 5);
22 define("MSG_SET_USER_REALNAME", 6);
23 define("MSG_SET_USER_TOKEN", 7);
24 define("MSG_SET_USER_TOKEN_TYPE", 8);
25
26  */
27 if(!isset($argv[1])) {
28         echo "Usage: ".$argv[0]." command username [args]\n";
29         echo "\tadd: add <username> - returns token code url\n";
30         echo "\tauth: auth <username> <passcode> - returns 0/1 for pass/fail\n";
31         echo "\tdelete: delete <username> - deletes user\n";
32         echo "\tauthpass: authpass <username> <password> - returns 0/1 for pass/fail\n";
33         echo "\tsetpass: setpass <username> <password> - sets a password for a user (x to remove pass)\n";
34         echo "\tsetname: setname <username> <realname> - sets the real name for a user\n";
35         echo "\tsettoken: settoken <username> <tokenkey> - sets the key (hex) for a token\n";
36         echo "\tsettype: settype <username> <tokentype> - sets a token type for a user\n";
37         echo "\tgetusers: getusers - gets a list of users\n";
38         echo "\tgetotk: getotk <username> - gets the OTKID for a key\n";
39         echo "\tradauth: radauth <username> <pin> - for radius, only returns a code\n";
40         return 0;       
41 }
42
43 switch($argv[1]) {
44         case "radauth":
45                 if($myAC->authUserToken($argv[2], $argv[3])==1) {
46                         return 0;
47                 } else {
48                         return 255;
49                 }
50                 break;
51         case "getotk":
52                 $val = $myAC->getOtkID($argv[2]);
53                 if($val === false) {
54                         echo "Failure\n";
55                 } else {
56                         echo "$val\n";
57                 }
58                 break;
59         case "auth":
60                 if($myAC->authUserToken($argv[2], $argv[3])==1) {
61                         echo "Pass!\n";
62                 } else {
63                         echo "Fail!\n";
64                 }
65                 break;
66         case "add":
67                 $return = $myAC->addUser($argv[2]);
68                 echo "Created user, ".$argv[2]." returned $return\n";
69                 break;
70         case "delete":
71                 $res = $myAC->deleteUser($argv[2]);
72                 if($res) {
73                         echo "Deleted\n";
74                 } else {
75                         echo "Failure?\n";
76                 }
77                 break;
78         case "authpass":
79                 $ret = $myAC->authUserPass($argv[2], $argv[3]);
80                 if($ret) echo "Authenticated\n";
81                 else echo "Failed\n";
82                 break;
83         case "setpass":
84                 $res = $myAC->setUserPass($argv[2], $argv[3]);
85                 if($res) echo "Password Set\n";
86                 else echo "Failure?\n";
87                 break;
88         case "setname":
89                 $ret = $myAC->setUserRealName($argv[2], $argv[3]);
90                 if($ret) echo "Real Name Set\n";
91                 else echo "Failure?\n";
92                 break;
93         case "settoken":
94                 $ret = $myAC->setUserToken($argv[2], $argv[3]);
95                 if($ret) echo "Token Set\n";
96                 else echo "Failure?\n";
97                 break;
98         case "settype":
99                 $ret = $myAC->setUserTokenType($argv[2], $argv[3]);
100                 if($ret) echo "Token Type Set\n";
101                 else echo "Failure?\n";
102                 break;
103         case "getusers":
104                 $users = $myAC->getUsers();
105                 foreach($users as $user) {
106                         if($user["realname"] != "") $realname = $user["realname"];
107                         else $realname = "- Not Set -";
108                         
109                         if($user["haspass"]) $haspass = "Yes";
110                         else $haspass = "No";
111                         
112                         if($user["hastoken"]) $hastoken = "Yes";
113                         else $hastoken = "No";
114                         
115                         echo "Username: ".$user["username"]."\n";
116                         echo "\tReal Name: ".$realname."\n";
117                         echo "\tHas Password?: ".$haspass."\n";
118                         echo "\tHas Token?: ".$hastoken."\n\n";
119                 }
120                 break;
121 }
122 ?>