2020import mistapi
2121from mistapi .__api_response import APIResponse as _APIResponse
2222from mistapi .__logger import console
23+ from mistapi .__models .privilege import Privileges
2324
2425
2526###########################################
@@ -63,7 +64,7 @@ def wrapper(*args, **kwargs):
6364
6465###########################################
6566#### CLI SELECTIONS
66- def _forge_privileges (mist_session : mistapi .APISession , msp_id : str ):
67+ def _forge_privileges (mist_session : mistapi .APISession , msp_id : str ) -> Privileges :
6768 """
6869 Function to generate user privileges for Orgs belonging to a MSP Account
6970
@@ -84,11 +85,11 @@ def _forge_privileges(mist_session: mistapi.APISession, msp_id: str):
8485 custom_privileges = []
8586 for org in orgs :
8687 custom_privileges .append (mist_session .get_privilege_by_org_id (org ["id" ]))
87- return custom_privileges
88+ return Privileges ( custom_privileges )
8889
8990
9091@is_authenticated
91- def _select_msp (mist_session : mistapi .APISession ) -> list :
92+ def _select_msp (mist_session : mistapi .APISession ) -> Privileges :
9293 """
9394 Function to list all the Mist MSPs allowed for the current user
9495 and ask to pick one. Return the list org ORG privileges based
@@ -105,12 +106,10 @@ def _select_msp(mist_session: mistapi.APISession) -> list:
105106 List of ORG privileges
106107 """
107108 msp_accounts = [
108- priv
109- for priv in mist_session .privileges .privileges
110- if priv .get ("scope" ) == "msp"
109+ priv for priv in mist_session .privileges if priv .get ("scope" ) == "msp"
111110 ]
112111 if len (msp_accounts ) == 0 :
113- return mist_session .privileges . privileges
112+ return mist_session .privileges
114113 else :
115114 msp_accounts = sorted (msp_accounts , key = lambda x : x .get ("name" ).lower ())
116115 while True :
@@ -128,16 +127,16 @@ def _select_msp(mist_session: mistapi.APISession) -> list:
128127 if resp == "q" :
129128 sys .exit (0 )
130129 elif resp .lower () == "n" :
131- standalone = []
132- for priv in mist_session .privileges . privileges :
130+ standalone : list = []
131+ for priv in mist_session .privileges :
133132 msp = [
134133 msp
135134 for msp in msp_accounts
136135 if msp .get ("msp_id" ) == priv .get ("msp_id" , "xyz" )
137136 ]
138137 if not msp :
139138 standalone .append (priv )
140- return standalone
139+ return Privileges ( standalone )
141140 # return [priv for priv in mist_session.privileges if not priv.get("msp_id")]
142141 else :
143142 tested_val = _test_choice (resp , i )
@@ -172,41 +171,52 @@ def select_org(mist_session: mistapi.APISession, allow_many=False) -> list:
172171 """
173172 data = _select_msp (mist_session )
174173 data = [d for d in data if d .get ("name" )]
175- data = sorted (data , key = lambda x : x [ "name" ] .lower ())
174+ data = sorted (data , key = lambda x : x . get ( "name" ) .lower ())
176175 while True :
177176 i = - 1
178177 org_ids : list [str ] = []
179178 resp_ids : list [str ] = []
180179 print ("\r \n Available organizations:" )
181180 for privilege in data :
182- if privilege ["scope" ] == "org" and privilege ["org_id" ] not in org_ids :
181+ if (
182+ privilege .get ("scope" ) == "org"
183+ and privilege .get ("org_id" ) not in org_ids
184+ ):
183185 i += 1
184- org_ids .append (privilege [ "org_id" ] )
185- print (f"{ i } ) { privilege [ 'name' ] } (id: { privilege [ 'org_id' ] } )" )
186+ org_ids .append (privilege . get ( "org_id" ) )
187+ print (f"{ i } ) { privilege . get ( 'name' ) } (id: { privilege . get ( 'org_id' ) } )" )
186188
187189 orgs_with_sites : list [dict ] = []
188190 for privilege in data :
189- if privilege ["scope" ] == "site" and privilege ["org_id" ] not in org_ids :
190- index = _search_org (orgs_with_sites , privilege ["org_id" ])
191+ if (
192+ privilege .get ("scope" ) == "site"
193+ and privilege .get ("org_id" ) not in org_ids
194+ ):
195+ index = _search_org (orgs_with_sites , privilege .get ("org_id" ))
191196 if index is None :
192197 i += 1
193- org_ids .append (privilege ["org_id" ])
194- print (f"{ i } ) { privilege ['name' ]} (id: { privilege ['org_id' ]} )" )
198+ org_ids .append (privilege .get ("org_id" ))
199+ print (
200+ f"{ i } ) { privilege .get ('name' )} (id: { privilege .get ('org_id' )} )"
201+ )
195202 orgs_with_sites .append (
196203 {
197- "org_id" : privilege [ "org_id" ] ,
198- "name" : privilege [ "name" ] ,
204+ "org_id" : privilege . get ( "org_id" ) ,
205+ "name" : privilege . get ( "name" ) ,
199206 "sites" : [
200207 {
201- "site_id" : privilege [ "site_id" ] ,
202- "name" : privilege [ "name" ] ,
208+ "site_id" : privilege . get ( "site_id" ) ,
209+ "name" : privilege . get ( "name" ) ,
203210 }
204211 ],
205212 }
206213 )
207214 else :
208215 orgs_with_sites [index ]["sites" ].append (
209- {"site_id" : privilege ["site_id" ], "name" : privilege ["name" ]}
216+ {
217+ "site_id" : privilege .get ("site_id" ),
218+ "name" : privilege .get ("name" ),
219+ }
210220 )
211221
212222 if allow_many :
@@ -273,7 +283,7 @@ def select_site(
273283 if org_id is None :
274284 org_id = select_org (mist_session )[0 ]
275285
276- for privilege in mist_session .privileges . privileges :
286+ for privilege in mist_session .privileges :
277287 if privilege .get ("scope" ) == "org" and privilege .get ("org_id" ) == org_id :
278288 org_access = True
279289 if privilege .get ("scope" ) == "site" and privilege .get ("org_id" ) == org_id :
0 commit comments