document template user flag rules should use the creator user for flag assignment
This commit is contained in:
@@ -272,7 +272,7 @@ namespace Disco.Services.Documents.AttachmentImport
|
||||
|
||||
foreach ( var rule in rules)
|
||||
{
|
||||
rule.Apply(Database, Identifier.Target);
|
||||
rule.Apply(Database, Identifier.Target, creatorUser);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -195,10 +195,9 @@ namespace Disco.Services
|
||||
|
||||
public static OnImportUserFlagRule AddDetails(this OnImportUserFlagRule rule, DiscoDataContext database)
|
||||
{
|
||||
rule.User = database.Users.FirstOrDefault(u => u.UserId == rule.UserId);
|
||||
rule.UserFlag = database.UserFlags.FirstOrDefault(f => f.Id == rule.FlagId);
|
||||
|
||||
if (rule.User == null || rule.UserFlag == null)
|
||||
if (rule.UserFlag == null)
|
||||
return null;
|
||||
else
|
||||
return rule;
|
||||
@@ -213,11 +212,6 @@ namespace Disco.Services
|
||||
else
|
||||
rules = JsonConvert.DeserializeObject<List<OnImportUserFlagRule>>(template.OnImportUserFlagRules);
|
||||
|
||||
// validate user id
|
||||
rule.User = database.Users.FirstOrDefault(u => u.UserId == rule.UserId);
|
||||
if (rule.User == null)
|
||||
throw new ArgumentException("Unknown rule user id", nameof(rule));
|
||||
|
||||
// validate user flag
|
||||
rule.UserFlag = database.UserFlags.FirstOrDefault(f => f.Id == rule.FlagId);
|
||||
if (rule.UserFlag == null)
|
||||
@@ -256,7 +250,7 @@ namespace Disco.Services
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void Apply(this OnImportUserFlagRule rule, DiscoDataContext database, IAttachmentTarget target)
|
||||
public static void Apply(this OnImportUserFlagRule rule, DiscoDataContext database, IAttachmentTarget target, User techUser)
|
||||
{
|
||||
string userId;
|
||||
if (target is User targetUser)
|
||||
@@ -276,9 +270,12 @@ namespace Disco.Services
|
||||
if (user == null)
|
||||
return;
|
||||
|
||||
var techUser = database.Users.FirstOrDefault(u => u.UserId == rule.UserId);
|
||||
if (techUser == null)
|
||||
return;
|
||||
{
|
||||
techUser = database.Users.FirstOrDefault(u => u.UserId == rule.UserId);
|
||||
if (techUser == null)
|
||||
return;
|
||||
}
|
||||
|
||||
// remove flag
|
||||
if (!rule.AddFlag)
|
||||
|
||||
@@ -45,6 +45,9 @@ namespace Disco.Services
|
||||
|
||||
public static void OnRemoveUnsafe(this UserFlagAssignment fa, DiscoDataContext Database, User RemovingUser)
|
||||
{
|
||||
fa = Database.UserFlagAssignments.First(a => a.Id == fa.Id);
|
||||
RemovingUser = Database.Users.First(u => u.UserId == RemovingUser.UserId);
|
||||
|
||||
fa.RemovedDate = DateTime.Now;
|
||||
fa.RemovedUserId = RemovingUser.UserId;
|
||||
|
||||
@@ -95,6 +98,10 @@ namespace Disco.Services
|
||||
|
||||
public static UserFlagAssignment OnAddUserFlagUnsafe(this User u, DiscoDataContext Database, UserFlag flag, User AddingUser, string Comments)
|
||||
{
|
||||
flag = Database.UserFlags.First(f => f.Id == flag.Id);
|
||||
u = Database.Users.First(user => user.UserId == u.UserId);
|
||||
AddingUser = Database.Users.First(user => user.UserId == AddingUser.UserId);
|
||||
|
||||
var fa = new UserFlagAssignment()
|
||||
{
|
||||
UserFlag = flag,
|
||||
|
||||
Reference in New Issue
Block a user