42 |
select id, site_id, uid, password, `primary` |
select id, site_id, uid, password, `primary` |
43 |
from user where site_id = %d |
from user where site_id = %d |
44 |
""" |
""" |
|
|
|
45 |
site_list = [] |
site_list = [] |
46 |
sites = db.cursor() |
sites = db.cursor() |
47 |
sites.execute(q_sites) |
sites.execute(q_sites) |
56 |
port=port, |
port=port, |
57 |
location=location, |
location=location, |
58 |
user_list=user_list)) |
user_list=user_list)) |
|
#print 'site ' + name + ' grants access to ' + user_list.__repr__() |
|
|
|
|
59 |
simple.SimplePwDB.__init__(self, site_list) |
simple.SimplePwDB.__init__(self, site_list) |
60 |
|
|
61 |
# def __del__(self): |
#def __del__(self): |
62 |
# db.close() |
# db.close() |
63 |
|
|
64 |
|
################## functions for script/add_profile ##################### |
65 |
|
|
66 |
def list_profiles(self): |
def list_profiles(self): |
67 |
q_getprofile = """ |
q_getprofile = """ |
97 |
profile.execute(q_addprofile % name) |
profile.execute(q_addprofile % name) |
98 |
profile.close() |
profile.close() |
99 |
return 1 |
return 1 |
100 |
|
|
101 |
|
################ functions for scripts/add_group ######################## |
102 |
|
|
103 |
def list_groups(self): |
def list_groups(self): |
104 |
q_getgroup = """ |
q_getgroup = """ |
105 |
select id, name from sgroup |
select id, name from sgroup |
134 |
group.execute(q_addgroup % name) |
group.execute(q_addgroup % name) |
135 |
group.close() |
group.close() |
136 |
return 1 |
return 1 |
137 |
|
|
138 |
|
################ functions for scripts/add_site ####################### |
139 |
|
|
140 |
|
def list_sites(self): |
141 |
|
q_listsite = """ |
142 |
|
select id, name, ip_address, port, location from site |
143 |
|
""" |
144 |
|
site = db.cursor() |
145 |
|
site.execute(q_listsite) |
146 |
|
p = [] |
147 |
|
for id, name, ip_address, port, location in site.fetchall(): |
148 |
|
p.append({ 'id': id, 'name': name, 'ip': ip_address, 'port': port, 'location': location }) |
149 |
|
site.close() |
150 |
|
return p |
151 |
|
|
152 |
|
def get_site_for_script(self, name): |
153 |
|
q_getsite = """ |
154 |
|
select id, name, ip_address, port, location from site where name = '%s' |
155 |
|
""" |
156 |
|
site = db.cursor() |
157 |
|
site.execute(q_getsite % name) |
158 |
|
p = site.fetchone() |
159 |
|
if not p or not len(p): |
160 |
|
return None |
161 |
|
site.close() |
162 |
|
return { 'id': p[0], 'name': p[1], 'ip_address': p[2], 'port': p[3], 'location': p[4] } |
163 |
|
|
164 |
|
def add_site(self, name, ip_address, port, location): |
165 |
|
q_addsite = """ |
166 |
|
insert into site (name, ip_address, port, location) values ('%s','%s',%d,'%s') |
167 |
|
""" |
168 |
|
if self.get_site_for_script(name): |
169 |
|
return None |
170 |
|
site = db.cursor() |
171 |
|
site.execute(q_addsite % (name, ip_address, port, location)) |
172 |
|
site.close() |
173 |
|
return 1 |
174 |
|
|
175 |
|
################## functions for scripts/add_user ##################### |
176 |
|
|
177 |
|
def list_users(self): |
178 |
|
q_listuser = """ |
179 |
|
select site_id, uid, password, `primary` from user |
180 |
|
""" |
181 |
|
site = db.cursor() |
182 |
|
site.execute(q_listuser) |
183 |
|
p = [] |
184 |
|
for site_id, uid, password, primary in site.fetchall(): |
185 |
|
p.append({ 'uid': uid, 'site_id': site_id, 'password': password, 'primary': primary }) |
186 |
|
site.close() |
187 |
|
return p |
188 |
|
|
189 |
|
def get_users(self, uid): |
190 |
|
q_getuser = """ |
191 |
|
select site_id, uid, password, `primary` from user where uid = '%s' |
192 |
|
""" |
193 |
|
user = db.cursor() |
194 |
|
user.execute(q_getuser % uid) |
195 |
|
p = user.fetchone() |
196 |
|
if not p or not len(p): |
197 |
|
return None |
198 |
|
user.close() |
199 |
|
return { 'site_id': p[0], 'uid': p[1], 'password': p[2], 'primary': p[3] } |
200 |
|
|
201 |
|
def add_user(self, uid, site_id, password, primary): |
202 |
|
q_adduser = """ |
203 |
|
insert into user (uid, site_id, password, `primary`) values ('%s','%s','%s',%d) |
204 |
|
""" |
205 |
|
if self.get_users(uid): |
206 |
|
return None |
207 |
|
user = db.cursor() |
208 |
|
user.execute(q_adduser % (uid, site_id, password, primary)) |
209 |
|
user.close() |
210 |
|
return 1 |
211 |
|
|
212 |
|
################### functions for scripts/add_login ############# |
213 |
|
|
214 |
|
def list_logins(self): |
215 |
|
q_listlogin = """ |
216 |
|
select uid, password, `key` from login |
217 |
|
""" |
218 |
|
site = db.cursor() |
219 |
|
site.execute(q_listlogin) |
220 |
|
p = [] |
221 |
|
for uid, password, key in site.fetchall(): |
222 |
|
p.append({ 'uid': uid, 'password': password, 'key': key }) |
223 |
|
site.close() |
224 |
|
return p |
225 |
|
|
226 |
|
def get_logins(self, uid): |
227 |
|
q_getlogin = """ |
228 |
|
select uid, password, `key` from login where uid = '%s' |
229 |
|
""" |
230 |
|
login = db.cursor() |
231 |
|
login.execute(q_getlogin % uid) |
232 |
|
p = login.fetchone() |
233 |
|
if not p or not len(p): |
234 |
|
return None |
235 |
|
login.close() |
236 |
|
return { 'uid': p[0], 'password': p[1], 'key': p[2] } |
237 |
|
|
238 |
|
def add_login(self, uid, password, key): |
239 |
|
q_addlogin = """ |
240 |
|
insert into login (uid, password, `key`) values ('%s','%s','%s') |
241 |
|
""" |
242 |
|
if self.get_logins(uid): |
243 |
|
return None |
244 |
|
login = db.cursor() |
245 |
|
login.execute(q_addlogin % (uid, password, key)) |
246 |
|
login.close() |
247 |
|
return 1 |
248 |
|
|
249 |
|
######### functions for link scripts/add_login_profile ############### |
250 |
|
|
251 |
|
def list_login_prof(self): |
252 |
|
q_list = """ |
253 |
|
select login_id, profile_id from login_profile |
254 |
|
""" |
255 |
|
lists = db.cursor() |
256 |
|
lists.execute(q_list) |
257 |
|
p = [] |
258 |
|
for login_id,profile_id in lists.fetchall(): |
259 |
|
p.append({ 'login_id': login_id, 'profile_id': profile_id }) |
260 |
|
lists.close() |
261 |
|
return p |
262 |
|
|
263 |
|
def add_login_prof(self, login_id, profile_id): |
264 |
|
q_addlogin = """ |
265 |
|
insert into login_profile (login_id, profile_id) values (%d,%d) |
266 |
|
""" |
267 |
|
login = db.cursor() |
268 |
|
login.execute(q_addlogin % (login_id, profile_id)) |
269 |
|
login.close() |
270 |
|
return 1 |
271 |
|
|
272 |
|
|
273 |
|
######### functions for link scripts/add_profile_sgroup ############### |
274 |
|
|
275 |
|
def list_prof_group(self): |
276 |
|
q_list = """ |
277 |
|
select profile_id, sgroup_id from profile_sgroup |
278 |
|
""" |
279 |
|
lists = db.cursor() |
280 |
|
lists.execute(q_list) |
281 |
|
p = [] |
282 |
|
for profile_id,sgroup_id in lists.fetchall(): |
283 |
|
p.append({ 'profile_id': profile_id, 'sgroup_id': sgroup_id }) |
284 |
|
lists.close() |
285 |
|
return p |
286 |
|
|
287 |
|
def add_prof_group(self, profile_id, sgroup_id): |
288 |
|
q_addlogin = """ |
289 |
|
insert into profile_sgroup (profile_id,sgroup_id) values (%d,%d) |
290 |
|
""" |
291 |
|
login = db.cursor() |
292 |
|
login.execute(q_addlogin % (profile_id, sgroup_id)) |
293 |
|
login.close() |
294 |
|
return 1 |
295 |
|
|
296 |
|
|
297 |
|
######### functions for link scripts/add_sgroup_site ############### |
298 |
|
|
299 |
|
def list_group_site(self): |
300 |
|
q_list = """ |
301 |
|
select sgroup_id,site_id from sgroup_site |
302 |
|
""" |
303 |
|
lists = db.cursor() |
304 |
|
lists.execute(q_list) |
305 |
|
p = [] |
306 |
|
for sgroup_id,site_id in lists.fetchall(): |
307 |
|
p.append({ 'sgroup_id': sgroup_id, 'site_id': site_id }) |
308 |
|
lists.close() |
309 |
|
return p |
310 |
|
|
311 |
|
def add_group_site(self, sgroup_id, site_id): |
312 |
|
q_addlogin = """ |
313 |
|
insert into sgroup_site (sgroup_id, site_id) values (%d,%d) |
314 |
|
""" |
315 |
|
login = db.cursor() |
316 |
|
login.execute(q_addlogin % (sgroup_id, site_id)) |
317 |
|
login.close() |
318 |
|
return 1 |
319 |
|
|
320 |
|
|
321 |
|
####################################################################### |
322 |
|
|
323 |
def is_allowed(self, username, password=None, key=None): |
def is_allowed(self, username, password=None, key=None): |
324 |
"""Check is a user is allowed to connect to the proxy.""" |
"""Check is a user is allowed to connect to the proxy.""" |