Feature #20: Assigned User Is Local Admin

Device Profile setting which specifies whether assigned users are set as
Local Administrators. Default is true (which maintains compatibility).
This commit is contained in:
Gary Sharp
2013-10-28 18:16:22 +11:00
parent c13d13c91c
commit 10a38af08b
12 changed files with 671 additions and 290 deletions
@@ -22,6 +22,7 @@ namespace Disco.Web.Areas.API.Controllers
const string pEnforceComputerNameConvention = "enforcecomputernameconvention";
const string pEnforceOrganisationalUnit = "enforceorganisationalunit";
const string pProvisionADAccount = "provisionadaccount";
const string pAssignedUserLocalAdmin = "assigneduserlocaladmin";
[DiscoAuthorize(Claims.Config.DeviceProfile.Configure)]
public virtual ActionResult Update(int id, string key, string value = null, Nullable<bool> redirect = null)
@@ -73,6 +74,9 @@ namespace Disco.Web.Areas.API.Controllers
case pProvisionADAccount:
UpdateProvisionADAccount(deviceProfile, value);
break;
case pAssignedUserLocalAdmin:
UpdateAssignedUserLocalAdmin(deviceProfile, value);
break;
default:
throw new Exception("Invalid Update Key");
}
@@ -163,6 +167,12 @@ namespace Disco.Web.Areas.API.Controllers
return Update(id, pProvisionADAccount, ProvisionADAccount, redirect);
}
[DiscoAuthorize(Claims.Config.DeviceProfile.Configure)]
public virtual ActionResult UpdateAssignedUserLocalAdmin(int id, string AssignedUserLocalAdmin = null, Nullable<bool> redirect = null)
{
return Update(id, pAssignedUserLocalAdmin, AssignedUserLocalAdmin, redirect);
}
#endregion
#region Update Properties
@@ -317,6 +327,19 @@ namespace Disco.Web.Areas.API.Controllers
}
throw new Exception("Invalid Boolean Value");
}
private void UpdateAssignedUserLocalAdmin(DeviceProfile deviceProfile, string AssignedUserLocalAdmin)
{
bool bValue;
if (bool.TryParse(AssignedUserLocalAdmin, out bValue))
{
deviceProfile.AssignedUserLocalAdmin = bValue;
Database.SaveChanges();
return;
}
throw new Exception("Invalid Boolean Value");
}
#endregion
[DiscoAuthorize(Claims.Config.DeviceProfile.Configure)]