예제 #1
0
        public dtoDashboardSettings(liteDashboardSettings s, ModuleDashboard permissions, Int32 idCurrentUser, Dictionary <lm.Comol.Core.Dashboard.Domain.AvailableStatus, String> status)
        {
            Id               = s.Id;
            Deleted          = s.Deleted;
            Name             = s.Name;
            Description      = s.Description;
            Type             = s.Type;
            Status           = s.Status;
            ForAll           = s.ForAll;
            Active           = s.Active;
            FullWidth        = s.FullWidth;
            IdCommunity      = s.IdCommunity;
            IdCreatedBy      = s.IdCreatedBy;
            IdModifiedBy     = s.IdModifiedBy;
            ModifiedOn       = s.ModifiedOn;
            TranslatedStatus = status[s.Status];
            if (s.Assignments.Any())
            {
                Assignments = s.Assignments.Where(a => (s.Deleted == BaseStatusDeleted.None && a.Deleted == BaseStatusDeleted.None) || (s.Deleted == BaseStatusDeleted.Manual && a.Deleted == BaseStatusDeleted.Cascade)).Select(a =>
                                                                                                                                                                                                                                 new dtoDashboardAssignment()
                {
                    Id            = a.Id,
                    IdPerson      = a.IdPerson,
                    IdProfileType = a.IdProfileType,
                    IdRole        = a.IdRole,
                    Type          = a.Type
                }).ToList();
            }
            else
            {
                Assignments = new List <dtoDashboardAssignment>();
            }

            Boolean editingEnabled = true;// (s.Type != sType.CommunityType || (s.CommunityTypes != null && !s.CommunityTypes.Where(i => idCommunityTypes.Contains(i)).Any()));

            Permissions = new dtoPermission();

            Permissions.AllowView           = permissions.List || permissions.Administration || permissions.Edit;
            Permissions.AllowDelete         = editingEnabled && s.Deleted == BaseStatusDeleted.Manual && (permissions.Administration || permissions.DeleteOther || (permissions.DeleteMy && idCurrentUser == s.IdCreatedBy));
            Permissions.AllowVirtualDelete  = editingEnabled && !(s.ForAll && s.Active) && s.Deleted == BaseStatusDeleted.None && (permissions.Administration || permissions.DeleteOther || (permissions.DeleteMy && idCurrentUser == s.IdCreatedBy));
            Permissions.AllowUnDelete       = editingEnabled && s.Deleted == BaseStatusDeleted.Manual && (permissions.Administration || permissions.DeleteOther || (permissions.DeleteMy && idCurrentUser == s.IdCreatedBy));
            Permissions.AllowEdit           = s.Deleted == BaseStatusDeleted.None && (permissions.Administration || permissions.Edit);
            Permissions.AllowSetAvailable   = (s.Pages != null && s.Pages.Where(p => p.Deleted == BaseStatusDeleted.None).Any()) && s.Deleted == BaseStatusDeleted.None && s.Status != lm.Comol.Core.Dashboard.Domain.AvailableStatus.Available && (permissions.Administration || permissions.Edit);
            Permissions.AllowSetUnavailable = !(s.ForAll && s.Active) && s.Deleted == BaseStatusDeleted.None && s.Status == lm.Comol.Core.Dashboard.Domain.AvailableStatus.Available && (permissions.Administration || permissions.Edit);
            Permissions.AllowClone          = s.Deleted == BaseStatusDeleted.None && (permissions.Administration || permissions.Clone);
        }
예제 #2
0
        public static ModuleDashboard CreatePortalmodule(int idProfileType)
        {
            Boolean         admin     = (idProfileType == (int)UserTypeStandard.SysAdmin || idProfileType == (int)UserTypeStandard.Administrator);
            Boolean         baseAdmin = (admin || idProfileType == (int)UserTypeStandard.Administrative);
            ModuleDashboard module    = new ModuleDashboard();

            module.List                   = baseAdmin;
            module.Add                    = admin;
            module.Administration         = admin;
            module.Edit                   = baseAdmin;
            module.Clone                  = baseAdmin;
            module.DeleteMy               = baseAdmin;
            module.DeleteOther            = admin;
            module.ManageTiles            = admin;
            module.ManageModulePermission = (idProfileType == (int)UserTypeStandard.SysAdmin || idProfileType == (int)UserTypeStandard.Administrator);
            return(module);
        }