private void BuildSiteMapLinks() { foreach (ClientPagePermissions ep in Enum.GetValues(typeof(ClientPagePermissions))) { PageLinkAttribute attribute = GetPageLink(ep); if (attribute != null) { Master.FindControl(attribute.NavLink).Visible = CurrentUser.Allowed(ep); } } }
public PageLinkAttribute GetPageLink(ClientPagePermissions pageP) { MemberInfo memberInfo = typeof(ClientPagePermissions).GetMember(pageP.ToString()).FirstOrDefault(); if (memberInfo != null) { PageLinkAttribute attribute = (PageLinkAttribute)memberInfo.GetCustomAttributes(typeof(PageLinkAttribute), false).FirstOrDefault(); return(attribute); } return(null); }
protected override void OnInit(EventArgs e) { base.OnInit(e); Page.PreRender += new EventHandler(PagePreRender); if (!LoginProvider && CurrentUser == null) { SynNavigation.Goto(Pages.Login); } if (!IsPostBack) { if (RequiredPermissions.NotEmpty()) { Title = GenericFormatter.GetEnumDescription(RequiredPermissions[0]); } else { Title = "מסך הבית"; } if (!LoginProvider) { BuildSiteMapLinks(); bool navSelected = false; if (RequiredPermissions.NotEmpty()) { var requiredPermis = RequiredPermissions.FirstOrDefault(); PageLinkAttribute HasNavLink = GetPageLink(requiredPermis); if (HasNavLink != null) { ((HtmlAnchor)Master.FindControl(HasNavLink.NavLink)).Attributes.Add("class", "active"); navSelected = true; } } if (!navSelected) { ((HtmlAnchor)Master.FindControl(DefaultNavItem)).Attributes.Add("class", "active"); } (Master as WebSimplify.WebSimplify).CurrentUserName = CurrentUser.DisplayName ?? CurrentUser.UserName; (Master as WebSimplify.WebSimplify).IsAdmin = CurrentUser.IsAdmin; } foreach (ClientPagePermissions en in RequiredPermissions) { if (!CurrentUser.Allowed(en)) { SynNavigation.Goto(Pages.Main); } } } }