/// <summary> /// Initializes a new instance of the <see cref="Terradue.Tep.WebServer.WebUserTep"/> class. /// </summary> /// <param name="entity">Entity.</param> public WebUserTep(IfyWebContext context, UserTep entity, bool umsso = false) : base(entity) { if (umsso) { AuthenticationType umssoauthType = IfyWebContext.GetAuthenticationType(typeof(UmssoAuthenticationType)); var umssoUser = umssoauthType.GetUserProfile(context, HttpContext.Current.Request, false); if (umssoUser != null) { this.UmssoEmail = umssoUser.Email; } } //only current user can know the api key if (context.UserId == entity.Id) { this.ApiKey = entity.ApiKey; this.T2ProfileError = HttpContext.Current.Session["t2profileError"] as string; if ((string.IsNullOrEmpty(entity.Affiliation) || string.IsNullOrEmpty(entity.Country) || string.IsNullOrEmpty(entity.FirstName) || string.IsNullOrEmpty(entity.LastName))) { this.T2ProfileError += (string.IsNullOrEmpty(this.T2ProfileError) ? "" : "\n") + "Profile not complete"; } this.T2ApiKey = entity.GetSessionApiKey(); } if (context.UserId == entity.Id || context.UserLevel == UserLevel.Administrator) { this.T2Username = entity.TerradueCloudUsername; if (context.GetConfigBooleanValue("accounting-enabled")) { this.Balance = entity.GetAccountingBalance(); } this.Roles = GetUserCommunityRoles(context, entity); if (context.UserLevel == UserLevel.Administrator) { if (entity.RegistrationDate == DateTime.MinValue) { entity.LoadRegistrationInfo(); } this.RegistrationDate = entity.RegistrationDate; } } else { this.Email = null; this.Affiliation = null; this.Level = 0; this.AccountStatus = 0; this.DomainId = null; } }