document template user flag rules should use the creator user for flag assignment
This commit is contained in:
@@ -14,8 +14,6 @@ namespace Disco.Models.Services.Documents
|
||||
public bool AddFlag { get; set; }
|
||||
public string Comments { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public User User { get; set; }
|
||||
[JsonIgnore]
|
||||
public UserFlag UserFlag { get; set; }
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -1259,8 +1259,6 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
UserId = rule.UserId,
|
||||
AddFlag = rule.AddFlag,
|
||||
Comments = rule.Comments,
|
||||
UserDisplayName = rule.User.DisplayName,
|
||||
UserIdFriendly = rule.User.FriendlyId(),
|
||||
UserFlagName = rule.UserFlag.Name,
|
||||
UserFlagIcon = rule.UserFlag.Icon,
|
||||
UserFlagColour = rule.UserFlag.IconColour,
|
||||
|
||||
@@ -10,9 +10,6 @@ namespace Disco.Web.Areas.API.Models.DocumentTemplate
|
||||
public bool AddFlag { get; set; }
|
||||
public string Comments { get; set; }
|
||||
|
||||
public string UserDisplayName { get; set; }
|
||||
public string UserIdFriendly { get; set; }
|
||||
|
||||
public string UserFlagIcon { get; set; }
|
||||
public string UserFlagColour { get; set; }
|
||||
public string UserFlagName { get; set; }
|
||||
|
||||
@@ -690,14 +690,13 @@
|
||||
<tr>
|
||||
<td>Action</td>
|
||||
<td>User Flag</td>
|
||||
<td>Created By</td>
|
||||
<td>Comments</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="@(Model.OnImportUserFlagRules.Any() ? "hidden" : null)">
|
||||
<td colspan="5"><span class="smallMessage"><None Specified></span></td>
|
||||
<td colspan="4"><span class="smallMessage"><None Specified></span></td>
|
||||
</tr>
|
||||
@foreach (var rule in Model.OnImportUserFlagRules)
|
||||
{
|
||||
@@ -714,16 +713,6 @@
|
||||
<span>@rule.UserFlag.Name</span>
|
||||
}
|
||||
</td>
|
||||
<td>
|
||||
@if (Authorization.Has(Claims.User.Show))
|
||||
{
|
||||
<span>@Html.ActionLink(string.Format("{0} ({1})", rule.User.DisplayName, rule.User.FriendlyId()), MVC.User.Show(rule.User.UserId))</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>@string.Format("{0} ({1})", rule.User.DisplayName, rule.User.FriendlyId())</span>
|
||||
}
|
||||
</td>
|
||||
<td>
|
||||
@if (string.IsNullOrWhiteSpace(rule.Comments))
|
||||
{
|
||||
@@ -805,9 +794,6 @@
|
||||
<i class="rule-flag fa fa-lg"></i>
|
||||
<span class="rule-flag"></span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="rule-user"></span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="rule-comments whitespace-pre-wrap"></span>
|
||||
</td>
|
||||
@@ -888,7 +874,6 @@
|
||||
row.find('.rule-action').text(r.AddFlag ? 'Assign' : 'Remove');
|
||||
row.find('i.rule-flag').addClass('fa-' + r.UserFlagIcon + ' d-' + r.UserFlagColour);
|
||||
row.find('span.rule-flag').text(r.UserFlagName);
|
||||
row.find('.rule-user').text(r.UserDisplayName + ' (' + r.UserIdFriendly + ')');
|
||||
row.find('.rule-comments').text(r.Comments);
|
||||
rulesTable.find('tbody').append(row);
|
||||
|
||||
@@ -927,7 +912,6 @@
|
||||
<tr>
|
||||
<td>Action</td>
|
||||
<td>User Flag</td>
|
||||
<td>Created By</td>
|
||||
<td>Comments</td>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -947,16 +931,6 @@
|
||||
<span>@rule.UserFlag.Name</span>
|
||||
}
|
||||
</td>
|
||||
<td>
|
||||
@if (Authorization.Has(Claims.User.Show))
|
||||
{
|
||||
<span>@Html.ActionLink(string.Format("{0} ({1})", rule.User.DisplayName, rule.User.FriendlyId()), MVC.User.Show(rule.User.UserId))</span>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>@string.Format("{0} ({1})", rule.User.DisplayName, rule.User.FriendlyId())</span>
|
||||
}
|
||||
</td>
|
||||
<td>
|
||||
@if (string.IsNullOrWhiteSpace(rule.Comments))
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user