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)); }
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)); }
//[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")); }