|
7 | 7 | import getopt |
8 | 8 | import urllib.error |
9 | 9 | import urllib.request |
| 10 | +import requests |
10 | 11 | import comanage_utils as utils |
11 | 12 |
|
12 | 13 |
|
13 | 14 | SCRIPT = os.path.basename(__file__) |
14 | 15 | ENDPOINT = "https://registry-test.cilogon.org/registry/" |
| 16 | +TOPOLOGY_ENDPOINT = "https://topology.opensciencegrid.org/" |
15 | 17 | LDAP_SERVER = "ldaps://ldap-test.cilogon.org" |
16 | 18 | LDAP_USER = "uid=registry_user,ou=system,o=OSG,o=CO,dc=cilogon,dc=org" |
17 | 19 | OSG_CO_ID = 8 |
@@ -203,26 +205,10 @@ def get_co_api_data(): |
203 | 205 |
|
204 | 206 |
|
205 | 207 | def get_osguser_groups(filter_group_name=None): |
206 | | - project_osggids_to_name = get_co_api_data() |
207 | | - ldap_groups_members = get_ldap_group_members_dict() |
208 | | - ldap_users = utils.get_ldap_active_users(options.ldap_server, options.ldap_user, options.ldap_authtok, filter_group_name) |
209 | | - |
210 | | - active_project_osggids = set(ldap_groups_members.keys()).intersection(set(project_osggids_to_name.keys())) |
211 | | - project_to_user_map = { |
212 | | - osggid : ldap_groups_members[osggid] |
213 | | - for osggid in active_project_osggids |
214 | | - } |
215 | | - all_project_users = set( |
216 | | - username for osggid in project_to_user_map for username in project_to_user_map[osggid] |
217 | | - ) |
218 | | - all_active_project_users = all_project_users.intersection(ldap_users) |
219 | | - usernames_to_project_map = create_user_to_projects_map( |
220 | | - project_to_user_map, |
221 | | - all_active_project_users, |
222 | | - project_osggids_to_name, |
223 | | - ) |
224 | | - |
225 | | - return usernames_to_project_map |
| 208 | + ldap_users = utils.get_ldap_active_users_and_groups(options.ldap_server, options.ldap_user, options.ldap_authtok, filter_group_name) |
| 209 | + topology_projects = requests.get(f"{TOPOLOGY_ENDPOINT}/miscproject/json").json() |
| 210 | + project_names = topology_projects.keys() |
| 211 | + return {user: [p for p in groups if p in project_names] for user, groups in ldap_users.items()} |
226 | 212 |
|
227 | 213 |
|
228 | 214 | def parse_localmap(inputfile): |
|
0 commit comments