Пример #1
0
        public JsonResult GetActions(string parentAction, string userOrRoleId)
        {
            var rootAction = AuthorizationManager.FindAction(parentAction);
            List <AccessNodeModel> list = new List <AccessNodeModel>();
            var authorized = string.IsNullOrEmpty(userOrRoleId) ? new string[0] : AuthorizationManager.GetActions(userOrRoleId,
                                                                                                                  rootAction == AuthorizationManager.Actions ? null : rootAction.FullName);

            foreach (var ch in rootAction.SubActions)
            {
                var ac = new AccessNodeModel
                {
                    Action = ch.Name,
                    Title  = ch.Title,
                };
                var fullName = ch.FullName;
                if (authorized.Any(a => a == fullName))
                {
                    ac.Access = NodeAccessType.HasAccess;
                }
                else if (authorized.Any(a => a.StartsWith(fullName + ".")))
                {
                    ac.Access = NodeAccessType.SubNodes;
                }
                else
                {
                    ac.Access = NodeAccessType.NoAccess;
                }
                ac.HasChildren = ch.SubActions.Any();
                list.Add(ac);
            }

            return(Json(list, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        public ActionResult AccessNodeDetail(long id = 0)
        {
            ViewBag.Title = string.Format(ViewBag.Title, "Erişim Noktası Detayı");
            var model = new AccessNodeModel {
                ID = id
            };

            if (!model.IsNew)
            {
                var user = Client.Services.API.Management.GetAccessNode(id);
                if (user != null)
                {
                    model = Mapper.Map <AccessNodeModel>(user);
                }
            }
            return(View(model));
        }
Пример #3
0
        //[ValidateAntiForgeryToken]
        public ActionResult SaveAccessNode(AccessNodeModel model)
        {
            ViewBag.Title = string.Format(ViewBag.Title, "Erişim Noktaları");
            if (ModelState.IsValid)
            {
                try
                {
                    var existingAccessNode = Client.Services.API.Management.GetAccessNode(model.ID);
                    if (model.IsNew)
                    {
                        if (existingAccessNode != null)
                        {
                            model.AlertMessage.Caption = "Aynı tanımlayıcı değerlere sahip kayıt bulunmaktadır.";
                            model.AlertMessage.Message = "<span>Mevcut kayıt üzerinden devam et : </span><a href='" + Url.Action("AccessNodeDetail", new { id = existingAccessNode.ID }) + "'>" + existingAccessNode.Name + "</a>";
                            return(View("AccessNodeDetail", model));
                        }
                        model.CreateHistory(Client.CurrentUser.ID, DateTime.Now, Client.CurrentUser.ID, DateTime.Now);
                        var accessNode = Mapper.Map <AccessNode>(model);
                        Client.Services.API.Management.SaveAccessNode(accessNode);
                    }
                    else
                    {
                        if (existingAccessNode == null)
                        {
                            return(RedirectToAction("AccessNodeList"));
                        }

                        model.CreateHistory(0, existingAccessNode.DateCreated, Client.CurrentUser.ID, DateTime.Now);
                        existingAccessNode.Name        = model.Name;
                        existingAccessNode.Description = model.Description;
                        Client.Services.API.Management.UpdateAccessNode(existingAccessNode);
                    }


                    return(RedirectToAction("AccessNodeList"));
                }
                catch (Exception ex)
                {
                    // TODO: Handle exceptions and log them.
                }
            }
            return(RedirectToAction("AccessNodeList"));
        }