private static Zecurity.Permission PopulatePermissionFromXmlNode(XmlNode permission) { Zecurity.Permission res = new Zecurity.Permission(); res.ID = new Guid(permission.Attributes["ID"].Value); res.Path = permission.Attributes["Path"].Value; res.Add = Convert.ToBoolean(permission.Attributes["Add"].Value); res.Edit = Convert.ToBoolean(permission.Attributes["Edit"].Value); res.Delete = Convert.ToBoolean(permission.Attributes["Delete"].Value); res.Name = permission.Attributes["Name"].Value; //res.Trusted = Convert.ToBoolean(permission.Attributes["Trusted"].Value); return(res); }
public void CheckPermessionForPage() { string currentPath = HttpContext.Current.Request.Path; string currentFolder = currentPath.Remove(currentPath.LastIndexOf("/") + 1).ToLower(); if (isSafePath(currentPath)) { return; } //if (HttpContext.Current.User.IsInRole(DCRoles.SiteOverallAdminsRoles)) return; if (Roles.IsUserInRole(DCRoles.SiteOverallAdminsRoles)) { return; } List <Zecurity.Permission> permissions = Zecurity.ZecurityManager.GetAllUserPermissions(new Guid(Membership.GetUser(HttpContext.Current.User.Identity.Name).ProviderUserKey.ToString())); if (permissions.Count == 0) { RaiseErrorFlag(); } Zecurity.Permission folderPermission = permissions.Find(delegate(Zecurity.Permission p) { return(currentFolder.ToLower().StartsWith(p.Path.ToLower())); }); if (folderPermission == null) { RaiseErrorFlag(); } if (currentPath.ToLower().EndsWith("add.aspx")) { if (!folderPermission.Add) { RaiseErrorFlag(); } } if (currentPath.ToLower().EndsWith("edit.aspx")) { if (!folderPermission.Edit) { RaiseErrorFlag(); } } if (currentPath.ToLower().EndsWith("delete.aspx")) { if (!folderPermission.Delete) { RaiseErrorFlag(); } } }
public static bool UserCanExecuteCommand(CommandName commandName) { bool res = false; if (HttpContext.Current.User == null) { return(false); } string userName = HttpContext.Current.User.Identity.Name; //--------------------------------------------------------------------------------- if (HttpContext.Current.User.IsInRole(DCRoles.SiteOverallAdminsRoles)) { return(true); } if (HttpContext.Current.User.IsInRole(DCRoles.SiteMasterAdmin)) { return(true); } if (HttpContext.Current.User.IsInRole(DCRoles.SubAdminsRole)) { return(true); } //--------------------------------------------------------------------------------- HttpContext context = HttpContext.Current; string currentPath = context.Request.Path; if (context.Items.Contains("RealPath")) { currentPath = (string)context.Items["RealPath"]; } //------------------------------------------------------------------ string currentfolder = currentPath.Remove(currentPath.LastIndexOf("/") + 1).ToLower(); List <Zecurity.Permission> permissions = GetAllUserPermissions(new Guid(Membership.GetUser(userName).ProviderUserKey.ToString())); Zecurity.Permission folderPermission = permissions.Find(delegate(Zecurity.Permission p) { return(currentfolder.ToLower().StartsWith(p.Path.ToLower())); }); if (folderPermission == null) { return(false); } switch (commandName) { case CommandName.Add: if (folderPermission.Add) { res = true; } break; case CommandName.Edit: if (folderPermission.Edit) { res = true; } break; case CommandName.Delete: if (folderPermission.Delete) { res = true; } break; case CommandName.Trusted: if (folderPermission.Trusted) { res = true; } break; default: res = false; break; } return(res); }