Finish refactoring doRequestOAuth, make selected_scopes a set

This commit is contained in:
Ross Scroggs
2016-01-03 23:24:40 -08:00
parent c00d820c75
commit f35c188496

View File

@@ -8792,7 +8792,7 @@ def select_default_scopes(apis):
else: else:
scopes += api[u'auth'][u'oauth2'][u'scopes'].keys() scopes += api[u'auth'][u'oauth2'][u'scopes'].keys()
scopes.sort() scopes.sort()
selected_scopes = [] selected_scopes = set()
# reduce # of scopes by checking if a scope is a substring of another # reduce # of scopes by checking if a scope is a substring of another
# which should mean it covers same API operations. Add a . at end # which should mean it covers same API operations. Add a . at end
# to prevent things like directory.users removing directory.userschema # to prevent things like directory.users removing directory.userschema
@@ -8800,7 +8800,7 @@ def select_default_scopes(apis):
count = len(scopes) count = len(scopes)
while i < count: while i < count:
scope = scopes[i] scope = scopes[i]
selected_scopes.append(scope) selected_scopes.add(scope)
i += 1 i += 1
scope += u'.' scope += u'.'
while (i < count) and scopes[i].startswith(scope): while (i < count) and scopes[i].startswith(scope):
@@ -8838,7 +8838,7 @@ def doRequestOAuth():
all_apis[api_name][u'index'] = i all_apis[api_name][u'index'] = i
i += 1 i += 1
if GM_Globals[GM_GAMSCOPES_LIST]: if GM_Globals[GM_GAMSCOPES_LIST]:
selected_scopes = GM_Globals[GM_GAMSCOPES_LIST] selected_scopes = set(GM_Globals[GM_GAMSCOPES_LIST])
else: else:
selected_scopes = select_default_scopes(all_apis) selected_scopes = select_default_scopes(all_apis)
while True: while True:
@@ -8864,13 +8864,12 @@ def doRequestOAuth():
if selection == i: # defaults if selection == i: # defaults
selected_scopes = select_default_scopes(all_apis) selected_scopes = select_default_scopes(all_apis)
elif selection == i+1: # unselect all elif selection == i+1: # unselect all
selected_scopes = [] selected_scopes.clear()
elif selection == i+3: # continue elif selection == i+3: # continue
selected_scopes = list(set(selected_scopes)) if not selected_scopes:
GM_Globals[GM_GAMSCOPES_LIST] = selected_scopes # unique only
if len(GM_Globals[GM_GAMSCOPES_LIST]) == 0:
print u'YOU MUST SELECT AT LEAST ONE SCOPE' print u'YOU MUST SELECT AT LEAST ONE SCOPE'
continue continue
GM_Globals[GM_GAMSCOPES_LIST] = list(selected_scopes)
writeFile(GC_Values[GC_GAMSCOPES_JSON], json.dumps(GM_Globals[GM_GAMSCOPES_LIST])) writeFile(GC_Values[GC_GAMSCOPES_JSON], json.dumps(GM_Globals[GM_GAMSCOPES_LIST]))
print u'Scopes file: {0}, Created'.format(GC_Values[GC_GAMSCOPES_JSON]) print u'Scopes file: {0}, Created'.format(GC_Values[GC_GAMSCOPES_JSON])
break break
@@ -8878,18 +8877,19 @@ def doRequestOAuth():
return return
else: # select else: # select
api = all_apis.keys()[selection] api = all_apis.keys()[selection]
if len(all_apis[api][u'auth'][u'oauth2'][u'scopes']) == 1: api_scopes = all_apis[api][u'auth'][u'oauth2'][u'scopes'].keys()
one_scope = all_apis[api][u'auth'][u'oauth2'][u'scopes'].keys()[0] if len(api_scopes) == 1:
one_scope = api_scopes[0]
if one_scope in selected_scopes: if one_scope in selected_scopes:
selected_scopes.remove(one_scope) selected_scopes.remove(one_scope)
else: else:
selected_scopes.append(one_scope) selected_scopes.add(one_scope)
else: else:
while True: while True:
#os.system([u'clear', u'cls'][GM_Globals[GM_WINDOWS]]) #os.system([u'clear', u'cls'][GM_Globals[GM_WINDOWS]])
print print
x = 0 x = 0
for scope in all_apis[api][u'auth'][u'oauth2'][u'scopes'].keys(): for scope in api_scopes:
if scope in selected_scopes: if scope in selected_scopes:
select_value = u'*' select_value = u'*'
else: else:
@@ -8904,21 +8904,20 @@ def doRequestOAuth():
print print
selection = getSelection(x+4) selection = getSelection(x+4)
if selection < x: # select if selection < x: # select
if all_apis[api][u'auth'][u'oauth2'][u'scopes'].keys()[selection] in selected_scopes: if api_scopes[selection] in selected_scopes:
selected_scopes.remove(all_apis[api][u'auth'][u'oauth2'][u'scopes'].keys()[selection]) selected_scopes.remove(api_scopes[selection])
else: else:
selected_scopes.append(all_apis[api][u'auth'][u'oauth2'][u'scopes'].keys()[selection]) selected_scopes.add(api_scopes[selection])
elif selection == x: # defaults elif selection == x: # defaults
just_this_api = {api: all_apis[api]} selected_scopes = selected_scopes.difference(api_scopes)
just_this_api = select_default_scopes(just_this_api) selected_scopes = selected_scopes.union(select_default_scopes({api: all_apis[api]}))
all_apis[api][u'use_scopes'] = just_this_api[api][u'use_scopes']
elif selection == x+1: # read-only elif selection == x+1: # read-only
all_apis[api][u'use_scopes'] = [] selected_scopes = selected_scopes.difference(api_scopes)
for scope in all_apis[api][u'auth'][u'oauth2'][u'scopes'].keys(): for scope in api_scopes:
if scope.endswith(u'.readonly'): if scope.endswith(u'.readonly'):
all_apis[api][u'use_scopes'].append(scope) selected_scopes.add(scope)
elif selection == x+2: # unselect all elif selection == x+2: # unselect all
all_apis[api][u'use_scopes'] = [] selected_scopes = selected_scopes.difference(api_scopes)
elif selection == x+4: # back elif selection == x+4: # back
break break
else: # cancel else: # cancel