Exemple #1
0
        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);
        }
Exemple #3
0
        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;
        }
Exemple #6
0
        /// <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);
        }
Exemple #10
0
        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);
        }
Exemple #12
0
        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);
        }