public static DNHSitemapAction CheckActionPermission(DNHSiteMap objSiteMap, string ActionName) { //get NodeID role //acc Role permission DNHSitemapAction objItem = null; if (objSiteMap.Access != 0) { DNHSitemapActionCollection myCol = DNHSitemapActionManager.GetById(objSiteMap.Access, objSiteMap.CompanyID); bool isMatch = false; if (myCol.Count > 0) { foreach (DNHSitemapAction myitem in myCol) { if (myitem.ActionName.ToLower() == ActionName.ToLower()) { isMatch = true; objItem = myitem; break; } } } if (!isMatch) { objItem = AddNewDefaultAction(objSiteMap, ActionName); } } else { objItem = AddNewDefaultAction(objSiteMap, ActionName); if (objItem != null) { //objSiteMap.Access = objItem.ID; DNHRoleSitemap RoleSitemap = DNHRoleSitemapManager.GetbyID(objSiteMap.NodeID.ToString(), objSiteMap.CompanyID, objSiteMap.RoleName); if (RoleSitemap.NodeID != Guid.Empty) { RoleSitemap.Access = objItem.ID; RoleSitemap.CreateDate = SystemConfig.CurrentDate; RoleSitemap = DNHRoleSitemapManager.Update(RoleSitemap); if (RoleSitemap.NodeID != Guid.Empty) { DNHSiteMapManager.RemoveCache(objSiteMap); } } } } return(objItem); }
public static bool CheckSiteMapPermission(DNHUsers CurrentUser, string controllerName, string actionName) { DNHSiteMapCollection result = CurrentUser.UserSiteMaps; bool isAllow = false; DNHSitemapAction objAction = null; DNHSiteMap objItem; //foreach (DNHSiteMap objItem in result) if (controllerName.ToLower() != "home") { for (int i = 0; i < result.Count; i++) { objItem = result[i]; if (objItem.Url.Trim().ToLower() == controllerName.ToLower()) { isAllow = true; // check user Action //objAction = CommonHelper.CheckActionPermission(objItem, actionName); //if (objAction != null) //{ // isAllow = objAction.Allow; // if (objItem.Access != objAction.ID) // { // objItem.Access = objAction.ID; // result[i] = objItem; // CurrentUser.UserSiteMaps = result; // } //} //isAllow = true; break; } } ; } else { isAllow = true; } if (!isAllow && CurrentUser.IsAdmin) { isAllow = true; } return(isAllow); }
public static DNHSitemapAction AddNewDefaultAction(DNHSiteMap objSiteMap, string ActionName) { DNHSitemapAction myAction = new DNHSitemapAction() { CompanyID = objSiteMap.CompanyID, ID = objSiteMap.Access, RoleName = objSiteMap.RoleName, NodeID = objSiteMap.NodeID, ActionName = ActionName, Allow = true, Edit = false, CreatedUser = CurrentUser.UserName, CreatedDate = SystemConfig.CurrentDate, ScreenID = "" }; return(DNHSitemapActionManager.Add(myAction)); }