public MessageEngine(IDaoFactory daoFactory, EngineFactory engineFactory) : base(NotifyConstants.Event_NewCommentForMessage, engineFactory) { this.engineFactory = engineFactory; messageDao = daoFactory.GetMessageDao(); commentDao = daoFactory.GetCommentDao(); }
public ProjectEntityEngine(INotifyAction notifyAction, EngineFactory factory) { SubscriptionProvider = NotifySource.Instance.GetSubscriptionProvider(); RecipientProvider = NotifySource.Instance.GetRecipientsProvider(); NotifyAction = notifyAction; FileEngine = factory != null ? factory.GetFileEngine() : null; Factory = factory; }
public TaskEngine(IDaoFactory daoFactory, EngineFactory factory) { _factory = factory; _taskDao = daoFactory.GetTaskDao(); _milestoneDao = daoFactory.GetMilestoneDao(); _fileEngine = factory.GetFileEngine(); _subtaskDao = daoFactory.GetSubtaskDao(); }
public TaskEngine(IDaoFactory daoFactory, EngineFactory factory) : base(NotifyConstants.Event_NewCommentForTask, factory) { this.factory = factory; taskDao = daoFactory.GetTaskDao(); milestoneDao = daoFactory.GetMilestoneDao(); subtaskDao = daoFactory.GetSubtaskDao(); }
internal static List<BaseCalendar> GetUserCalendars(Guid userId) { if (!DbRegistry.IsDatabaseRegistered(DbId)) DbRegistry.RegisterDatabase(DbId, WebConfigurationManager.ConnectionStrings[DbId]); var tenantId = CoreContext.TenantManager.GetCurrentTenant().TenantId; var engineFactory = new EngineFactory(DbId, tenantId); var cals = new List<BaseCalendar>(); var engine = engineFactory.GetProjectEngine(); var projects = engine.GetByParticipant(userId); if (projects != null) { var team = engine.GetTeam(projects.Select(r => r.ID).ToList()); foreach (var p in projects) { var sharingOptions = new SharingOptions(); foreach (var participant in team.Where(r => r.ProjectID == p.ID)) sharingOptions.PublicItems.Add(new SharingOptions.PublicItem { Id = participant.ID, IsGroup = false }); var index = p.ID % CalendarColors.BaseColors.Count; cals.Add(new ProjectCalendar(engineFactory, userId, p, CalendarColors.BaseColors[index].BackgroudColor, CalendarColors.BaseColors[index].TextColor, sharingOptions, false)); } } var folowingProjects = engine.GetFollowing(userId); if (folowingProjects != null) { var team = engine.GetTeam(folowingProjects.Select(r => r.ID).ToList()); foreach (var p in folowingProjects) { if (projects != null && projects.Exists(proj => proj.ID == p.ID)) continue; var sharingOptions = new SharingOptions(); sharingOptions.PublicItems.Add(new SharingOptions.PublicItem { Id = userId, IsGroup = false }); foreach (var participant in team.Where(r => r.ProjectID == p.ID)) sharingOptions.PublicItems.Add(new SharingOptions.PublicItem { Id = participant.ID, IsGroup = false }); var index = p.ID % CalendarColors.BaseColors.Count; cals.Add(new ProjectCalendar(engineFactory, userId, p, CalendarColors.BaseColors[index].BackgroudColor, CalendarColors.BaseColors[index].TextColor, sharingOptions, true)); } } return cals; }
public ProjectCalendar(EngineFactory engine, Guid userId, Project project, string backgroundColor, string textColor, SharingOptions sharingOptions, bool following) { _project = project; _engine = engine; _userId = userId; _following = following; Context.HtmlBackgroundColor = backgroundColor; Context.HtmlTextColor = textColor; Context.CanChangeAlertType = false; Context.CanChangeTimeZone = false; Context.GetGroupMethod = () => Web.Projects.Resources.ProjectsCommonResource.ProductName; Id = _project.UniqID; EventAlertType = EventAlertType.Hour; Name = _project.Title; Description = _project.Description; SharingOptions = sharingOptions; }
private static bool CheckPermission(Project project, UserActivity ua, EngineFactory engineFactory) { var additionalDataParts = ua.AdditionalData.Split('|'); if (additionalDataParts.Length == 0) return false; var entityType = (EntityType)Enum.Parse(typeof(EntityType), additionalDataParts[0], true); if (entityType == EntityType.Message) { return ProjectSecurity.CanReadMessages(project); } if (entityType == EntityType.Task || entityType == EntityType.TimeSpend) { if (ProjectSecurity.CanReadTasks(project)) { return true; } if (entityType == EntityType.Task) { var match = GetIdParam.Match(ua.URL); int taskId; if (match.Success && match.Groups["value"].Success && int.TryParse(match.Groups["value"].Value, out taskId)) { var task = engineFactory.GetTaskEngine().GetByID(taskId); if (ProjectSecurity.CanRead(task)) return true; } return false; } return SecurityContext.CurrentAccount.ID == ua.UserID; } if (entityType == EntityType.Milestone) { var match = GetIdParam.Match(ua.URL); int milestoneId; if (match.Success && match.Groups["value"].Success && int.TryParse(match.Groups["value"].Value, out milestoneId)) { var milestone = engineFactory.GetMilestoneEngine().GetByID(milestoneId); return ProjectSecurity.CanRead(milestone); } return false; } return true; }
public CommentEngine(bool disableNotifications, EngineFactory factory) { DisableNotifications = disableNotifications; TaskEngine = factory.TaskEngine; MessageEngine = factory.MessageEngine; }
public CommentEngine(IDaoFactory daoFactory, EngineFactory factory) { commentDao = daoFactory.GetCommentDao(); this.factory = factory; }
private static bool CheckAccess(UserActivity activity, EngineFactory engineFactory) { if (!string.IsNullOrEmpty(activity.SecurityId)) { var data = activity.SecurityId.Split('|'); if (data.Length == 3) { try { var entityType = (EntityType)Enum.Parse(typeof(EntityType), data[0], true); var entityId = string.IsNullOrEmpty(data[1]) ? -1 : int.Parse(data[1]); var projectId = 0; if (!int.TryParse(data[2], out projectId)) { return(false); } var project = engineFactory.GetProjectEngine().GetByID(projectId); if (project.Private) { //Switch types switch (entityType) { case EntityType.Team: case EntityType.Project: return(ProjectSecurity.CanRead(project)); case EntityType.Milestone: return(ProjectSecurity.CanRead(engineFactory.GetMilestoneEngine().GetByID(entityId))); case EntityType.Task: return(ProjectSecurity.CanRead(engineFactory.GetTaskEngine().GetByID(entityId))); case EntityType.Message: return(ProjectSecurity.CanReadMessages(project)); case EntityType.File: return(ProjectSecurity.CanReadFiles(project)); case EntityType.TimeSpend: { if (entityId < 0) { return(ProjectSecurity.CanRead(project)); } return(ProjectSecurity.CanRead(engineFactory.GetTaskEngine().GetByID(entityId))); } } } } catch (Exception) { return(false); } } } else if (!string.IsNullOrEmpty(activity.ContainerID)) { //Go long way. Parse old data int prjId; if (int.TryParse(activity.ContainerID, out prjId)) { var prj = engineFactory.GetProjectEngine().GetByID(prjId); if (prj != null) { if (prj.Private) { try { return(!string.IsNullOrEmpty(activity.AdditionalData) && CheckPermission(prj, activity, engineFactory)); } catch { return(false); } } } } } return(true); }
public ImportFromBasecamp(string url, string token, HttpContext context, Guid initiatorId, bool withClosed,bool disableNotifications, EngineFactory engineFactory) { NewUsersID = new List<UserIDWrapper>(); NewProjectsID = new List<ProjectIDWrapper>(); NewMilestonesID = new List<MilestoneIDWrapper>(); NewMessagesID = new List<MessageIDWrapper>(); NewTasksID = new List<TaskIDWrapper>(); NewFileCategoriesID = new List<FileCategoryIDWrapper>(); NewFilesID = new List<FileIDWrapper>(); Attachments = new List<IAttachment>(); _url = PrepUrl(url).ToString().TrimEnd('/'); _token = token; Context = context; _initiatorId = initiatorId; _withClosed = withClosed; _disableNotifications = disableNotifications; _engineFactory = engineFactory; _engineFactory.DisableNotifications = disableNotifications; Status = new ImportStatus(_url, _token); Id = CoreContext.TenantManager.GetCurrentTenant().TenantId; _log = LogManager.GetLogger("ASC.Project.BasecampImport"); _principal = Thread.CurrentPrincipal; }
public SearchEngine(EngineFactory factory) { searchItems = new List <SearchItem>(); CommentEngine = factory.CommentEngine; TaskEngine = factory.TaskEngine; }
public MilestoneEngine(IDaoFactory daoFactory, EngineFactory engineFactory) { _engineFactory = engineFactory; _milestoneDao = daoFactory.GetMilestoneDao(); }
public CachedProjectEngine(IDaoFactory daoFactory, EngineFactory factory) : base(daoFactory, factory) { }
public ProjectEngine(IDaoFactory daoFactory, EngineFactory factory) { this.factory = factory; projectDao = daoFactory.GetProjectDao(); participantDao = daoFactory.GetParticipantDao(); }
private static bool CheckAccess(UserActivity activity, EngineFactory engineFactory) { if (!string.IsNullOrEmpty(activity.SecurityId)) { var data = activity.SecurityId.Split('|'); if (data.Length == 3) { try { var entityType = (EntityType)Enum.Parse(typeof(EntityType), data[0], true); var entityId = string.IsNullOrEmpty(data[1]) ? -1 : int.Parse(data[1]); var projectId = 0; if (!int.TryParse(data[2], out projectId)) { return false; } var project = engineFactory.GetProjectEngine().GetByID(projectId); if (project.Private) { //Switch types switch (entityType) { case EntityType.Team: case EntityType.Project: return ProjectSecurity.CanRead(project); case EntityType.Milestone: return ProjectSecurity.CanRead(engineFactory.GetMilestoneEngine().GetByID(entityId)); case EntityType.Task: return ProjectSecurity.CanRead(engineFactory.GetTaskEngine().GetByID(entityId)); case EntityType.Message: return ProjectSecurity.CanReadMessages(project); case EntityType.File: return ProjectSecurity.CanReadFiles(project); case EntityType.TimeSpend: { if (entityId < 0) { return ProjectSecurity.CanRead(project); } return ProjectSecurity.CanRead(engineFactory.GetTaskEngine().GetByID(entityId)); } } } } catch (Exception) { return false; } } } else if (!string.IsNullOrEmpty(activity.ContainerID)) { //Go long way. Parse old data int prjId; if (int.TryParse(activity.ContainerID, out prjId)) { var prj = engineFactory.GetProjectEngine().GetByID(prjId); if (prj != null) { if (prj.Private) { try { return !string.IsNullOrEmpty(activity.AdditionalData) && CheckPermission(prj, activity, engineFactory); } catch { return false; } } } } } return true; }
public static bool IsAllowedToView(UserActivity activity, EngineFactory engineFactory) { if (activity != null) { activity.SecurityFiltered = true;//Set to true to miss later checks //Root key is project id. will be used to drop cache return ActivitySecurityCache.Get(activity.ContainerID, SecurityContext.CurrentAccount.ID + activity.ID.ToString(), () => CheckAccess(activity, engineFactory)); } //If empty - then don't care return true; }
public MessageEngine(IDaoFactory daoFactory, EngineFactory engineFactory) { _engineFactory = engineFactory; _messageDao = daoFactory.GetMessageDao(); _commentDao = daoFactory.GetCommentDao(); }
public SubtaskEngine(IDaoFactory daoFactory, EngineFactory factory) { _factory = factory; _subtaskDao = daoFactory.GetSubtaskDao(); _taskDao = daoFactory.GetTaskDao(); }
public ProjectActivityEngine(IDaoFactory daoFactory, EngineFactory engineFactory) { }
public CachedProjectEngine(bool disableNotificationParameter, EngineFactory factory) : base(disableNotificationParameter, factory) { }
public TemplateEngine(IDaoFactory daoFactory, EngineFactory factory) { _factory = factory; _dao = daoFactory.GetTemplateDao(); }
public ReportEngine(IDaoFactory daoFactory, EngineFactory factory) { reportDao = daoFactory.GetReportDao(); this.factory = factory; }
public ImportFromBasecamp(string url, string userName, string password, Guid initiatorId, bool withClosed, bool disableNotifications, bool importUsersAsCollaborators, EngineFactory engineFactory, IEnumerable<int> projects) { _newUsersID = new List<UserIDWrapper>(); _newProjectsID = new List<ProjectIDWrapper>(); _newMilestonesID = new List<MilestoneIDWrapper>(); _newMessagesID = new List<MessageIDWrapper>(); _newTasksID = new List<TaskIDWrapper>(); _newFilesID = new List<FileIDWrapper>(); _url = (PrepUrl(url).ToString().TrimEnd('/') + "/api/v1"); _userName = userName; _password = password; _initiatorId = initiatorId; _withClosed = withClosed; _disableNotifications = disableNotifications; _importUsersAsCollaborators = importUsersAsCollaborators; _engineFactory = engineFactory; _engineFactory.DisableNotifications = disableNotifications; Status = new ImportStatus(_url); Id = TenantProvider.CurrentTenantID; _log = LogManager.GetLogger("ASC.Project.BasecampImport"); _principal = Thread.CurrentPrincipal; _projects = projects; }