protected void Page_Load(object sender, EventArgs e) { int projectID = QueryHelper.GetInteger("projectid", 0); ProjectInfo pi = ProjectInfoProvider.GetProjectInfo(projectID); if (pi != null) { if (pi.ProjectSiteID != CMSContext.CurrentSiteID) { RedirectToInformation(GetString("general.notassigned")); } } // Prepare the actions string[,] actions = new string[1, 6]; actions[0, 0] = HeaderActions.TYPE_HYPERLINK; actions[0, 1] = GetString("pm.project.new"); actions[0, 3] = ResolveUrl("Edit.aspx"); actions[0, 5] = GetImageUrl("Objects/PM_Project/add.png"); // Set the actions ICMSMasterPage master = this.CurrentMaster; master.HeaderActions.Actions = actions; // Set the title PageTitle title = master.Title; ScriptHelper.RegisterTitleScript(this, GetString("projectmanagement.projects")); }
/// <summary> /// Handles UniGrid's OnAction event. /// </summary> /// <param name="actionName">Name of the action which should be performed</param> /// <param name="actionArgument">ID of the item the action should be performed with</param> protected void gridElem_OnAction(string actionName, object actionArgument) { RaiseOnAction(actionName, actionArgument); int projectId = ValidationHelper.GetInteger(actionArgument, 0); if (projectId > 0) { switch (actionName.ToLowerCSafe()) { case "edit": SelectedItemID = projectId; RaiseOnEdit(); break; case "delete": // Set deleted item id SetValue("DeletedItemID", projectId); if (CheckPermissions("CMS.ProjectManagement", PERMISSION_MANAGE)) { // Use try/catch due to license check try { // Delete the object ProjectInfoProvider.DeleteProjectInfo(projectId); RaiseOnDelete(); } catch (Exception ex) { ShowError(ex.Message); } } break; } } }
/// <summary> /// Checks whether current user can delete task. /// </summary> /// <param name="permissionType">Permission type</param> /// <param name="modulePermissionType">Module permission type</param> /// <param name="sender">Sender object</param> void ucTaskList_OnCheckPermissionsExtended(string permissionType, string modulePermissionType, CMSAdminControl sender) { int itemID = ucTaskEdit.ItemID; // If edit task ItemID is 0, try get from list if (itemID == 0) { itemID = ucTaskList.SelectedItemID; } // Get task info for currently deleted task ProjectTaskInfo pti = ProjectTaskInfoProvider.GetProjectTaskInfo(itemID); // Check permission only for existing tasks and tasks assigned to some project if ((pti != null) && (pti.ProjectTaskProjectID > 0)) { // Check whether user is allowed to modify or delete task if (!ProjectInfoProvider.IsAuthorizedPerProject(pti.ProjectTaskProjectID, permissionType, CMSContext.CurrentUser)) { lblError.Visible = true; lblError.Text = GetString("pm.project.permission"); sender.StopProcessing = true; } } }
/// <summary> /// Handles the Load event of the Page control. /// </summary> protected void Page_Load(object sender, EventArgs e) { gridMatrix.OnItemChanged += new UniMatrix.ItemChangedEventHandler(gridMatrix_OnItemChanged); gridMatrix.StopProcessing = true; gridMatrix.ColumnsPreferedOrder = string.Join(",", allowedPermissions); if (ProjectID > 0) { project = ProjectInfoProvider.GetProjectInfo(ProjectID); // Check whether the project still exists EditedObject = project; } // Handle page chnaged event gridMatrix.OnPageChanged += new EventHandler <EventArgs>(gridMatrix_OnPageChanged); // Disable permission matrix if user has no MANAGE rights if (!ProjectInfoProvider.IsAuthorizedPerProject(ProjectID, PERMISSION_MANAGE, CMSContext.CurrentUser)) { Enable = false; gridMatrix.Enabled = false; lblError.Text = String.Format(GetString("CMSSiteManager.AccessDeniedOnPermissionName"), "Manage"); lblError.Visible = true; } }
/// <summary> /// Gets and bulk updates projects. Called when the "Get and bulk update projects" button is pressed. /// Expects the CreateProject method to be run first. /// </summary> private bool GetAndBulkUpdateProjects() { // Prepare the parameters string where = "ProjectName LIKE N'MyNewProject%'"; string orderBy = ""; int topN = 0; string columns = ""; // Get the data DataSet projects = ProjectInfoProvider.GetProjects(where, orderBy, topN, columns); if (!DataHelper.DataSourceIsEmpty(projects)) { // Loop through the individual items foreach (DataRow projectDr in projects.Tables[0].Rows) { // Create object from DataRow ProjectInfo modifyProject = new ProjectInfo(projectDr); // Update the properties modifyProject.ProjectDisplayName = modifyProject.ProjectDisplayName.ToUpper(); // Save the changes ProjectInfoProvider.SetProjectInfo(modifyProject); } return(true); } return(false); }
protected void Page_Load(object sender, EventArgs e) { SetupControls(); // Set edited task EditedObject = ProjectTaskObj ?? new ProjectTaskInfo(); // Check whether the project still exists if ((ProjectID > 0) && (ProjectInfoProvider.GetProjectInfo(ProjectID) == null)) { RedirectToInformation("editedobject.notexists"); } // Initialize HTML Editor htmlTaskDescription.AutoDetectLanguage = false; htmlTaskDescription.DefaultLanguage = Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName; htmlTaskDescription.EditorAreaCSS = ""; htmlTaskDescription.ToolbarSet = "ProjectManagement"; // Check stop processing if (StopProcessing) { return; } ReloadData(); btnOk.Visible = ShowOKButton; dtpProjectTaskDeadline.IsLiveSite = IsLiveSite; // Set associated controls for form controls due to validity lblProjectTaskOwnerID.AssociatedControlClientID = selectorOwner.ValueElementID; lblProjectTaskAssignedToUserID.AssociatedControlClientID = selectorAssignee.ValueElementID; }
/// <summary> /// Creates project task. Called when the "Create task" button is pressed. /// </summary> private bool CreateProjectTask() { ProjectInfo project = ProjectInfoProvider.GetProjectInfo("MyNewProject", SiteContext.CurrentSiteID, 0); ProjectTaskStatusInfo status = ProjectTaskStatusInfoProvider.GetProjectTaskStatusInfo("NotStarted"); ProjectTaskPriorityInfo priority = ProjectTaskPriorityInfoProvider.GetProjectTaskPriorityInfo("Normal"); if ((project != null) && (status != null) && (priority != null)) { // Create new project task object ProjectTaskInfo newTask = new ProjectTaskInfo(); int currentUserID = MembershipContext.AuthenticatedUser.UserID; // Set the properties newTask.ProjectTaskDisplayName = "My new task"; newTask.ProjectTaskCreatedByID = currentUserID; newTask.ProjectTaskOwnerID = currentUserID; newTask.ProjectTaskAssignedToUserID = currentUserID; newTask.ProjectTaskStatusID = status.TaskStatusID; newTask.ProjectTaskPriorityID = priority.TaskPriorityID; newTask.ProjectTaskProjectID = project.ProjectID; // Save the project task ProjectTaskInfoProvider.SetProjectTaskInfo(newTask); return(true); } return(false); }
/// <summary> /// Check whether user can delete project. /// </summary> private void ucProjectList_OnCheckPermissions(string permissionType, CMSAdminControl sender) { // Indicates whether current user is owner bool isOwner = false; // Get project id int projectId = ValidationHelper.GetInteger(sender.GetValue("DeletedItemID"), 0); // Check whether project id is valid if (projectId > 0) { // Try get project info ProjectInfo proj = ProjectInfoProvider.GetProjectInfo(projectId); // Check whethr peoject object exists and if current user is owner if ((proj != null) && (proj.ProjectOwner == CMSContext.CurrentUser.UserID)) { isOwner = true; } } // If user is owner or can create project, allow delete project if (!isOwner && !IsAuthorizedPerCreateProject()) { // Show error lblError.Visible = true; // Set error message lblError.Text = GetString("pm.project.permission"); // Stop edit control processing sender.StopProcessing = true; } }
protected override void OnInit(EventArgs e) { // Get the IDs from query string projectId = QueryHelper.GetInteger("projectid", 0); ProjectInfo pi = ProjectInfoProvider.GetProjectInfo(projectId); if (pi != null) { if (pi.ProjectSiteID != CMSContext.CurrentSiteID) { RedirectToInformation(GetString("general.notassigned")); } } assigneeId = QueryHelper.GetInteger("assigneeid", 0); ownerId = QueryHelper.GetInteger("ownerid", 0); editElem.ProjectID = projectId; editElem.ItemID = QueryHelper.GetInteger("projecttaskid", 0); editElem.ProjectTaskAssigneeID = assigneeId; editElem.ProjectTaskOwnerID = ownerId; editElem.OnSaved += new EventHandler(editElem_OnSaved); base.OnInit(e); }
/// <summary> /// Updates current project info after upload events (upload and delete). /// </summary> private void TouchProjectInfo() { if (ProjectObj != null) { ProjectInfoProvider.SetProjectInfo(ProjectObj); } }
protected void Page_Load(object sender, EventArgs e) { int projectId = QueryHelper.GetInteger("projectid", 0); ProjectInfo pi = ProjectInfoProvider.GetProjectInfo(projectId); if (pi != null) { if (pi.ProjectSiteID != SiteContext.CurrentSiteID) { RedirectToInformation(GetString("general.notassigned")); } } if (projectId > 0) { // Display project tasks listElem.ProjectID = projectId; listElem.OrderByType = ProjectTaskOrderByEnum.ProjectOrder; listElem.OrderBy = "TaskPriorityOrder ASC, ProjectTaskDeadline DESC"; } else { // Display all task (project + ad-hoc tasks) listElem.Grid.GridName = "~/CMSModules/ProjectManagement/Controls/UI/ProjectTask/ListAll.xml"; listElem.OrderBy = "ProjectTaskDisplayName"; listElem.SiteName = SiteContext.CurrentSiteName; } HeaderAction action = new HeaderAction(); action.Text = (projectId > 0) ? GetString("pm.projecttask.new") : GetString("pm.projecttask.newpersonal"); action.RedirectUrl = ResolveUrl("Edit.aspx" + ((projectId > 0) ? ("?projectid=" + projectId) : "")); CurrentMaster.HeaderActions.AddAction(action); }
void Control_OnAfterDataLoad(object sender, EventArgs e) { if (Project == null) { return; } int groupId = QueryHelper.GetInteger("parentobjectid", 0); // Set group ID to user selector for project owner var ownerControl = Control.FieldControls["ProjectOwner"]; Type ownerControlType = ownerControl.GetType(); PropertyInfo groupIdProperty = ownerControlType.GetProperty("GroupID"); if (groupIdProperty != null) { groupIdProperty.SetValue(ownerControl, groupId, null); } if (Project.ProjectID > 0) { // Load progress int progress = ProjectInfoProvider.GetProjectProgress(Project.ProjectID); Control.FieldControls["ProjectProgress"].Text = ProjectTaskInfoProvider.GenerateProgressHtml(progress, true); } else { Project.ProjectGroupID = groupId; Control.FieldsToHide.Add("ProjectProgress"); Control.FieldsToHide.Add("ProjectAttachments"); } }
/// <summary> /// Handles the Load event of the Page control. /// </summary> protected void Page_Load(object sender, EventArgs e) { gridMatrix.OnItemChanged += gridMatrix_OnItemChanged; gridMatrix.StopProcessing = true; gridMatrix.ColumnsPreferedOrder = string.Join(",", mAllowedPermissions); if (ProjectID > 0) { mProject = ProjectInfoProvider.GetProjectInfo(ProjectID); // Check whether the project still exists EditedObject = mProject; } // Handle page chnaged event gridMatrix.OnPageChanged += gridMatrix_OnPageChanged; // Disable permission matrix if user has no MANAGE rights if (!ProjectInfoProvider.IsAuthorizedPerProject(ProjectID, PERMISSION_MANAGE, MembershipContext.AuthenticatedUser)) { Enable = false; gridMatrix.Enabled = false; lblError.Text = String.Format(GetString("general.accessdeniedonpermissionname"), "Manage"); lblError.Visible = true; } }
/// <summary> /// Gets the sorting arrows visibility according to the settings of the project or other circumstances. /// </summary> private bool GetSortingArrowsVisibility() { bool arrowsVisible = false; // Hide/show sorting arrows with dependence on project ordering if (ProjectID > 0) { if (ProjectInfoProvider.IsAuthorizedPerProject(ProjectID, ProjectManagementPermissionType.MODIFY, CMSContext.CurrentUser) || CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.ProjectManagement", CMSAdminControl.PERMISSION_MANAGE)) { arrowsVisible = true; if (OrderByType == ProjectTaskOrderByEnum.ProjectOrder) { ProjectInfo projectObj = ProjectInfoProvider.GetProjectInfo(ProjectID); if (projectObj != null) { arrowsVisible = projectObj.ProjectAllowOrdering; } } } } // Tasks list only else { // Show sorting only for all site tasks if (String.IsNullOrEmpty(SiteName)) { arrowsVisible = true; } } return(arrowsVisible); }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> protected override void Initialize() { IProjectInfoProvider solutionInfoProvider = new SolutionInfoProvider(this); IProjectInfoProvider projectInfoProvider = new ProjectInfoProvider(this); IProjectInfoProvider fileInfoProvider = new FileInfoProvider(this); IProjectInfoProvider solutionSnapshotInfoProvider = new SolutionInfoProvider(this, true); IProjectInfoProvider projectSnapshotInfoProvider = new ProjectInfoProvider(this, true); IDexterInfoProvider dexterInfoProvider = new SettingsStoreDexterInfoProvider(this); ConfigurationProvider solutionConfigProvider = new ConfigurationProvider(solutionInfoProvider, dexterInfoProvider); ConfigurationProvider projectConfigProvider = new ConfigurationProvider(projectInfoProvider, dexterInfoProvider); ConfigurationProvider fileConfigProvider = new ConfigurationProvider(fileInfoProvider, dexterInfoProvider); ConfigurationProvider solutionSnapshotConfigProvider = new ConfigurationProvider(solutionSnapshotInfoProvider, dexterInfoProvider); ConfigurationProvider projectSnapshotConfigProvider = new ConfigurationProvider(projectSnapshotInfoProvider, dexterInfoProvider); var commandSet = new Guid("2ed6d891-bce1-414d-8251-80a0800a831f"); DexterAnalysisCommand fileAnalysisCommand = new DexterFileAnalysisCommand(this, 0x0102, commandSet, fileConfigProvider); DexterAnalysisCommand projectAnalysisCommand = new DexterSolutionAnalysisCommand(this, 0x0101, commandSet, projectConfigProvider); DexterAnalysisCommand solutionAnalysisCommand = new DexterSolutionAnalysisCommand(this, 0x0100, commandSet, solutionConfigProvider); DexterAnalysisCommand projectSnapshotCommand = new DexterSolutionAnalysisCommand(this, 0x0111, commandSet, projectSnapshotConfigProvider); DexterAnalysisCommand solutionSnapshotCommand = new DexterSolutionAnalysisCommand(this, 0x0110, commandSet, solutionSnapshotConfigProvider); settingsCommand = new SettingsCommand(this, 0x0103, commandSet); dashboardCommand = new DashboardCommand(this, 0x0104, commandSet, dexterInfoProvider); cancelCommand = new CancelCommand(this, 0x0105, commandSet); DexterAnalysisCommand solutionAnalysisToolbarCommand = new DexterSolutionAnalysisCommand(this, 0x0200, commandSet, solutionConfigProvider); settingsToolbarCommand = new SettingsCommand(this, 0x0203, commandSet); dashboardToolbarCommand = new DashboardCommand(this, 0x0204, commandSet, dexterInfoProvider); cancelToolbarCommand = new CancelCommand(this, 0x0205, commandSet); analysisCommands.Add(fileAnalysisCommand); analysisCommands.Add(projectAnalysisCommand); analysisCommands.Add(solutionAnalysisCommand); analysisCommands.Add(projectSnapshotCommand); analysisCommands.Add(solutionSnapshotCommand); analysisCommands.Add(solutionAnalysisToolbarCommand); foreach (DexterAnalysisCommand analysisCommand in analysisCommands) { analysisCommand.AnalysisStarted += onAnalysisStarted; analysisCommand.AnalysisFinished += onAnalysisFinished; } SettingsPage settingsPage = (SettingsPage)GetDialogPage(typeof(SettingsPage)); settingsPage.SettingsChanged += onSettingsChanged; PeerReviewService.Instance = new PeerReviewService(new DexterTextService()); RegisterSolutionManager(); CreateReviewCommentManager(); base.Initialize(); }
/// <summary> /// Deletes project. Called when the "Delete project" button is pressed. /// Expects the CreateProject method to be run first. /// </summary> private bool DeleteProject() { // Get the project ProjectInfo deleteProject = ProjectInfoProvider.GetProjectInfo("MyNewProject", SiteContext.CurrentSiteID, 0); // Delete the project ProjectInfoProvider.DeleteProjectInfo(deleteProject); return(deleteProject != null); }
/// <summary> /// Checks delete and modify permissions (delete and up/down actions) /// </summary> /// <param name="permissionType">Permission type</param> /// <param name="modulePermissionType">Module permission type</param> /// <param name="sender">Sender object</param> private void ucTaskList_OnCheckPermissionsExtended(string permissionType, string modulePermissionType, CMSAdminControl sender) { // Check whether user is allowed to modify or delete task if (!ProjectInfoProvider.IsAuthorizedPerProject(ProjectID, permissionType, MembershipContext.AuthenticatedUser) && !IsAuthorizedPerProjectAccess()) { lblError.Visible = true; lblError.Text = GetString("pm.project.permission"); sender.StopProcessing = true; } }
protected void Page_Load(object sender, EventArgs e) { // Live site mode usProjects.IsLiveSite = this.IsLiveSite; // Where condition string where = "(ProjectGroupID IS NULL AND ProjectNodeID IS NOT NULL AND ProjectSiteID = " + CMSContext.CurrentSiteID + ")"; // Security where where = ProjectInfoProvider.CombineSecurityWhereCondition(where, CMSContext.CurrentUser, CMSContext.CurrentSiteName); // Set where condition to uniselector usProjects.WhereCondition = where; }
/// <summary> /// Handles the Load event of the Page control. /// </summary> protected void Page_Load(object sender, EventArgs e) { int projectId = QueryHelper.GetInteger("projectid", 0); int groupId = QueryHelper.GetInteger("groupid", 0); int selectedTab = QueryHelper.GetInteger("tab", 0); // Prepare the tabs string[,] tabs = new string[3, 4]; tabs[0, 0] = GetString("pm.projecttask"); tabs[0, 1] = "SetHelpTopic('helpTopic', 'pm_project_tasks');"; tabs[0, 2] = URLHelper.ResolveUrl("~/CMSModules/Groups/Tools/ProjectManagement/ProjectTask/List.aspx?projectid=" + projectId + "&groupid=" + groupId); tabs[1, 0] = GetString("general.general"); tabs[1, 1] = "SetHelpTopic('helpTopic', 'pm_project_edit');"; tabs[1, 2] = URLHelper.ResolveUrl("~/CMSModules/Groups/Tools/ProjectManagement/Project/Edit.aspx?projectid=" + projectId + "&groupid=" + groupId); tabs[2, 0] = GetString("general.security"); tabs[2, 1] = "SetHelpTopic('helpTopic', 'pm_project_security');"; tabs[2, 2] = URLHelper.ResolveUrl("~/CMSModules/Groups/Tools/ProjectManagement/Project/Security.aspx?projectid=" + projectId + "&groupid=" + groupId); // Set the tabs ICMSMasterPage master = this.CurrentMaster; master.Tabs.Tabs = tabs; master.Tabs.SelectedTab = selectedTab; master.Tabs.UrlTarget = "content"; ProjectInfo projectObj = ProjectInfoProvider.GetProjectInfo(projectId); string projectName = ""; if (projectObj != null) { projectName = projectObj.ProjectDisplayName; } // Set the title PageTitle title = this.CurrentMaster.Title; title.HelpName = "helpTopic"; title.HelpTopicName = "pm_project_tasks"; // Prepare the breadcrumbs string[,] breadcrumbs = new string[2, 3]; breadcrumbs[0, 0] = GetString("pm.project.list"); breadcrumbs[0, 1] = URLHelper.ResolveUrl("~/CMSModules/Groups/Tools/ProjectManagement/Project/List.aspx?groupid=" + groupId); breadcrumbs[0, 2] = "_parent"; breadcrumbs[1, 0] = HTMLHelper.HTMLEncode(projectName); // Set the title title.Breadcrumbs = breadcrumbs; }
/// <summary> /// Check permission handler. /// </summary> private void controls_OnCheckPermissions(string permissionType, CMSAdminControl sender) { ProjectInfo pi = ProjectInfoProvider.GetProjectInfo(ProjectID); if (pi != null) { // If user is group admin => allow all actions if (!CMSContext.CurrentUser.IsGroupAdministrator(pi.ProjectGroupID)) { sender.StopProcessing = true; } } }
protected void Page_Load(object sender, EventArgs e) { int projectID = QueryHelper.GetInteger("projectid", 0); ProjectInfo pi = ProjectInfoProvider.GetProjectInfo(projectID); if (pi != null) { if (pi.ProjectSiteID != SiteContext.CurrentSiteID) { RedirectToInformation(GetString("general.notassigned")); } } }
/// <summary> /// Checks whether user can create new task. /// </summary> protected bool IsAuthorizedPerCreateTask() { // Keep current user info object CurrentUserInfo cui = CMSContext.CurrentUser; // If user can edit project => can create task if (IsAuthorizedPerProjectEdit()) { return(true); } // Check create permission return(ProjectInfoProvider.IsAuthorizedPerProject(this.ProjectID, ProjectManagementPermissionType.CREATE, cui)); }
/// <summary> /// Checks whether user can create new task. /// </summary> protected bool IsAuthorizedPerCreateTask() { // Keep current user info object var cui = MembershipContext.AuthenticatedUser; // If user can edit project => can create task if (IsAuthorizedPerProjectEdit()) { return(true); } // Check create permission return(ProjectInfoProvider.IsAuthorizedPerProject(ProjectID, ProjectManagementPermissionType.CREATE, cui)); }
protected override void OnInit(EventArgs e) { // Get project id from query string projectId = QueryHelper.GetInteger("projectid", 0); // Check whether user can see required project if (!ProjectInfoProvider.IsAuthorizedPerProject(projectId, ProjectManagementPermissionType.READ, CMSContext.CurrentUser)) { RedirectToAccessDenied("CMS.ProjectManagement", "Manage"); } editElem.ProjectID = QueryHelper.GetInteger("projectid", 0); base.OnInit(e); }
/// <summary> /// Load data. /// </summary> public void LoadData() { process = true; if (!Visible || StopProcessing) { EnableViewState = false; process = false; } IsLiveSite = false; if (ProjectID > 0) { // Get information on current project project = ProjectInfoProvider.GetProjectInfo(ProjectID); } // Get project resource resProjects = ResourceInfoProvider.GetResourceInfo("CMS.ProjectManagement"); if ((resProjects != null) && (project != null)) { QueryDataParameters parameters = new QueryDataParameters(); parameters.Add("@ID", resProjects.ResourceId); parameters.Add("@ProjectID", project.ProjectID); parameters.Add("@SiteID", CMSContext.CurrentSiteID); string where = ""; int groupId = project.ProjectGroupID; // Build where condition if (groupId > 0) { where = "RoleGroupID=" + groupId.ToString() + " AND PermissionDisplayInMatrix = 0"; } else { where = "RoleGroupID IS NULL AND PermissionDisplayInMatrix = 0"; } // Setup matrix control gridMatrix.IsLiveSite = IsLiveSite; gridMatrix.QueryParameters = parameters; gridMatrix.WhereCondition = where; gridMatrix.ContentBefore = "<table class=\"PermissionMatrix\" cellspacing=\"0\" cellpadding=\"0\" rules=\"rows\" border=\"1\" style=\"border-collapse:collapse;\">"; gridMatrix.ContentAfter = "</table>"; } }
/// <summary> /// Builds where condition. /// </summary> private string ucProjectList_BuildCondition(object sender, string whereCondition) { // Do not display projects without relation to document whereCondition = SqlHelperClass.AddWhereCondition(whereCondition, "ProjectNodeID IS NOT NULL"); // Finished projects if (!ShowFinishedProjects) { whereCondition = SqlHelperClass.AddWhereCondition(whereCondition, "StatusIsFinished=0"); } // Security condition whereCondition = ProjectInfoProvider.CombineSecurityWhereCondition(whereCondition, CMSContext.CurrentUser, CMSContext.CurrentSiteName); return(whereCondition); }
/// <summary> /// Load data. /// </summary> public void LoadData() { mProcess = true; if (!Visible || StopProcessing) { EnableViewState = false; mProcess = false; } IsLiveSite = false; if (ProjectID > 0) { // Get information on current project mProject = ProjectInfoProvider.GetProjectInfo(ProjectID); } // Get project resource mResProjects = ResourceInfoProvider.GetResourceInfo("CMS.ProjectManagement"); if ((mResProjects != null) && (mProject != null)) { QueryDataParameters parameters = new QueryDataParameters(); parameters.Add("@ID", mResProjects.ResourceId); parameters.Add("@ProjectID", mProject.ProjectID); parameters.Add("@SiteID", SiteContext.CurrentSiteID); string where; int groupId = mProject.ProjectGroupID; // Build where condition if (groupId > 0) { where = "RoleGroupID=" + groupId + " AND PermissionDisplayInMatrix = 0"; } else { where = "RoleGroupID IS NULL AND PermissionDisplayInMatrix = 0"; } // Setup matrix control gridMatrix.IsLiveSite = IsLiveSite; gridMatrix.QueryParameters = parameters; gridMatrix.WhereCondition = where; gridMatrix.CssClass = "permission-matrix"; } }
/// <summary> /// Checks whether current user can edit the project. /// </summary> protected bool IsAuthorizedPerProjectEdit() { // Keep current user info object var cui = MembershipContext.AuthenticatedUser; // Global admin is allowed for all actions if (cui.IsGlobalAdministrator) { return(true); } // Get project info object ProjectInfo pi = ProjectInfoProvider.GetProjectInfo(ProjectID); bool result = false; // Check whether project info is available, if not, user can't edit project if (pi != null) { // Project owner can edit the project if (pi.ProjectOwner == cui.UserID) { result = true; } // Community admin and group admin can edit project on group pages else if (pi.ProjectGroupID > 0) { result = cui.IsGroupAdministrator(pi.ProjectGroupID); } // Project managmnet admin can edt projects on regular pages else { result = cui.IsAuthorizedPerResource("CMS.ProjectManagement", PERMISSION_MANAGE); } } // Check project access if (!result) { return(IsAuthorizedPerProjectAccess()); } return(result); ; }
/// <summary> /// Removes authorized role to project. Called when the "Remove authorized role" button is pressed. /// Expects the CreateProject and AddAuthorizedRole methods to be run first. /// </summary> private bool RemoveAuthorizedRole() { // Get the project ProjectInfo project = ProjectInfoProvider.GetProjectInfo("MyNewProject", SiteContext.CurrentSiteID, 0); RoleInfo role = RoleInfoProvider.GetRoleInfo("CMSDeskAdmin", SiteContext.CurrentSiteID); PermissionNameInfo permission = PermissionNameInfoProvider.GetPermissionNameInfo("AccessToProject", "ProjectManagement", null); if ((project != null) && (role != null) && (permission != null)) { // Remove relationship ProjectRolePermissionInfoProvider.RemoveRelationship(project.ProjectID, role.RoleID, permission.PermissionId); return(true); } return(false); }
/// <summary> /// CreateURL of current task from current document. /// </summary> private string CreateTaskURL() { String url = String.Empty; if (ProjectTaskObj != null) { if (ProjectTaskObj.ProjectTaskProjectID != 0) { // Find project node url ProjectInfo pi = ProjectInfoProvider.GetProjectInfo(ProjectTaskObj.ProjectTaskProjectID); if (pi != null) { TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser); TreeNode treeNode = tree.SelectSingleNode(pi.ProjectNodeID); if (treeNode != null) { SiteInfo si = SiteInfoProvider.GetSiteInfo(pi.ProjectSiteID); if (si != null) { // Create absolute URL of project's node url = URLHelper.GetAbsoluteUrl(DocumentURLProvider.GetUrl(treeNode.NodeAliasPath, String.Empty, si.SiteName)); // Add projectID as parameter url = URLHelper.UpdateParameterInUrl(url, "projectid", ProjectTaskObj.ProjectTaskProjectID.ToString()); // Add taskID as parameter url = URLHelper.UpdateParameterInUrl(url, "taskid", ProjectTaskObj.ProjectTaskID.ToString()); } } } } else { // If Ad hoc task create url to current node url = URLHelper.GetAbsoluteUrl(RequestContext.CurrentURL); // Remove query url = URLHelper.RemoveQuery(url); // Add task ID url = URLHelper.UpdateParameterInUrl(url, "taskid", ProjectTaskObj.ProjectTaskID.ToString()); } } return(url); }