Пример #1
0
        public async Task<IActionResult> NewScope(ScopeItemViewModel scopeModel)
        {
            if (!ModelState.IsValid)
            {
                return RedirectToAction("EditScope", new { siteId = scopeModel.SiteId, scopeName = scopeModel.Name });
            }

            Guid siteId = siteManager.CurrentSite.Id;
            if (!string.IsNullOrEmpty(scopeModel.SiteId) && scopeModel.SiteId.Length == 36)
            {
                siteId = new Guid(scopeModel.SiteId);
            }
            var selectedSite = await siteManager.GetSiteForDataOperations(siteId);

            ViewData["Title"] = string.Format(CultureInfo.CurrentUICulture, sr["{0} - New Scope"], selectedSite.SiteName);

            var exists = await scopesManager.ScopeExists(selectedSite.Id.ToString(), scopeModel.Name);
            var scopeType = scopesManager.ResolveScopeType(scopeModel.ScopeType);
            if(exists || !scopeType.HasValue)
            {
                var model = new ScopeEditViewModel();
                model.SiteId = selectedSite.Id.ToString();
                model.NewScope = scopeModel;
                model.NewScope.SiteId = model.SiteId;

                if (exists) ModelState.AddModelError("scopenameinuseerror", sr["Scope name is already in use"]);
                if (!scopeType.HasValue) ModelState.AddModelError("invalidscopetypeerror", sr["Invalid Scope Type"]);

                return View("EditScope", model);
            }

            var scope = new Scope
            {
                Type = scopeType.Value,
                Name = scopeModel.Name,
                DisplayName = scopeModel.DisplayName,
                Description = scopeModel.Description
            };

            await scopesManager.CreateScope(selectedSite.Id.ToString(), scope);

            var successFormat = sr["The Scope <b>{0}</b> was successfully Created."];

            this.AlertSuccess(string.Format(successFormat, scope.Name), true);

            return RedirectToAction("EditScope", new { siteId = selectedSite.Id.ToString(), scopeName = scope.Name });
        }
Пример #2
0
 public ScopeEditViewModel()
 {
     NewScope = new ScopeItemViewModel();
     NewScopeClaim = new NewScopeClaimViewModel();
     NewScopeSecret = new NewScopeSecretViewModel();
 }
Пример #3
0
        public async Task<IActionResult> EditScope(ScopeItemViewModel scopeModel)
        {
            if (!ModelState.IsValid)
            {
                return RedirectToAction("EditScope", new { siteId = scopeModel.SiteId, scopeName = scopeModel.Name });
            }

            Guid siteId = siteManager.CurrentSite.Id;
            if(!string.IsNullOrEmpty(scopeModel.SiteId) && scopeModel.SiteId.Length == 36)
            {
                siteId = new Guid(scopeModel.SiteId);
            }
            var selectedSite = await siteManager.GetSiteForDataOperations(siteId);
            
            var scope = await scopesManager.FetchScope(selectedSite.Id.ToString(), scopeModel.Name);

            if(scope == null)
            {
                this.AlertDanger(sr["Scope not found"], true);
                return RedirectToAction("Index", new { siteId = selectedSite.Id.ToString() });
            }

            scope.AllowUnrestrictedIntrospection = scopeModel.AllowUnrestrictedIntrospection;
            scope.ClaimsRule = scopeModel.ClaimsRule;
            scope.Description = scopeModel.Description;
            scope.DisplayName = scopeModel.DisplayName;
            scope.Emphasize = scopeModel.Emphasize;
            scope.Enabled = scopeModel.Enabled;
            scope.IncludeAllClaimsForUser = scopeModel.IncludeAllClaimsForUser;
            scope.Required = scopeModel.Required;
            scope.ShowInDiscoveryDocument = scopeModel.ShowInDiscoveryDocument;
            await scopesManager.UpdateScope(selectedSite.Id.ToString(), scope);

            var successFormat = sr["The Scope <b>{0}</b> was successfully updated."];

            this.AlertSuccess(string.Format(successFormat, scope.Name), true);

            return RedirectToAction("EditScope", new { siteId = selectedSite.Id.ToString(), scopeName = scope.Name });

        }
Пример #4
0
 public ScopeEditViewModel()
 {
     NewScope       = new ScopeItemViewModel();
     NewScopeClaim  = new NewScopeClaimViewModel();
     NewScopeSecret = new NewScopeSecretViewModel();
 }