private IEnumerable <string> GetRoleNamesFor(EKontoUserSession eKontoUserSession) { var roles = new List <string>(); if (IsDeanEmployee(eKontoUserSession)) { roles.Add("Dean"); } else if (IsPromoter(eKontoUserSession.user)) { roles.Add("Promoter"); } return(roles); }
private async Task <User> CreateOrUpdateUserFrom(EKontoUserSession eKontoUserSession) { var eKontoUser = eKontoUserSession.user; var roleNames = GetRoleNamesFor(eKontoUserSession); var existingUser = await _userManager.FindByIdAsync(eKontoUser.id.ToString()); if (existingUser == null) { return(await CreateUserFrom(eKontoUser, roleNames)); } else { return(await UpdateUser(existingUser, eKontoUser, roleNames)); } }
private bool IsDeanEmployee(EKontoUserSession eKontoUserSession) { if (eKontoUserSession.user.loginDomain != "put.poznan.pl") { return(false); } var userEKontoGroups = _eKontoClient.GetUserGroups(eKontoUserSession.identifier); foreach (var eKontoGroup in userEKontoGroups) { if (DeaneryEKontoGroupIds.ContainsKey(eKontoGroup.id)) { return(true); } } return(false); }