示例#1
0
 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
     });
 }
示例#2
0
		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;
		}
示例#3
0
        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);
		}