public bool CanCreateTask() { if (RequestContext.IsInConcreteProject()) { return(ProjectSecurity.CanCreateTask(RequestContext.GetCurrentProject())); } return(ProjectSecurity.IsAdministrator(SecurityContext.CurrentAccount.ID) ? RequestContext.HasAnyProjects() : Global.EngineFactory.GetProjectEngine().GetByParticipant(SecurityContext.CurrentAccount.ID).Where(ProjectSecurity.CanCreateTask).Any()); }
public ProjectSecurityInfo(Project project) { CanCreateMessage = ProjectSecurity.CanCreateMessage(project); CanCreateMilestone = ProjectSecurity.CanCreateMilestone(project); CanCreateTask = ProjectSecurity.CanCreateTask(project); CanEditTeam = ProjectSecurity.CanEditTeam(project); CanReadFiles = ProjectSecurity.CanReadFiles(project); CanReadMilestones = ProjectSecurity.CanReadMilestones(project); CanReadMessages = ProjectSecurity.CanReadMessages(project); CanReadTasks = ProjectSecurity.CanReadTasks(project); }
protected override void PageLoad() { AjaxPro.Utility.RegisterTypeForAjax(typeof(ProjectTeam)); InitView(); var userInfo = Global.EngineFactory.GetParticipantEngine().GetByID(Project.Responsible).UserInfo; _phProjectLeaderCard.Controls.Add(new EmployeeUserCard { EmployeeInfo = userInfo, EmployeeUrl = userInfo.GetUserProfilePageURL(), EmployeeDepartmentUrl = CommonLinkUtility.GetUserDepartment(Project.Responsible) }); List <Participant> team = new List <Participant>(); foreach (Participant prt in Global.EngineFactory.GetProjectEngine().GetTeam(Project.ID)) { var u = CoreContext.UserManager.GetUsers(prt.ID); if (u.ID != ASC.Core.Users.Constants.LostUser.ID && u.Status != EmployeeStatus.Terminated) { team.Add(prt); } } _ltlTeam.Text = RenderProjectTeam(team, team); ASC.Web.Studio.UserControls.Users.UserSelector userSelector = (ASC.Web.Studio.UserControls.Users.UserSelector)LoadControl(ASC.Web.Studio.UserControls.Users.UserSelector.Location); userSelector.BehaviorID = "UserSelector"; userSelector.DisabledUsers.Add(Project.Responsible); userSelector.Title = ProjectResource.ManagmentTeam; userSelector.SelectedUserListTitle = ProjectResource.Team; userSelector.CustomBottomHtml = string.Format("<div style='padding-top:10px'><input id='notify' type='checkbox'/><label for='notify' style='padding-left:10px' >{0}</label></div>", ProjectResource.NotifyProjectTeam); var selectedUsers = new List <Guid>(); foreach (Participant participant in Global.EngineFactory.GetProjectEngine().GetTeam(Project.ID)) { selectedUsers.Add(participant.ID); } userSelector.SelectedUsers = selectedUsers; _phUserSelector.Controls.Add(userSelector); if (ProjectSecurity.CanCreateTask(Project)) { var taskAction = (TaskAction)LoadControl(PathProvider.GetControlVirtualPath("TaskAction.ascx")); phAddTaskPanel.Controls.Add(taskAction); } }
public ProjectSecurityInfo(Project project) { CanCreateMilestone = ProjectSecurity.CanCreateMilestone(project); CanCreateMessage = ProjectSecurity.CanCreateMessage(project); CanCreateTask = ProjectSecurity.CanCreateTask(project); CanEditTeam = ProjectSecurity.CanEditTeam(project); CanReadFiles = ProjectSecurity.CanReadFiles(project); CanReadMilestones = ProjectSecurity.CanReadMilestones(project); CanReadMessages = ProjectSecurity.CanReadMessages(project); CanReadTasks = ProjectSecurity.CanReadTasks(project); IsInTeam = ProjectSecurity.IsInTeam(project, SecurityContext.CurrentAccount.ID, false); CanLinkContact = ProjectSecurity.CanLinkContact(project); }
public string GetActionContent(int prjID, Guid userID) { ProjectSecurity.DemandAuthentication(); var project = Global.EngineFactory.GetProjectEngine().GetByID(prjID); var sb = new StringBuilder(); var ui = CoreContext.UserManager.GetUsers(userID); if (ProjectSecurity.CanCreateTask(project)) { //sb.AppendFormat("<a class='pm-dropdown-item' onclick=\"ASC.Projects.TaskActionPage.init(-1, null, '{0}');ASC.Projects.TaskActionPage.show();\">{1}</a>", userID, TaskResource.AddNewTask); sb.AppendFormat("<a class='pm-dropdown-item' onclick=\"showNewTaskPopup('{0}','{1}')\">{2}</a>", userID, ui.DisplayUserName(), TaskResource.AddNewTask); } sb.AppendFormat("<a class='pm-dropdown-item' onclick=\"ASC.Projects.Reports.generateReportByUrl('{0}')\">{1}</a>", GetReportUri(true, userID), ReportResource.ReportOpenTasks); sb.AppendFormat("<a class='pm-dropdown-item' onclick=\"ASC.Projects.Reports.generateReportByUrl('{0}')\">{1}</a>", GetReportUri(false, userID), ReportResource.ReportClosedTasks); sb.AppendFormat("<a class='pm-dropdown-item' onclick=\"location.replace('mailto:{0}')\">{1}</a>", ui.Email, ProjectResource.ClosedProjectTeamWriteMail); sb.AppendFormat("<a class='pm-dropdown-item' onclick=\"ASC.Controls.JabberClient.open('{0}')\">{1}</a>", ui.UserName, ProjectResource.ClosedProjectTeamWriteInMessenger); return(sb.ToString()); }
public bool CanCreateTask() { return(ProjectSecurity.CanCreateTask(Project)); }
protected override IEnumerable <KeyValuePair <string, object> > GetClientVariables(HttpContext context) { var result = new List <KeyValuePair <string, object> >(5) { RegisterObject("EntryCountOnPage", Global.EntryCountOnPage), RegisterObject("VisiblePageCount", Global.VisiblePageCount) }; var filter = new TaskFilter { SortBy = "title", SortOrder = true, ProjectStatuses = new List <ProjectStatus> { ProjectStatus.Open } }; var projects = Global.EngineFactory.ProjectEngine.GetByFilter(filter) .Select(pr => new { id = pr.ID, title = pr.Title, responsible = pr.Responsible, //created = (ApiDateTime) pr.CreateOn, security = new { canCreateMilestone = ProjectSecurity.CanCreateMilestone(pr), canCreateMessage = ProjectSecurity.CanCreateMessage(pr), canCreateTask = ProjectSecurity.CanCreateTask(pr), canEditTeam = ProjectSecurity.CanEditTeam(pr), canReadFiles = ProjectSecurity.CanReadFiles(pr), canReadMilestones = ProjectSecurity.CanReadMilestones(pr), canReadMessages = ProjectSecurity.CanReadMessages(pr), canReadTasks = ProjectSecurity.CanReadTasks(pr), isInTeam = ProjectSecurity.IsInTeam(pr, SecurityContext.CurrentAccount.ID, false), canLinkContact = ProjectSecurity.CanLinkContact(pr), }, isPrivate = pr.Private, status = pr.Status }); var tags = Global.EngineFactory.TagEngine.GetTags().Select(r => new { value = r.Key, title = r.Value.HtmlEncode() }); result.Add(RegisterObject("Projects", new { response = projects })); result.Add(RegisterObject("Tags", new { response = tags })); if (context.Request.UrlReferrer != null && string.IsNullOrEmpty(HttpUtility.ParseQueryString(context.Request.GetUrlRewriter().Query)["prjID"]) && string.IsNullOrEmpty(HttpUtility.ParseQueryString(context.Request.UrlReferrer.Query)["prjID"])) { filter = new TaskFilter { SortBy = "deadline", SortOrder = false, MilestoneStatuses = new List <MilestoneStatus> { MilestoneStatus.Open } }; var milestones = Global.EngineFactory.MilestoneEngine.GetByFilter(filter) .Select(m => new { id = m.ID, title = m.Title, deadline = SetDate(m.DeadLine, TimeZoneInfo.Local), projectOwner = new { id = m.Project.ID } }); result.Add(RegisterObject("Milestones", new { response = milestones })); } return(result); }
protected override IEnumerable <KeyValuePair <string, object> > GetClientVariables(HttpContext context) { var filter = new TaskFilter { SortBy = "title", SortOrder = true, ProjectStatuses = new List <ProjectStatus> { ProjectStatus.Open } }; var projects = Global.EngineFactory.ProjectEngine.GetByFilter(filter) .Select(pr => new { id = pr.ID, title = pr.Title, responsible = pr.Responsible, //created = (ApiDateTime) pr.CreateOn, security = new { canCreateMilestone = ProjectSecurity.CanCreateMilestone(pr), canCreateMessage = ProjectSecurity.CanCreateMessage(pr), canCreateTask = ProjectSecurity.CanCreateTask(pr), canCreateTimeSpend = ProjectSecurity.CanCreateTimeSpend(pr), canEditTeam = ProjectSecurity.CanEditTeam(pr), canReadFiles = ProjectSecurity.CanReadFiles(pr), canReadMilestones = ProjectSecurity.CanReadMilestones(pr), canReadMessages = ProjectSecurity.CanReadMessages(pr), canReadTasks = ProjectSecurity.CanReadTasks(pr), isInTeam = ProjectSecurity.IsInTeam(pr, SecurityContext.CurrentAccount.ID, false), canLinkContact = ProjectSecurity.CanLinkContact(pr) }, isPrivate = pr.Private, status = pr.Status, taskCountTotal = pr.TaskCountTotal }).ToList(); var tags = Global.EngineFactory.TagEngine.GetTags().Select(r => new { value = r.Key, title = r.Value.HtmlEncode() }).ToList(); var result = new List <KeyValuePair <string, object> >(1) { RegisterObject( new { Global.EntryCountOnPage, Global.VisiblePageCount, Projects = new { response = projects }, Tags = new { response = tags }, ProjectsCount = Global.EngineFactory.ProjectEngine.GetByFilterCount(new TaskFilter()) }) }; filter = new TaskFilter { SortBy = "deadline", SortOrder = false, MilestoneStatuses = new List <MilestoneStatus> { MilestoneStatus.Open } }; var milestones = Global.EngineFactory.MilestoneEngine.GetByFilter(filter) .Select(m => new { id = m.ID, title = m.Title, deadline = SetDate(m.DeadLine, TimeZoneInfo.Local), projectOwner = new { id = m.Project.ID }, status = (int)m.Status }).ToList(); result.Add(RegisterObject(new { Milestones = new { response = milestones } })); return(result); }
public bool CanCreateTask() { return(ProjectSecurity.CanCreateTask(RequestContext.GetCurrentProject())); }