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 bool AddFlag { get; set; }
|
||||||
public string Comments { get; set; }
|
public string Comments { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
|
||||||
public User User { get; set; }
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public UserFlag UserFlag { get; set; }
|
public UserFlag UserFlag { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -272,7 +272,7 @@ namespace Disco.Services.Documents.AttachmentImport
|
|||||||
|
|
||||||
foreach ( var rule in rules)
|
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)
|
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);
|
rule.UserFlag = database.UserFlags.FirstOrDefault(f => f.Id == rule.FlagId);
|
||||||
|
|
||||||
if (rule.User == null || rule.UserFlag == null)
|
if (rule.UserFlag == null)
|
||||||
return null;
|
return null;
|
||||||
else
|
else
|
||||||
return rule;
|
return rule;
|
||||||
@@ -213,11 +212,6 @@ namespace Disco.Services
|
|||||||
else
|
else
|
||||||
rules = JsonConvert.DeserializeObject<List<OnImportUserFlagRule>>(template.OnImportUserFlagRules);
|
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
|
// validate user flag
|
||||||
rule.UserFlag = database.UserFlags.FirstOrDefault(f => f.Id == rule.FlagId);
|
rule.UserFlag = database.UserFlags.FirstOrDefault(f => f.Id == rule.FlagId);
|
||||||
if (rule.UserFlag == null)
|
if (rule.UserFlag == null)
|
||||||
@@ -256,7 +250,7 @@ namespace Disco.Services
|
|||||||
return true;
|
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;
|
string userId;
|
||||||
if (target is User targetUser)
|
if (target is User targetUser)
|
||||||
@@ -276,9 +270,12 @@ namespace Disco.Services
|
|||||||
if (user == null)
|
if (user == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var techUser = database.Users.FirstOrDefault(u => u.UserId == rule.UserId);
|
|
||||||
if (techUser == null)
|
if (techUser == null)
|
||||||
return;
|
{
|
||||||
|
techUser = database.Users.FirstOrDefault(u => u.UserId == rule.UserId);
|
||||||
|
if (techUser == null)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// remove flag
|
// remove flag
|
||||||
if (!rule.AddFlag)
|
if (!rule.AddFlag)
|
||||||
|
|||||||
@@ -45,6 +45,9 @@ namespace Disco.Services
|
|||||||
|
|
||||||
public static void OnRemoveUnsafe(this UserFlagAssignment fa, DiscoDataContext Database, User RemovingUser)
|
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.RemovedDate = DateTime.Now;
|
||||||
fa.RemovedUserId = RemovingUser.UserId;
|
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)
|
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()
|
var fa = new UserFlagAssignment()
|
||||||
{
|
{
|
||||||
UserFlag = flag,
|
UserFlag = flag,
|
||||||
|
|||||||
@@ -1259,8 +1259,6 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
UserId = rule.UserId,
|
UserId = rule.UserId,
|
||||||
AddFlag = rule.AddFlag,
|
AddFlag = rule.AddFlag,
|
||||||
Comments = rule.Comments,
|
Comments = rule.Comments,
|
||||||
UserDisplayName = rule.User.DisplayName,
|
|
||||||
UserIdFriendly = rule.User.FriendlyId(),
|
|
||||||
UserFlagName = rule.UserFlag.Name,
|
UserFlagName = rule.UserFlag.Name,
|
||||||
UserFlagIcon = rule.UserFlag.Icon,
|
UserFlagIcon = rule.UserFlag.Icon,
|
||||||
UserFlagColour = rule.UserFlag.IconColour,
|
UserFlagColour = rule.UserFlag.IconColour,
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ namespace Disco.Web.Areas.API.Models.DocumentTemplate
|
|||||||
public bool AddFlag { get; set; }
|
public bool AddFlag { get; set; }
|
||||||
public string Comments { get; set; }
|
public string Comments { get; set; }
|
||||||
|
|
||||||
public string UserDisplayName { get; set; }
|
|
||||||
public string UserIdFriendly { get; set; }
|
|
||||||
|
|
||||||
public string UserFlagIcon { get; set; }
|
public string UserFlagIcon { get; set; }
|
||||||
public string UserFlagColour { get; set; }
|
public string UserFlagColour { get; set; }
|
||||||
public string UserFlagName { get; set; }
|
public string UserFlagName { get; set; }
|
||||||
|
|||||||
@@ -690,14 +690,13 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>Action</td>
|
<td>Action</td>
|
||||||
<td>User Flag</td>
|
<td>User Flag</td>
|
||||||
<td>Created By</td>
|
|
||||||
<td>Comments</td>
|
<td>Comments</td>
|
||||||
<td> </td>
|
<td> </td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="@(Model.OnImportUserFlagRules.Any() ? "hidden" : null)">
|
<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>
|
</tr>
|
||||||
@foreach (var rule in Model.OnImportUserFlagRules)
|
@foreach (var rule in Model.OnImportUserFlagRules)
|
||||||
{
|
{
|
||||||
@@ -714,16 +713,6 @@
|
|||||||
<span>@rule.UserFlag.Name</span>
|
<span>@rule.UserFlag.Name</span>
|
||||||
}
|
}
|
||||||
</td>
|
</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>
|
<td>
|
||||||
@if (string.IsNullOrWhiteSpace(rule.Comments))
|
@if (string.IsNullOrWhiteSpace(rule.Comments))
|
||||||
{
|
{
|
||||||
@@ -805,9 +794,6 @@
|
|||||||
<i class="rule-flag fa fa-lg"></i>
|
<i class="rule-flag fa fa-lg"></i>
|
||||||
<span class="rule-flag"></span>
|
<span class="rule-flag"></span>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
|
||||||
<span class="rule-user"></span>
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<span class="rule-comments whitespace-pre-wrap"></span>
|
<span class="rule-comments whitespace-pre-wrap"></span>
|
||||||
</td>
|
</td>
|
||||||
@@ -888,7 +874,6 @@
|
|||||||
row.find('.rule-action').text(r.AddFlag ? 'Assign' : 'Remove');
|
row.find('.rule-action').text(r.AddFlag ? 'Assign' : 'Remove');
|
||||||
row.find('i.rule-flag').addClass('fa-' + r.UserFlagIcon + ' d-' + r.UserFlagColour);
|
row.find('i.rule-flag').addClass('fa-' + r.UserFlagIcon + ' d-' + r.UserFlagColour);
|
||||||
row.find('span.rule-flag').text(r.UserFlagName);
|
row.find('span.rule-flag').text(r.UserFlagName);
|
||||||
row.find('.rule-user').text(r.UserDisplayName + ' (' + r.UserIdFriendly + ')');
|
|
||||||
row.find('.rule-comments').text(r.Comments);
|
row.find('.rule-comments').text(r.Comments);
|
||||||
rulesTable.find('tbody').append(row);
|
rulesTable.find('tbody').append(row);
|
||||||
|
|
||||||
@@ -927,7 +912,6 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>Action</td>
|
<td>Action</td>
|
||||||
<td>User Flag</td>
|
<td>User Flag</td>
|
||||||
<td>Created By</td>
|
|
||||||
<td>Comments</td>
|
<td>Comments</td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -947,16 +931,6 @@
|
|||||||
<span>@rule.UserFlag.Name</span>
|
<span>@rule.UserFlag.Name</span>
|
||||||
}
|
}
|
||||||
</td>
|
</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>
|
<td>
|
||||||
@if (string.IsNullOrWhiteSpace(rule.Comments))
|
@if (string.IsNullOrWhiteSpace(rule.Comments))
|
||||||
{
|
{
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user