private void AddChangeLog(string projectId, ProjectActionType actionType, string message) { ProjectService.AddChangeLog(new ProjectChangeLog() { ActionType = (int)actionType, UserId = UserInfo.UserId, UserName = UserInfo.UserName, ProjectId = projectId, Message = message }); }
public bool IsProjectActionAllowed(string userName, int projectId, ProjectActionType actionType) { if (string.IsNullOrEmpty(userName)) return false; var login = GetLoginFromUserName(userName); var projectPermissions = _permissionManager.GetProjectPermissions(login, projectId); if (projectPermissions.ContainsKey(actionType)) { return projectPermissions[actionType]; } return false; }
private void UpdateLatestNews(ProjectChangeLog log) { ProjectActionType actionType = (ProjectActionType)log.ActionType; if (actionType != ProjectActionType.Delete) { var latestNews = log.CreateTime.ToString("yyyy-MM-dd HH:mm") + " " + log.UserName + log.ActionTypeString; latestNews = string.IsNullOrWhiteSpace(log.Message) ? latestNews : latestNews + "," + log.Message; switch (actionType) { case ProjectActionType.EditBudget: case ProjectActionType.AddExpenditure: case ProjectActionType.DeleteExpenditure: DbContext.Database.ExecuteSqlCommand("Update Projects Set FinanceLatestNews = @p0 Where Id = @p1", new SqlParameter { ParameterName = "p0", Value = latestNews }, new SqlParameter { ParameterName = "p1", Value = log.ProjectId }); DbContext.Database.ExecuteSqlCommand("Update ProjectViewStatuses Set FinanceStatus = FinanceStatus + 1, UpdateTime = GETDATE() Where ProjectId = @p0 And UserId <> @p1", new SqlParameter { ParameterName = "p0", Value = log.ProjectId }, new SqlParameter { ParameterName = "p1", Value = log.UserId }); break; default: DbContext.Database.ExecuteSqlCommand("Update Projects Set LatestNews = @p0, FinanceLatestNews = '' Where Id = @p1", new SqlParameter { ParameterName = "p0", Value = latestNews }, new SqlParameter { ParameterName = "p1", Value = log.ProjectId }); DbContext.Database.ExecuteSqlCommand("Update ProjectViewStatuses Set Status = Status + 1, UpdateTime = GETDATE() Where ProjectId = @p0 And UserId <> @p1", new SqlParameter { ParameterName = "p0", Value = log.ProjectId }, new SqlParameter { ParameterName = "p1", Value = log.UserId }); break; } } }
public ProjectActionAuthorizationAttribute(ProjectActionType actionType) { _actionType = actionType; }
public static MvcHtmlString ProjectActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, int projectId, ProjectActionType actionType, object routeValues, object htmlAttributes) { return htmlHelper.ProjectActionAllowed(projectId, actionType) ? htmlHelper.ActionLink(linkText, actionName, routeValues, htmlAttributes) : null; }
public static bool ProjectActionAllowed(this HtmlHelper helper, int projectId, ProjectActionType actionType) { IRoleManager roleManager = RoleManager.Current; return roleManager.IsProjectActionAllowed(HttpContext.Current.User.Identity.Name, projectId, actionType); }