Example #1
0
        public virtual void SetTeamSecurity(Project project, Participant participant, ProjectTeamSecurity teamSecurity, bool visible)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }
            if (participant == null)
            {
                throw new ArgumentNullException("participant");
            }

            ProjectSecurity.DemandEditTeam(project);

            var security = projectDao.GetTeamSecurity(project.ID, participant.ID);

            if (visible)
            {
                if (security != ProjectTeamSecurity.None)
                {
                    security ^= teamSecurity;
                }
            }
            else
            {
                security |= teamSecurity;
            }
            projectDao.SetTeamSecurity(project.ID, participant.ID, security);
        }
        public string GetOnClickEvent(Guid userID, ProjectTeamSecurity security)
        {
            if (ProjectSecurity.CanEditTeam(Project) &&
                userID != TeamLeader.ID &&
                !ProjectSecurity.IsAdministrator(userID) &&
                Project.Private)
            {
                switch (security)
                {
                case ProjectTeamSecurity.Messages:
                    return(string.Format("onclick=\"javascript:changePermission(this,'{0}', 0);\" title='{1}'",
                                         userID.ToString(), ProjectResource.ClosedProjectTeamMessageButtonTooltip));

                case ProjectTeamSecurity.Files:
                    return(string.Format("onclick=\"javascript:changePermission(this,'{0}', 1);\" title='{1}'",
                                         userID.ToString(), ProjectResource.ClosedProjectTeamDocumentButtonTooltip));

                case ProjectTeamSecurity.Tasks:
                    return(string.Format("onclick=\"javascript:changePermission(this,'{0}', 2);\" title='{1}'",
                                         userID.ToString(), ProjectResource.ClosedProjectTeamTaskButtonTooltip));

                case ProjectTeamSecurity.Milestone:
                    return(string.Format("onclick=\"javascript:changePermission(this,'{0}', 3);\" title='{1}'",
                                         userID.ToString(), ProjectResource.ClosedProjectTeamMilestoneButtonTooltip));
                }
            }
            return(string.Empty);
        }
Example #3
0
 public Participant(Guid userID, ProjectTeamSecurity security)
 {
     ID                = userID;
     CanReadFiles      = (security & ProjectTeamSecurity.Files) != ProjectTeamSecurity.Files;
     CanReadMilestones = (security & ProjectTeamSecurity.Milestone) != ProjectTeamSecurity.Milestone;
     CanReadMessages   = (security & ProjectTeamSecurity.Messages) != ProjectTeamSecurity.Messages;
     CanReadTasks      = (security & ProjectTeamSecurity.Tasks) != ProjectTeamSecurity.Tasks;
 }
Example #4
0
        public void SetTeamSecurity(Project project, Participant participant, ProjectTeamSecurity teamSecurity, bool visible)
        {
            if (participant == null)
            {
                throw new ArgumentNullException("participant");
            }

            SetTeamSecurity(project, participant.ID, teamSecurity, visible);
        }
        public bool GetTeamSecurityForParticipants(Project project, Guid userId, ProjectTeamSecurity security)
        {
            if (IsProjectManager(project, userId) || !project.Private)
            {
                return(true);
            }
            var s = DaoFactory.ProjectDao.GetTeamSecurity(project.ID, userId);

            return((s & security) != security);
        }
        public bool GetTeamSecurity(Project project, Guid userId, ProjectTeamSecurity security)
        {
            if (IsProjectManager(project, userId) || project == null || !project.Private)
            {
                return(true);
            }
            var dao = DaoFactory.ProjectDao;
            var s   = dao.GetTeamSecurity(project.ID, userId);

            return((s & security) != security && dao.IsInTeam(project.ID, userId));
        }
Example #7
0
        public void SetTeamSecurity(Project project, Guid participant, ProjectTeamSecurity teamSecurity)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }

            ProjectSecurity.DemandEditTeam(project);

            DaoFactory.ProjectDao.SetTeamSecurity(project.ID, participant, teamSecurity);
        }
        public Participant(Guid userID, ProjectTeamSecurity security)
            : this(userID)
        {
            CanReadFiles = (security & ProjectTeamSecurity.Files) != ProjectTeamSecurity.Files;
            CanReadMilestones = (security & ProjectTeamSecurity.Milestone) != ProjectTeamSecurity.Milestone;
            CanReadMessages = (security & ProjectTeamSecurity.Messages) != ProjectTeamSecurity.Messages;
            CanReadTasks = (security & ProjectTeamSecurity.Tasks) != ProjectTeamSecurity.Tasks;
            CanReadContacts = (security & ProjectTeamSecurity.Contacts) != ProjectTeamSecurity.Contacts;

            if (IsVisitor)
                CanReadContacts = false;
        }
Example #9
0
        public Participant(Guid userID, ProjectTeamSecurity security)
            : this(userID)
        {
            CanReadFiles      = (security & ProjectTeamSecurity.Files) != ProjectTeamSecurity.Files;
            CanReadMilestones = (security & ProjectTeamSecurity.Milestone) != ProjectTeamSecurity.Milestone;
            CanReadMessages   = (security & ProjectTeamSecurity.Messages) != ProjectTeamSecurity.Messages;
            CanReadTasks      = (security & ProjectTeamSecurity.Tasks) != ProjectTeamSecurity.Tasks;
            CanReadContacts   = (security & ProjectTeamSecurity.Contacts) != ProjectTeamSecurity.Contacts;

            if (IsVisitor)
            {
                CanReadContacts = false;
            }
        }
Example #10
0
        public bool GetTeamSecurity(Project project, Participant participant, ProjectTeamSecurity teamSecurity)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }
            if (participant == null)
            {
                throw new ArgumentNullException("participant");
            }

            var security = DaoFactory.ProjectDao.GetTeamSecurity(project.ID, participant.ID);

            return((security & teamSecurity) != teamSecurity);
        }
        public void SetTeamSecurity(int projectId, Guid participantId, ProjectTeamSecurity teamSecurity)
        {
            Db.ExecuteNonQuery(
                new SqlUpdate(ParticipantTable)
                .Set("updated", DateTime.UtcNow)
                .Set("security", (int)teamSecurity)
                .Where("tenant", Tenant)
                .Where("project_id", projectId)
                .Where("participant_id", participantId.ToString()));

            var key  = string.Format("{0}|{1}", projectId, participantId);
            var item = teamCache.Get(key);

            if (item != null)
            {
                teamCache[key].Security = teamSecurity;
            }
        }
Example #12
0
        public void SetTeamSecurity(int projectId, Guid participantId, ProjectTeamSecurity teamSecurity)
        {
            DbManager.ExecuteNonQuery(
                new SqlUpdate("projects_project_participant")
                .Set("security", (int)teamSecurity)
                .Where("tenant", Tenant)
                .Where("project_id", projectId)
                .Where("participant_id", participantId.ToString()));

            lock (teamCache)
            {
                var key  = string.Format("{0}|{1}", projectId, participantId);
                var item = teamCache.Get(key);
                if (item != null)
                {
                    teamCache[key].Security = teamSecurity;
                }
            }
        }
        public string GetCssClass(Guid userID, ProjectTeamSecurity security)
        {
            var participant    = Global.EngineFactory.GetParticipantEngine().GetByID(userID);
            var havePermission = Global.EngineFactory.GetProjectEngine().GetTeamSecurity(Project, participant, security);

            if (ProjectSecurity.CanEditTeam(Project) && userID != TeamLeader.ID && !ProjectSecurity.IsAdministrator(userID) && Project.Private)
            {
                if (havePermission)
                {
                    return("pm-projectTeam-modulePermissionOn");
                }
                return("pm-projectTeam-modulePermissionOff");
            }
            else
            {
                if (havePermission)
                {
                    return("pm-projectTeam-modulePermissionOn-disable");
                }
                return("pm-projectTeam-modulePermissionOff-disable");
            }
        }
Example #14
0
        public void SetTeamSecurity(Project project, Guid participant, ProjectTeamSecurity teamSecurity, bool visible)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }

            ProjectSecurity.DemandEditTeam(project);

            var security = DaoFactory.ProjectDao.GetTeamSecurity(project.ID, participant);

            if (visible)
            {
                if (security != ProjectTeamSecurity.None)
                {
                    security ^= teamSecurity;
                }
            }
            else
            {
                security |= teamSecurity;
            }
            DaoFactory.ProjectDao.SetTeamSecurity(project.ID, participant, security);
        }
Example #15
0
 protected void RestrictAccess(Guid userID, ProjectTeamSecurity projectTeamSecurity, bool visible)
 {
     SecurityContext.AuthenticateMe(Owner);
     ProjectEngine.SetTeamSecurity(Project, ParticipantEngine.GetByID(userID), projectTeamSecurity, visible);
 }
 public TeamCacheItem(bool inteam, ProjectTeamSecurity security)
 {
     InTeam   = inteam;
     Security = security;
 }
 private static bool GetTeamSecurity(Project project, Guid userId, ProjectTeamSecurity security)
 {
     if (IsProjectManager(project, userId) || project == null || !project.Private) return true;
     var dao = GetFactory().GetProjectDao();
     var s = dao.GetTeamSecurity(project.ID, userId);
     return (s & security) != security && dao.IsInTeam(project.ID, userId);
 }
        public IEnumerable<ParticipantWrapper> SetProjectTeamSecurity(int projectid, Guid userId, ProjectTeamSecurity security, bool visible)
        {
            var projectEngine = EngineFactory.GetProjectEngine();

            var project = projectEngine.GetByID(projectid).NotFoundIfNull();
            ProjectSecurity.DemandEditTeam(project);

            if (!projectEngine.IsInTeam(projectid, userId))
            {
                throw new ArgumentOutOfRangeException("userId", "Not a project memeber");
            }

            projectEngine.SetTeamSecurity(project, EngineFactory.GetParticipantEngine().GetByID(userId), security, visible);

            var team = GetProjectTeam(projectid);
            var user = team.SingleOrDefault(t => t.Id == userId);
            if (user != null)
            {
                MessageService.Send(_context, MessageAction.ProjectUpdatedMemberRights, project.Title, HttpUtility.HtmlDecode(user.DisplayName));
            }

            return team;
        }
Example #19
0
 public TeamCacheItem(bool inteam, ProjectTeamSecurity security)
 {
     InTeam = inteam;
     Security = security;
 }
 public bool GetTeamSecurity(Project project, ProjectTeamSecurity security)
 {
     return(GetTeamSecurity(project, CurrentUserId, security));
 }
Example #21
0
        public void SetTeamSecurity(int projectId, Guid participantId, ProjectTeamSecurity teamSecurity)
        {
            using (var db = new DbManager(DatabaseId))
            {
                db.ExecuteNonQuery(
                    new SqlUpdate(ParticipantTable)
                        .Set("updated", DateTime.UtcNow)
                        .Set("security", (int) teamSecurity)
                        .Where("tenant", Tenant)
                        .Where("project_id", projectId)
                        .Where("participant_id", participantId.ToString()));
            }

            lock (TeamCache)
            {
                var key = string.Format("{0}|{1}", projectId, participantId);
                var item = TeamCache.Get(key);
                if (item != null) TeamCache[key].Security = teamSecurity;
            }
        }
 private static bool GetTeamSecurityForParticipants(Project project, Guid userId, ProjectTeamSecurity security)
 {
     if (IsProjectManager(project, userId) || !project.Private) return true;
     var s = GetFactory().GetProjectDao().GetTeamSecurity(project.ID, userId);
     return (s & security) != security;
 }
Example #23
0
        public virtual void SetTeamSecurity(Project project, Participant participant, ProjectTeamSecurity teamSecurity, bool visible)
        {
            if (project == null) throw new ArgumentNullException("project");
            if (participant == null) throw new ArgumentNullException("participant");

            ProjectSecurity.DemandEditTeam(project);

            var security = projectDao.GetTeamSecurity(project.ID, participant.ID);
            if (visible)
            {
                if (security != ProjectTeamSecurity.None) security ^= teamSecurity;
            }
            else
            {
                security |= teamSecurity;
            }
            projectDao.SetTeamSecurity(project.ID, participant.ID, security);
        }
Example #24
0
        public virtual bool GetTeamSecurity(Project project, Participant participant, ProjectTeamSecurity teamSecurity)
        {
            if (project == null) throw new ArgumentNullException("project");
            if (participant == null) throw new ArgumentNullException("participant");

            var security = projectDao.GetTeamSecurity(project.ID, participant.ID);
            return (security & teamSecurity) != teamSecurity;
        }
        public IEnumerable<ParticipantWrapper> SetProjectTeamSecurity(int projectid, Guid userId, ProjectTeamSecurity security, bool visible)
        {
            var project = EngineFactory.GetProjectEngine().GetByID(projectid).NotFoundIfNull();
            if (!EngineFactory.GetProjectEngine().IsInTeam(projectid,userId))
            {
                throw new ArgumentOutOfRangeException("userId","Not a project memeber");
            }
            ProjectSecurity.DemandEditTeam(project);

            EngineFactory.GetProjectEngine().SetTeamSecurity(project, EngineFactory.GetParticipantEngine().GetByID(userId), security, visible);
            return GetProjectTeam(projectid);
        }