public List <ViewButtons> CheckButtonList(string UserName, string ParentURL) { #region 获取当前权限子Button对应ID Condition where = Condition.Empty; where = CK.K["URL"].MiddleLike(ParentURL); Permission currentVisitPermisiion = dbContext.From <Permission>().Where(where).Select().FirstOrDefault(); where = CK.K["PermissionParent"].Eq(currentVisitPermisiion.PermissionID); List <Permission> currentViewButtons = dbContext.From <Permission>().Where(where).Select().ToList(); #endregion #region 获取用户所有权限ID //找到用户ID UserService uservice = new UserService(); UserInfo user = uservice.SearchUser(UserName); //查找用户所有角色ID where = CK.K["UserID"].Eq(user.UserId); List <UserWithRole> UR = dbContext.From <UserWithRole>().Where(where).Select().ToList(); //返回所有角色拥有权限ID List <RoleWithPermission> permissionIDs = new List <RoleWithPermission>(); if (UR.Count > 0) { for (int index = 0; index < UR.Count; index++) { where = CK.K["RoleId"].Eq(UR[index].RoleID); permissionIDs.AddRange(dbContext.From <RoleWithPermission>().Where(where).Select().ToList()); } } List <int> PID = new List <int>(); foreach (RoleWithPermission r in permissionIDs) { if (PID.Contains(r.PermissionID)) { continue; } else { PID.Add(r.PermissionID); //所有权限的ID } } #endregion #region 对比ID是否包含权限,返回T/F //PID 拥有的 //currentViewButtons 当前页需要的 List <ViewButtons> VB = new List <ViewButtons>(); foreach (Permission p in currentViewButtons) { if (PID.Contains(p.PermissionID)) { ViewButtons v = new ViewButtons(); v.ButtonName = p.PermissionName; v.Show = true; VB.Add(v); } } #endregion return(VB); }
public static ViewButtons GetAvailableButtonsForSingleView(AppUser appUser, Branch branch, Company company, IPrincipal user) { ApplicationDbContext db = new ApplicationDbContext(); ViewButtons buttons = GetAvailableButtonsForSingleView(db, appUser, branch, company, user); db.Dispose(); return(buttons); }
public ViewHostTab(ViewHostTabs tabs, ViewBase view) : base(view, tabs.Side) { Verify.Argument.IsNotNull(tabs, "tabs"); _tabs = tabs; _viewHost = tabs.ViewHost; _buttons = new ViewButtons(tabs); if(_viewHost.IsDocumentWell) { _buttons.SetAvailableButtons(ViewButtonType.Close); } _buttons.Height = Renderer.TabHeight + Renderer.TabFooterHeight; _buttons.ButtonClick += OnButtonClick; }
//NOTE - SetCompanyButtons, SetBranchButtons, SetUserButtons, must run in that order as the user rely on the branch rely on the company //There is also a check on block as if Block is set then no buttons should be shown for that level downwards. public static ViewButtons SetCompanyButtons(ApplicationDbContext db, ViewButtons buttons, Guid viewItemcompanyId, Guid currentCompanyId) { buttons.CompanyBlockButton = !BlockHelpers.IsReferenceBlocked(db, LevelEnum.Company, viewItemcompanyId, currentCompanyId); //if company block then do not show company and lower add buttons if (!buttons.CompanyBlockButton) { buttons.CompanyAddFriendButton = buttons.CompanyBlockButton; buttons.CompanyAddToGroupButton = buttons.CompanyBlockButton; } else { buttons.CompanyAddFriendButton = !FriendHelpers.IsReferenceAnActiveFriendRequest(db, LevelEnum.Company, viewItemcompanyId, currentCompanyId); buttons.CompanyAddToGroupButton = !GroupHelpers.IsReferenceInGroup(db, LevelEnum.Company, viewItemcompanyId, currentCompanyId); } return(buttons); }
/// <summary>Create <see cref="PopupNotificationHeader"/>.</summary> internal PopupNotificationHeader() { SetStyle( ControlStyles.ContainerControl | ControlStyles.Selectable | ControlStyles.SupportsTransparentBackColor, false); SetStyle( ControlStyles.UserPaint | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true); _buttons = new ViewButtons(this); _buttons.SetAvailableButtons(ViewButtonType.Close); _buttons.ButtonClick += OnButtonClick; }
/// <summary>Create <see cref="ViewHostHeader"/>.</summary> internal ViewHostHeader(ViewHost viewHost) { Verify.Argument.IsNotNull(viewHost, "viewHost"); _viewHost = viewHost; SetStyle( ControlStyles.ContainerControl | ControlStyles.Selectable | ControlStyles.SupportsTransparentBackColor, false); SetStyle( ControlStyles.UserPaint | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true); _buttons = new ViewButtons(this); }
public static ViewButtons SetUserButtons(ApplicationDbContext db, ViewButtons buttons, Guid viewItemUserId, Guid currentUserId) { //if the button is hidden at branch level then hide at user level if (!buttons.BranchBlockButton) { buttons.UserBlockButton = buttons.BranchBlockButton; } else { buttons.UserBlockButton = !BlockHelpers.IsReferenceBlocked(db, LevelEnum.User, viewItemUserId, currentUserId); } //If user block then do not show user buttons if (!buttons.UserBlockButton) { buttons.UserAddFriendButton = buttons.UserBlockButton; buttons.UserAddToGroupButton = buttons.UserBlockButton; } else { if (!buttons.BranchAddFriendButton) { buttons.UserAddFriendButton = buttons.BranchAddFriendButton; } else { buttons.UserAddFriendButton = !FriendHelpers.IsReferenceAnActiveFriendRequest(db, LevelEnum.User, viewItemUserId, currentUserId); } if (!buttons.BranchAddToGroupButton) { buttons.UserAddToGroupButton = buttons.BranchAddToGroupButton; } else { buttons.UserAddToGroupButton = !GroupHelpers.IsReferenceInGroup(db, LevelEnum.User, viewItemUserId, currentUserId); } } return(buttons); }
public static ViewButtons SetBranchButtons(ApplicationDbContext db, ViewButtons buttons, Guid viewItemBranchId, Guid currentBranchId) { //if the button is hidden at company level then hide at branch level if (!buttons.CompanyBlockButton) { buttons.BranchBlockButton = buttons.CompanyBlockButton; } else { buttons.BranchBlockButton = !BlockHelpers.IsReferenceBlocked(db, LevelEnum.Branch, viewItemBranchId, currentBranchId); } //if branch block then do not show branch and lower add buttons if (!buttons.BranchBlockButton) { buttons.BranchAddFriendButton = buttons.BranchBlockButton; buttons.BranchAddToGroupButton = buttons.BranchBlockButton; } else { if (!buttons.CompanyAddFriendButton) { buttons.BranchAddFriendButton = buttons.CompanyAddFriendButton; } else { buttons.BranchAddFriendButton = !FriendHelpers.IsReferenceAnActiveFriendRequest(db, LevelEnum.Branch, viewItemBranchId, currentBranchId); } if (!buttons.CompanyAddToGroupButton) { buttons.BranchAddToGroupButton = buttons.CompanyAddToGroupButton; } else { buttons.BranchAddToGroupButton = !GroupHelpers.IsReferenceInGroup(db, LevelEnum.Branch, viewItemBranchId, currentBranchId); } } return(buttons); }
public static CampaignEditView GetCampaignEditView(ApplicationDbContext db, Guid campaignId, IPrincipal user) { Campaign campaignDetails = CampaignHelpers.GetCampaign(db, campaignId); AppUser campaignAppUser = AppUserHelpers.GetAppUser(db, campaignDetails.CampaignOriginatorAppUserId); Branch campaignBranch = BranchHelpers.GetBranch(db, campaignDetails.CampaignOriginatorBranchId); Company campaignCompany = CompanyHelpers.GetCompany(db, campaignDetails.CampaignOriginatorCompanyId); ViewButtons buttons = ViewButtonsHelpers.GetAvailableButtonsForSingleView(db, campaignAppUser, campaignBranch, campaignCompany, user); CampaignEditView view = new CampaignEditView() { CampaignId = campaignDetails.CampaignId, Name = campaignDetails.Name, StrapLine = campaignDetails.StrapLine, Description = campaignDetails.Description, Image = campaignDetails.Image, ImageLocation = campaignDetails.ImageLocation, Website = campaignDetails.Website, CampaignStartDateTime = campaignDetails.CampaignStartDateTime, CampaignEndDateTime = campaignDetails.CampaignEndDateTime, LocationName = campaignDetails.LocationName, LocationAddressLine1 = campaignDetails.LocationAddressLine1, LocationAddressLine2 = campaignDetails.LocationAddressLine2, LocationAddressLine3 = campaignDetails.LocationAddressLine3, LocationAddressTownCity = campaignDetails.LocationAddressTownCity, LocationAddressCounty = campaignDetails.LocationAddressCounty, LocationAddressPostcode = campaignDetails.LocationAddressPostcode, LocationTelephoneNumber = campaignDetails.LocationTelephoneNumber, LocationEmail = campaignDetails.LocationEmail, LocationContactName = campaignDetails.LocationContactName, EntityStatus = campaignDetails.EntityStatus, CampaignOriginatorDateTime = campaignDetails.CampaignOriginatorDateTime, CampaignAppUser = campaignAppUser, CampaignBranchDetails = campaignBranch, CampaignCompanyDetails = campaignCompany, Buttons = buttons }; return(view); }
public static AvailableListingEditView GetAvailableListingEditView(ApplicationDbContext db, Guid listingId, IPrincipal user) { AvailableListing availableListing = AvailableListingHelpers.GetAvailableListing(db, listingId); AppUser listingAppUser = AppUserHelpers.GetAppUser(db, availableListing.ListingOriginatorAppUserId); Branch listingBranch = BranchHelpers.GetBranch(db, availableListing.ListingOriginatorBranchId); Company listingCompany = CompanyHelpers.GetCompany(db, availableListing.ListingOriginatorCompanyId); ViewButtons buttons = ViewButtonsHelpers.GetAvailableButtonsForSingleView(db, listingAppUser, listingBranch, listingCompany, user); AvailableListingEditView view = new AvailableListingEditView() { ListingId = availableListing.ListingId, ItemDescription = availableListing.ItemDescription, ItemCategory = availableListing.ItemCategory, ItemType = availableListing.ItemType, QuantityRequired = availableListing.QuantityRequired, QuantityFulfilled = availableListing.QuantityFulfilled, QuantityOutstanding = availableListing.QuantityOutstanding, UoM = availableListing.UoM, AvailableFrom = availableListing.AvailableFrom, AvailableTo = availableListing.AvailableTo, ItemCondition = availableListing.ItemCondition, DisplayUntilDate = availableListing.DisplayUntilDate, SellByDate = availableListing.SellByDate, UseByDate = availableListing.UseByDate, DeliveryAvailable = availableListing.DeliveryAvailable, ListingStatus = availableListing.ListingStatus, ListingOriginatorDateTime = availableListing.ListingOriginatorDateTime, ListingAppUser = listingAppUser, ListingBranchDetails = listingBranch, ListingCompanyDetails = listingCompany, Buttons = buttons }; return(view); }
public static ViewButtons GetAvailableButtonsForSingleView(ApplicationDbContext db, AppUser appUser, Branch branch, Company company, IPrincipal user) { //Build initial list ViewButtons buttons = new ViewButtons() { CompanyBlockButton = false, CompanyAddFriendButton = false, CompanyAddToGroupButton = false, BranchBlockButton = false, BranchAddFriendButton = false, BranchAddToGroupButton = false, UserBlockButton = false, UserAddFriendButton = false, UserAddToGroupButton = false }; //First: check this is not our listing AppUser currentUser = AppUserHelpers.GetAppUser(db, user); if (currentUser.AppUserId == appUser.AppUserId) { return(buttons); } //Second: check the branch is not our branch, else return current button settings if (currentUser.CurrentBranchId == branch.BranchId) { return(buttons); } //Third: check if the Company allows interbranch dealing, if not and company level are the same return current button settings Branch currentUserBranch = BranchHelpers.GetBranch(db, currentUser.CurrentBranchId); if (!company.AllowBranchTrading && currentUserBranch.CompanyId == company.CompanyId) { return(buttons); } //Now validate for button status depending on type of user for this branch user combo BranchUser branchUser = BranchUserHelpers.GetBranchUser(db, appUser.AppUserId, branch.BranchId, company.CompanyId); switch (branchUser.UserRole) { //Note - must be in this order as there are override checks the lower down the ranking/role you go case UserRoleEnum.SuperUser: case UserRoleEnum.Admin: buttons = SetCompanyButtons(db, buttons, company.CompanyId, currentUserBranch.CompanyId); buttons = SetBranchButtons(db, buttons, branch.BranchId, currentUser.CurrentBranchId); buttons = SetUserButtons(db, buttons, appUser.AppUserId, currentUser.AppUserId); break; case UserRoleEnum.Manager: buttons = SetBranchButtons(db, buttons, branch.BranchId, currentUser.CurrentBranchId); buttons = SetUserButtons(db, buttons, appUser.AppUserId, currentUser.AppUserId); break; case UserRoleEnum.User: buttons = SetUserButtons(db, buttons, appUser.AppUserId, currentUser.AppUserId); break; } return(buttons); }
public static RequirementListingEditView GetRequirementListingEditView(ApplicationDbContext db, Guid listingId, IPrincipal user) { RequirementListing requirementListing = RequirementListingHelpers.GetRequirementListing(db, listingId); AppUser listingAppUser = AppUserHelpers.GetAppUser(db, requirementListing.ListingOriginatorAppUserId); Branch listingBranch = BranchHelpers.GetBranch(db, requirementListing.ListingOriginatorBranchId); Company listingCompany = CompanyHelpers.GetCompany(db, requirementListing.ListingOriginatorCompanyId); Campaign listingCampaign = null; Guid campaignId = Guid.Empty; string campaignName = ""; string campaignStrapline = ""; string campaignDescription = ""; DateTime?campaignStartDateTime = null; DateTime?campaignEndDateTime = null; ViewButtons buttons = ViewButtonsHelpers.GetAvailableButtonsForSingleView(db, listingAppUser, listingBranch, listingCompany, user); if (requirementListing.CampaignId != null) { if (requirementListing.CampaignId.Value != Guid.Empty) { listingCampaign = CampaignHelpers.GetCampaign(db, requirementListing.CampaignId.Value); campaignId = listingCampaign.CampaignId; campaignName = listingCampaign.Name; campaignStrapline = listingCampaign.StrapLine; campaignDescription = listingCampaign.Description; campaignStartDateTime = listingCampaign.CampaignStartDateTime; campaignEndDateTime = listingCampaign.CampaignEndDateTime; } } RequirementListingEditView view = new RequirementListingEditView() { ListingId = requirementListing.ListingId, ItemDescription = requirementListing.ItemDescription, ItemCategory = requirementListing.ItemCategory, ItemType = requirementListing.ItemType, QuantityRequired = requirementListing.QuantityRequired, QuantityFulfilled = requirementListing.QuantityFulfilled, QuantityOutstanding = requirementListing.QuantityOutstanding, UoM = requirementListing.UoM, RequiredFrom = requirementListing.RequiredFrom, RequiredTo = requirementListing.RequiredTo, AcceptDamagedItems = requirementListing.AcceptDamagedItems, AcceptOutOfDateItems = requirementListing.AcceptOutOfDateItems, CollectionAvailable = requirementListing.CollectionAvailable, ListingStatus = requirementListing.ListingStatus, ListingOriginatorDateTime = requirementListing.ListingOriginatorDateTime, ListingAppUser = listingAppUser, ListingBranchDetails = listingBranch, ListingCompanyDetails = listingCompany, SelectedCampaignId = campaignId, CampaignName = campaignName, CampaignStrapLine = campaignStrapline, CampaignDescription = campaignStrapline, CampaignStartDateTime = campaignStartDateTime, CampaignEndDateTime = campaignEndDateTime, Buttons = buttons }; return(view); }