1from conans.errors import ConanException 2 3 4def users_list(localdb, remotes): 5 if not remotes: 6 raise ConanException("No remotes defined") 7 8 remotes_info = [] 9 for remote in remotes: 10 user_info = {} 11 user, token, _ = localdb.get_login(remote.url) 12 user_info["name"] = remote.name 13 user_info["user_name"] = user 14 user_info["authenticated"] = True if token else False 15 remotes_info.append(user_info) 16 return remotes_info 17 18 19def token_present(localdb, remote, user): 20 current_user, token, _ = localdb.get_login(remote.url) 21 return token is not None and (user is None or user == current_user) 22 23 24def users_clean(localdb): 25 localdb.clean() 26 27 28def user_set(localdb, user, remote_name=None): 29 if user.lower() == "none": 30 user = None 31 return update_localdb(localdb, user, token=None, refresh_token=None, remote=remote_name) 32 33 34def update_localdb(localdb, user, token, refresh_token, remote): 35 previous_user = localdb.get_username(remote.url) 36 localdb.store(user, token, refresh_token, remote.url) 37 return remote.name, previous_user, user 38