Exemple #1
0
        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;
        }
Exemple #2
0
        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);
            });
        }
Exemple #3
0
        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();
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
 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);
     });
 }
Exemple #8
0
        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;
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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);
        }