public async Task SeedUserDataAsync(string actorId, string actorType, string?displayName, Dictionary <string, object?>?data = null) { if (string.IsNullOrEmpty(actorId)) { throw new ArgumentException(nameof(actorId)); } if (string.IsNullOrEmpty(actorType)) { throw new ArgumentException(nameof(actorType)); } var userData = await m_UserDataStore.GetUserDataAsync(actorId, actorType); if (userData != null) { return; // no seeding } var autoAssignRoles = new HashSet <string>(await m_PermissionRoleStore.GetAutoAssignedRolesAsync(actorId, actorType)); userData = new UserData { Data = data ?? new Dictionary <string, object?>(), Id = actorId, Type = actorType, LastSeen = DateTime.Now, FirstSeen = DateTime.Now, Permissions = new HashSet <string>(), Roles = autoAssignRoles, LastDisplayName = displayName }; await m_UserDataStore.SetUserDataAsync(userData); }
public async Task SeedUserDataAsync(string actorId, string actorType, string displayName, Dictionary <string, object> data = null) { var userData = await m_UserDataStore.GetUserDataAsync(actorId, actorType); if (userData != null) { return; // no seeding } var autoAssignRoles = new HashSet <string>(await m_PermissionRoleStore.GetAutoAssignedRolesAsync(actorId, actorType)); userData = new UserData { Data = data ?? new Dictionary <string, object>(), Id = actorId, Type = actorType, LastSeen = DateTime.Now, FirstSeen = DateTime.Now, Permissions = new HashSet <string>(), Roles = autoAssignRoles, LastDisplayName = displayName }; await m_UserDataStore.SaveUserDataAsync(userData); }
public async Task <IReadOnlyCollection <string> > GetAutoAssignedRolesAsync(string actorId, string actorType) { if (string.IsNullOrEmpty(actorId)) { throw new ArgumentException(nameof(actorId)); } if (string.IsNullOrEmpty(actorType)) { throw new ArgumentException(nameof(actorType)); } var list = new List <string>(); list.AddRange(await m_BasePermissionRoleStore.GetAutoAssignedRolesAsync(actorId, actorType)); if (RocketModIntegrationEnabled()) { // todo: add default RocketMod group } return(list); }