33import logging
44
55logging .basicConfig (level = logging .INFO )
6- logger = logging .getLogger (__name__ )
7-
8- class unipyAccess :
9- def __init__ (self , baseUrl , username , password , verify ):
10- self .baseUrl = baseUrl
6+ unifi_headers = {}
7+ class UnipyAccess :
8+ def __init__ (self , base_url , username , password , verify ):
9+ self .base_url = base_url
1110 self .username = username
1211 self .password = password
13- self .verify = True if verify is None else eval (verify )
14- self .tokenCookie = None
15- self .xCsrfToken = None
12+ self .verify = True if verify is None else eval (verify )
13+ self .token_cookie = None
14+ self .csrf_token = None
1615 self ._login ()
1716
1817 def _login (self ):
19- if self .verify == False :
18+ if not self .verify :
2019 requests .packages .urllib3 .disable_warnings (requests .packages .urllib3 .exceptions .InsecureRequestWarning )
21-
20+
2221 # API call to login
23- login_url = f"{ self .baseUrl } /api/auth/login"
22+ login_url = f"{ self .base_url } /api/auth/login"
2423 login_payload = {
2524 "username" : self .username ,
2625 "password" : self .password ,
@@ -29,7 +28,7 @@ def _login(self):
2928 }
3029 login_headers = {
3130 'content-type' : 'application/json' ,
32- 'origin' : self .baseUrl
31+ 'origin' : self .base_url
3332 }
3433
3534 # Using requests.Session to manage cookies and future requests
@@ -38,66 +37,67 @@ def _login(self):
3837 response .raise_for_status () # Automatically raise exception for HTTP errors
3938
4039 # Extract TOKEN cookie and x-csrf-token
41- self .tokenCookie = session .cookies .get ('TOKEN' )
42- self .xCsrfToken = response .headers .get ('x-csrf-token' )
40+ self .token_cookie = session .cookies .get ('TOKEN' )
41+ self .csrf_token = response .headers .get ('x-csrf-token' )
4342
44- if not self .tokenCookie or not self .xCsrfToken :
43+ if not self .token_cookie or not self .csrf_token :
4544 raise ValueError ("Error: TOKEN cookie or x-csrf-token not found in the login response" )
4645
4746 # Global headers for future requests
48- global unifiHeaders
49- unifiHeaders = {
47+ global unifi_headers
48+ unifi_headers = {
5049 'accept' : 'application/json, text/plain, */*' ,
5150 'content-type' : 'application/json' ,
52- 'origin' : self .baseUrl ,
53- 'x-csrf-token' : self .xCsrfToken ,
54- 'Cookie' : f'TOKEN={ self .tokenCookie } '
51+ 'origin' : self .base_url ,
52+ 'x-csrf-token' : self .csrf_token ,
53+ 'Cookie' : f'TOKEN={ self .token_cookie } '
5554 }
5655
57- def getUnifiUsers (self ):
58- response = requests .get (self .baseUrl + " /proxy/access/api/v2/users" , headers = unifiHeaders , verify = self .verify )
59- parsedData = json .loads (response .text .replace ("'" , '"' ))
60- return parsedData
56+ def get_unifi_users (self ):
57+ response = requests .get (f" { self .base_url } /proxy/access/api/v2/users" , headers = unifi_headers , verify = self .verify )
58+ parsed_data = json .loads (response .text .replace ("'" , '"' ))
59+ return parsed_data
6160
62- def createUnifiUsers (self , users ):
61+ def create_unifi_users (self , users ):
6362 for user in users :
6463 payload = json .dumps ({
6564 "first_name" : user ["first_name" ],
6665 "last_name" : user ["last_name" ],
6766 "employee_number" : str (user ["PersonId" ]) if user ["PersonId" ] is not None else "" ,
68- "group_ids" : user [ "group_ids" ] if "group_ids" in user else []
67+ "group_ids" : user . get ( "group_ids" , [])
6968 })
7069 if user ["first_name" ] and user ["last_name" ]:
71- response = requests .post (f'{ self .baseUrl + ": /proxy/access/api/v2/user" } ' , headers = unifiHeaders , data = payload , verify = self .verify )
72- logger .info (f'Trying to create user { user ["first_name" ]} { user ["last_name" ]} : { response .text } ' )
70+ response = requests .post (f'{ self .base_url } /proxy/access/api/v2/user' , headers = unifi_headers , data = payload , verify = self .verify )
71+ logging .info (f'Trying to create user { user ["first_name" ]} { user ["last_name" ]} : { response .text } ' )
7372
74- def deactivateUnifiUsers (self , users ):
73+ def deactivate_unifi_users (self , users ):
7574 for user in users :
76- response = requests .put (f'{ self .baseUrl + ": /proxy/access/ulp-go/api/v2/user" } /{ user ["id" ]} /deactivate?isULP=1' , headers = unifiHeaders , verify = self .verify )
77- logger .info (f'Deactivated user { user ["id" ]} : { response .text } ' )
75+ response = requests .put (f'{ self .base_url } /proxy/access/ulp-go/api/v2/user/{ user ["id" ]} /deactivate?isULP=1' , headers = unifi_headers , verify = self .verify )
76+ logging .info (f'Deactivated user { user ["id" ]} : { response .text } ' )
7877
79- def activateUnifiUsers (self , users ):
78+ def activate_unifi_users (self , users ):
8079 for user in users :
81- response = requests .put (f'{ self .baseUrl + ":/proxy/access/ulp-go/api/v2/user" } /{ user ["id" ]} /active?isULP=1' , headers = unifiHeaders , verify = self .verify )
82- logger .info (f'Activated user { user ["id" ]} : { response .text } ' )
80+ response = requests .put (f'{ self .base_url } /proxy/access/ulp-go/api/v2/user/{ user ["id" ]} /active?isULP=1' ,
81+ headers = unifi_headers , verify = self .verify )
82+ logging .info (f'Activated user { user ["id" ]} : { response .text } ' )
8383
84- def deleteUnifiUsers (self , users ):
84+ def delete_unifi_users (self , users ):
8585 for user in users :
86- response = requests .delete (f'{ self .baseUrl + ": /proxy/access/ulp-go/api/v2/user" } /{ user ["id" ]} ?isULP=1' , headers = unifiHeaders , verify = self .verify )
87- logger .info (f'Deleted user { user ["id" ]} : { response .text } ' )
86+ response = requests .delete (f'{ self .base_url } /proxy/access/ulp-go/api/v2/user/{ user ["id" ]} ?isULP=1' ,headers = unifi_headers , verify = self .verify )
87+ logging .info (f'Deleted user { user ["id" ]} : { response .text } ' )
8888
89- def setUsersGroup (self , users ):
89+ def set_users_group (self , users ):
9090 # API call to update user group
9191 for user in users :
9292 try :
93- user_url = f"{ self .baseUrl } /proxy/access/api/v2/user/{ user ['id' ]} "
93+ user_url = f"{ self .base_url } /proxy/access/api/v2/user/{ user ['id' ]} "
9494 user_payload = json .dumps ({
9595 "group_ids" : [user ["group" ]]
9696 })
97- response = requests .put (user_url , headers = unifiHeaders , data = user_payload , verify = self .verify )
97+ response = requests .put (user_url , headers = unifi_headers , data = user_payload , verify = self .verify )
9898 if response .status_code == 200 :
99- logger .info (f"Updated user group for { user ['id' ]} " )
99+ logging .info (f"Updated user group for { user ['id' ]} " )
100100 else :
101101 raise Exception (f"Failed to update user group with status code { response .status_code } : { response .text } " )
102102 except Exception as e :
103- logger .error (f"Error updating group for user { user ['id' ]} : { e } " )
103+ logging .error (f"Error updating group for user { user ['id' ]} : { e } " )
0 commit comments