539ddc1e30e42ca3d04d46b2f91fd6fc4475f14c
[ga4php.git] / authserver / lib / authClient.php
1 <?php
2
3 require_once("lib.php");
4
5 class GAAuthClient {
6         
7         // this functiuon will now act as our generic send/recieve client funciton
8         // im doing this because im going to move from ipc messaging to a tcp connection
9         // shortly and i want to encapsulate the send/receive behaviour
10         // things we need to add here are:
11         // 1) a way of saying "more data coming" cause getusers wont fit into one message
12         // 2) timeouts and locking
13         function sendReceive($message_type, $message) {
14                 global $MSG_QUEUE_KEY_ID_SERVER, $MSG_QUEUE_KEY_ID_CLIENT;
15                 
16                 
17                 if(!msg_queue_exists($MSG_QUEUE_KEY_ID_SERVER)) {
18                         return false;
19                 }
20
21                 if(!msg_queue_exists($MSG_QUEUE_KEY_ID_CLIENT)) {
22                         return false;
23                 }
24                 // TODO we need to setup a client queue sem lock here
25                 
26                 $cl_queue = msg_get_queue($MSG_QUEUE_KEY_ID_CLIENT);
27                 $sr_queue = msg_get_queue($MSG_QUEUE_KEY_ID_SERVER);
28                 
29                 msg_send($sr_queue, $message_type, $message, true, true, $msg_err);
30                 msg_receive($cl_queue, 0, $msg_type, 131072, $msg);
31                 
32                 return $msg;
33         }
34         
35         function addRadiusClient($clientname, $clientip, $clientsecret, $clientdesc) {
36         
37                 $message["clientname"] = $clientname;
38                 $message["clientsecret"] = $clientsecret;
39                 $message["clientip"] = $clientip;
40                 $message["clientdescription"] = $clientdesc;
41                 
42                 return $this->sendReceive(MSG_ADD_RADIUS_CLIENT, $message);
43         }
44
45         function deleteRadiusClient($clientname) {
46                 $message["clientname"] = $clientname;
47                 
48                 return $this->sendReceive(MSG_REMOVE_RADIUS_CLIENT, $message);
49                 
50         }
51         
52         function getRadiusClients() {
53                 return $this->sendReceive(MSG_GET_RADIUS_CLIENTS, "");
54         }
55         
56         
57         function syncUserToken($username, $tokenone, $tokentwo) {
58                 $message["username"] = $username;
59                 $message["tokenone"] = $tokenone;
60                 $message["tokentwo"] = $tokentwo;
61
62                 return $this->sendReceive(MSG_SYNC_TOKEN, $messgae);
63         }
64         
65         function getUserTokenType($username) {
66                 $message["username"] = $username;
67
68                 return $this->sendReceive(MSG_GET_TOKEN_TYPE, $message);                
69         }
70         
71         function setUserToken($username, $token) {
72                 $message["username"] = $username;
73                 $message["tokenstring"] = $token;
74                 
75                 return $this->sendReceive(MSG_GET_USER_TOKEN, $message);                
76         }
77         
78         function setUserPass($username, $password) {
79                 $message["username"] = $username;
80                 $message["password"] = $password;
81                 
82                 return $this->sendReceive(MSG_SET_USER_PASSWORD, $message);
83         }
84         
85         function getOtkID($username) {
86                 $message["username"] = $username;
87
88                 return $this->sendReceive(MSG_GET_OTK_ID, $message);
89         }
90         
91         function getOtkPng($username, $otk) {
92                 $message["otk"] = $otk;
93                 $message["username"] = $username;
94
95                 return $this->sendReceive(MSG_GET_OTK_PNG, $message);
96         }
97         
98         function authUserPass($username, $password) {
99                 $message["username"] = $username;
100                 $message["password"] = $password;
101                 
102                 return $this->sendReceive(MSG_AUTH_USER_PASSWORD, $message);            
103         }
104         
105         function deleteUser($username) {
106                 $message["username"] = $username;
107                 
108                 return $this->sendReceive(MSG_DELETE_USER, $message);
109         }
110         
111         function setUserRealName($username, $realname) {
112                 $message["username"] = $username;
113                 $message["realname"] = $realname;
114                 
115                 return $this->sendReceive(MSG_SET_USER_REALNAME, $message);             
116         }
117         
118         function getUsers() {
119                 return $this->sendReceive(MSG_GET_USERS, "");
120         }
121         
122         function authUserToken($username, $passcode) {
123                 $message["username"] = $username;
124                 $message["passcode"] = $passcode;
125                 
126                 return $this->sendReceive(MSG_AUTH_USER_TOKEN, $message);
127         }
128         
129         function deleteUserToken($username) {
130                 $message["username"] = $username;
131                 
132                 return $this->sendReceive(MSG_DELETE_USER_TOKEN, $message);
133         }
134         
135         function addUser($username, $tokentype="", $hexkey="") {
136                 $message["username"] = $username;
137                 if($tokentype!="") $message["tokentype"] = $tokentype;
138                 if($hexkey!="") $message["hexkey"] = $hexkey;
139                 
140                 return $this->sendReceive(MSG_ADD_USER_TOKEN, $message);
141         }
142
143         function setUserTokenType($username, $tokentype) {
144                 $message["username"] = $username;
145                 $message["tokentype"] = $tokentype;
146                 
147                 return $this->sendReceive(MSG_SET_USER_TOKEN_TYPE, $message);
148         }
149 }
150
151 ?>