User Flag Expressions
Adds the ability to have expressions evaluated when flags are added and removed.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using Disco.Models.Repository;
|
||||
using Disco.Services;
|
||||
using Disco.Services.Authorization;
|
||||
using Disco.Services.Interop.ActiveDirectory;
|
||||
using Disco.Services.Tasks;
|
||||
@@ -16,6 +17,8 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
const string pDescription = "description";
|
||||
const string pIcon = "icon";
|
||||
const string pIconColour = "iconcolour";
|
||||
const string pOnAssignmentExpression = "onassignmentexpression";
|
||||
const string pOnUnassignmentExpression = "onunassignmentexpression";
|
||||
|
||||
[DiscoAuthorize(Claims.Config.UserFlag.Configure)]
|
||||
public virtual ActionResult Update(int id, string key, string value = null, Nullable<bool> redirect = null)
|
||||
@@ -45,6 +48,12 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
case pIconColour:
|
||||
UpdateIconColour(flag, value);
|
||||
break;
|
||||
case pOnAssignmentExpression:
|
||||
UpdateOnAssignmentExpression(flag, value);
|
||||
break;
|
||||
case pOnUnassignmentExpression:
|
||||
UpdateOnUnassignmentExpression(flag, value);
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Invalid Update Key");
|
||||
}
|
||||
@@ -123,6 +132,16 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
}
|
||||
}
|
||||
[DiscoAuthorize(Claims.Config.UserFlag.Configure)]
|
||||
public virtual ActionResult UpdateOnAssignmentExpression(int id, string OnAssignmentExpression = null, bool redirect = false)
|
||||
{
|
||||
return Update(id, pOnAssignmentExpression, OnAssignmentExpression, redirect);
|
||||
}
|
||||
[DiscoAuthorize(Claims.Config.UserFlag.Configure)]
|
||||
public virtual ActionResult UpdateOnUnassignmentExpression(int id, string OnUnassignmentExpression = null, bool redirect = false)
|
||||
{
|
||||
return Update(id, pOnUnassignmentExpression, OnUnassignmentExpression, redirect);
|
||||
}
|
||||
[DiscoAuthorize(Claims.Config.UserFlag.Configure)]
|
||||
public virtual ActionResult UpdateAssignedUsersLinkedGroup(int id, string GroupId = null, DateTime? FilterBeginDate = null, bool redirect = false)
|
||||
{
|
||||
try
|
||||
@@ -247,6 +266,38 @@ namespace Disco.Web.Areas.API.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateOnAssignmentExpression(UserFlag UserFlag, string OnAssignmentExpression)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(OnAssignmentExpression))
|
||||
{
|
||||
UserFlag.OnAssignmentExpression = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
UserFlag.OnAssignmentExpression = OnAssignmentExpression.Trim();
|
||||
}
|
||||
// Invalidate Cache
|
||||
UserFlag.OnAssignmentExpressionInvalidateCache();
|
||||
|
||||
UserFlagService.Update(Database, UserFlag);
|
||||
}
|
||||
|
||||
private void UpdateOnUnassignmentExpression(UserFlag UserFlag, string OnUnassignmentExpression)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(OnUnassignmentExpression))
|
||||
{
|
||||
UserFlag.OnUnassignmentExpression = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
UserFlag.OnUnassignmentExpression = OnUnassignmentExpression.Trim();
|
||||
}
|
||||
// Invalidate Cache
|
||||
UserFlag.OnUnassignmentExpressionInvalidateCache();
|
||||
|
||||
UserFlagService.Update(Database, UserFlag);
|
||||
}
|
||||
|
||||
private ScheduledTaskStatus UpdateAssignedUsersLinkedGroup(UserFlag UserFlag, string AssignedUsersLinkedGroup, DateTime? FilterBeginDate)
|
||||
{
|
||||
var configJson = ADManagedGroup.ValidConfigurationToJson(UserFlagUsersManagedGroup.GetKey(UserFlag), AssignedUsersLinkedGroup, FilterBeginDate);
|
||||
|
||||
Reference in New Issue
Block a user