protected async Task <User.EkspertgruppeRolle> GetRoleInGroup(string id) { var user = await GetUser(); var roleInGroup = user.EkspertgruppeRoller.Select(x => new User.EkspertgruppeRolle() { EkspertgruppeId = x.EkspertgruppeId, Leder = x.Leder, Leser = x.Leser, Skriver = x.Skriver, User = new User() { Brukernavn = user.Brukernavn, Id = user.Id, ErAdministrator = user.ErAdministrator } }).FirstOrDefault(x => x.EkspertgruppeId == id); if (roleInGroup == null) { roleInGroup = new User.EkspertgruppeRolle() { EkspertgruppeId = id, Leder = false, Leser = false, Skriver = false, User = new User() { Brukernavn = user.Brukernavn, Id = user.Id, ErAdministrator = user.ErAdministrator } }; } // gi admin anledning til å låse opp vurderinger o.l. if (user.ErAdministrator) { roleInGroup.Leder = true; } return(roleInGroup); }
public async Task <bool> AddMembers([FromBody] LeggTilgang value) { var user = await base.GetUser(); if (user == null || !user.ErAdministrator) { throw new HttpRequestException("Not admin"); } var bruker = await _dbContext.Users.Include(y => y.EkspertgruppeRoller).Where(x => x.Id == value.Id) .FirstOrDefaultAsync(); if (bruker == null) { return(false); } var eid = value.EkspertgruppeId.Trim(); var medlem = bruker.EkspertgruppeRoller.FirstOrDefault(y => y.EkspertgruppeId == eid); if (medlem == null) { medlem = new User.EkspertgruppeRolle { EkspertgruppeId = eid }; bruker.EkspertgruppeRoller.Add(medlem); } medlem.DatoOpprettet = DateTime.Now; medlem.OpprettetAvBrukerId = user.Id; medlem.Leder = value.Leder; medlem.Leser = value.Leser; medlem.Skriver = value.Leder ? value.Leder : value.Skriver; await _dbContext.SaveChangesAsync(); return(true); }