public IdentitySourceNode(IdentityProviderDto provider, string tenantName, bool systemDomain, string displayName, TenantConfigurationDto tenantConfigDto) { _provider = provider; _tenantName = tenantName; _systemDomain = systemDomain; _tenantConfigDto = tenantConfigDto; var isDefault = _tenantConfigDto.ProviderPolicy != null && _tenantConfigDto.ProviderPolicy.DefaultProvider == provider.Name; DisplayName = isDefault ? displayName + " (Default)" : displayName; IsDefaultDomain = isDefault; }
public override void Refresh(object sender, EventArgs e) { Children.Clear(); ActionHelper.Execute(delegate() { var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(_serverDto.ServerName); var service = SnapInContext.Instance.ServiceGateway; var identityProviders = service.IdentityProvider.GetAll(_serverDto, _tenantName, auth.Token); var tenantConfig = new TenantConfigurationDto(); try{ tenantConfig = service.Tenant.GetConfig(_serverDto, _tenantName, auth.Token, TenantConfigType.PROVIDER); } catch (Exception exc) { // do nothing } var systemDomains = identityProviders.Where(x => x.DomainType == DomainType.SYSTEM_DOMAIN.ToString()); if (systemDomains != null) { foreach (var provider in systemDomains) { var systemDomain = new IdentitySourceNode(provider, _tenantName, true, provider.Name + " (System Domain)", tenantConfig) { Parent = this }; systemDomain.Refresh(this, EventArgs.Empty); Children.Add(systemDomain); } } var localOsDomains = identityProviders.Where(x => x.DomainType == DomainType.LOCAL_OS_DOMAIN.ToString()); ((TenantNode)this.Parent).IsSystemTenant = (localOsDomains != null && localOsDomains.Count() > 0); if (localOsDomains != null) { foreach (var provider in localOsDomains) { var localOsDomain = new IdentitySourceNode(provider, _tenantName, false, provider.Name + " (Local OS Domain)", tenantConfig) { Parent = this }; localOsDomain.Refresh(this, EventArgs.Empty); Children.Add(localOsDomain); } } var externalDomains = identityProviders.Where(x => x.DomainType == DomainType.EXTERNAL_DOMAIN.ToString()).ToList(); var externalDomainNode = new ExternalDomainsNode(_tenantName, externalDomains) { Parent = this }; externalDomainNode.PopulateChildren(externalDomains); Children.Add(externalDomainNode); NSNotificationCenter.DefaultCenter.PostNotificationName("ReloadOutlineView", this); }); }
private void btnApply_Click(object sender, EventArgs e) { var service = SnapInContext.Instance.ServiceGateway; var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(_serverDto, _tenantName); ActionHelper.Execute(delegate() { ViewToDto(); _tenantConfigurationDto = service.Tenant.UpdateConfig(_serverDto, _tenantName, _tenantConfigurationDto, auth.Token); }, auth); }
private void RefreshView() { var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(_serverDto, _tenantName); var service = SnapInContext.Instance.ServiceGateway; ActionHelper.Execute(delegate() { _tenantConfigurationDto = service.Tenant.GetConfig(_serverDto, _tenantName, auth.Token); }, auth); propGridInput.SelectedObject = _tenantConfigurationDto; propGridInput.Refresh(); }
public void DoRefresh() { Children.Clear(); var serverDto = GetServerDto(); var tenantName = GetTenant().DisplayName; var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(serverDto, tenantName); var service = ScopeNodeExtensions.GetServiceGateway(serverDto.ServerName); ActionHelper.Execute(delegate { var roles = new List <string> { "Administrator", "RegularUser" }; if (roles.Contains(auth.Token.Role)) { var identityProviders = service.IdentityProvider.GetAll(serverDto, tenantName, auth.Token); var tenantConfig = new TenantConfigurationDto(); ActionHelper.Execute(delegate { tenantConfig = service.Tenant.GetConfig(serverDto, tenantName, auth.Token, TenantConfigType.PROVIDER); }, null); var systemDomains = identityProviders.Where(x => x.DomainType == DomainType.SYSTEM_DOMAIN.ToString()); if (systemDomains != null) { foreach (var provider in systemDomains) { var systemDomain = new IdentityProviderNode(provider, tenantName, true, provider.Name + " (System Domain)", tenantConfig); Children.Add(systemDomain); } } var localOsDomains = identityProviders.Where(x => x.DomainType == DomainType.LOCAL_OS_DOMAIN.ToString()); if (localOsDomains != null) { foreach (var provider in localOsDomains) { var localOsDomain = new IdentityProviderNode(provider, tenantName, false, provider.Name + " (Local OS Domain)", tenantConfig); Children.Add(localOsDomain); } } var externalDomains = identityProviders.Where(x => x.DomainType == DomainType.EXTERNAL_DOMAIN.ToString()).ToList(); var externalDomainNode = new ExternalDomainsNode(tenantName, externalDomains); Children.Add(externalDomainNode); } }, auth); }
private void btnApply_Click(object sender, EventArgs e) { var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(_serverDto, _tenantName); ActionHelper.Execute(delegate() { var service = ScopeNodeExtensions.GetServiceGateway(_serverDto.ServerName); service.Tenant.UpdateConfig(_serverDto, _tenantName, _tenantConfigurationDto, auth.Token); service.Tenant.UpdatePasswordAndLockoutConfig(_serverDto, _tenantName, _tenantConfigurationDto, auth.Token); _tenantConfigurationDto = service.Tenant.GetConfig(_serverDto, _tenantName, auth.Token); propGridInput.SelectedObject = _tenantConfigurationDto; propGridInput.Refresh(); }, auth); }
public void SetAsDefault(object sender, EventArgs e) { ActionHelper.Execute(delegate() { var service = SnapInContext.Instance.ServiceGateway; var serverDto = GetServerDto(); var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(serverDto.ServerName); _tenantConfigDto.ProviderPolicy = new ProviderPolicyDto { DefaultProvider = _provider.Name }; _tenantConfigDto = service.Tenant.UpdateConfig(serverDto, _tenantName, _tenantConfigDto, auth.Token, TenantConfigType.PROVIDER); IsDefaultDomain = true; DisplayName = IsDefaultDomain ? DisplayName + " (Default)" : DisplayName.Replace(" (Default)", string.Empty); ((IdentitySourcesNode)(this.Parent)).Refresh(sender, e); }); }
public IdentityProviderNode(IdentityProviderDto provider, string tenantName, bool systemDomain, string displayName, TenantConfigurationDto tenantConfigDto) : base(false) { _provider = provider; _tenantName = tenantName; _systemDomain = systemDomain; _tenantConfigDto = tenantConfigDto; var isDefault = _tenantConfigDto.ProviderPolicy != null && _tenantConfigDto.ProviderPolicy.DefaultProvider == provider.Name; if (!isDefault) { var action = new Action("Set as default domain", "Set as default domain", -1, IdentityProviderNodeAction.ActionSetDefault); ActionsPaneItems.Add(action); } DisplayName = isDefault ? displayName + " (Default)" : displayName; ImageIndex = SelectedImageIndex = systemDomain ? (int)TreeImageIndex.SystemDomain : (int)TreeImageIndex.LocalOs; }
private void RefreshView() { var service = ScopeNodeExtensions.GetServiceGateway(_serverDto.ServerName); var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(_serverDto, _tenantName); ActionHelper.Execute(delegate() { _tenantConfigurationDto = service.Tenant.GetConfig(_serverDto, _tenantName, auth.Token); if (_tenantConfigurationDto == null) { MMCDlgHelper.ShowWarning("No configuration retrieved for the tenant"); Close(); } else { DtoToView(); } }, auth); }
protected override void OnAction(Action action, AsyncStatus status) { base.OnAction(action, status); var serverDto = GetServerDto(); var service = SnapInContext.Instance.ServiceGateway; var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(serverDto, _tenantName); ActionHelper.Execute(delegate() { var isDefault = false; switch ((IdentityProviderNodeAction)(int)action.Tag) { case IdentityProviderNodeAction.ActionSetDefault: _tenantConfigDto.ProviderPolicy = new ProviderPolicyDto { DefaultProvider = _provider.Name }; _tenantConfigDto = service.Tenant.UpdateConfig(serverDto, _tenantName, _tenantConfigDto, auth.Token, TenantConfigType.PROVIDER); isDefault = true; break; } DisplayName = isDefault ? DisplayName + " (Default)" : DisplayName.Replace(" (Default)", string.Empty); ((IdentityProvidersNode)(this.Parent)).DoRefresh(); }, auth); }
public TenantConfigurationDto UpdateConfig(ServerDto serverDto, string tenant, TenantConfigurationDto tenantConfig, Token token, TenantConfigType type) { tenant = Uri.EscapeDataString(tenant); var url = string.Format(ServiceConfigManager.TenantConfigEndPoint, serverDto.Protocol, serverDto.ServerName, serverDto.Port, tenant); url += "?type=" + type; var json = JsonConvert.Serialize(tenantConfig); json = Cleanup (json); ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; var requestConfig = new RequestSettings { Method = HttpMethod.Put, }; var headers = ServiceHelper.AddHeaders(ServiceConfigManager.JsonContentType); json = "access_token=" + token.AccessToken + "&token_type=" + token.TokenType.ToString().ToLower() + "&" + json; var response = _webRequestManager.GetResponse(url, requestConfig, headers, null, json); return JsonConvert.Deserialize<TenantConfigurationDto>(response); }