feature: device profiles - set assigned user for logon
This commit is contained in:
1 parent
36c24542e1
commit
3e514fdf9a
13 files changed
+580
-192
No files matched your search
@@ -134,7 +134,10 @@ namespace Disco.Client.Extensions
|
|||||||
|
|
||||||
if (enrolResponse.AssignedUserIsLocalAdmin)
|
if (enrolResponse.AssignedUserIsLocalAdmin)
|
||||||
LocalAuthentication.AddLocalGroupMembership("Administrators", enrolResponse.AssignedUserSID, enrolResponse.AssignedUserUsername, enrolResponse.AssignedUserDomain);
|
LocalAuthentication.AddLocalGroupMembership("Administrators", enrolResponse.AssignedUserSID, enrolResponse.AssignedUserUsername, enrolResponse.AssignedUserDomain);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enrolResponse.SetAssignedUserForLogon && !string.IsNullOrEmpty(enrolResponse.AssignedUserDomain) && !string.IsNullOrEmpty(enrolResponse.AssignedUserUsername))
|
||||||
|
{
|
||||||
// Make Windows think this user was the last to logon
|
// Make Windows think this user was the last to logon
|
||||||
using (RegistryKey regWinlogon = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true))
|
using (RegistryKey regWinlogon = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -201,6 +201,10 @@
|
|||||||
<Compile Include="Migrations\202507170522576_DBv28.Designer.cs">
|
<Compile Include="Migrations\202507170522576_DBv28.Designer.cs">
|
||||||
<DependentUpon>202507170522576_DBv28.cs</DependentUpon>
|
<DependentUpon>202507170522576_DBv28.cs</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="Migrations\202509070209304_DBv29.cs" />
|
||||||
|
<Compile Include="Migrations\202509070209304_DBv29.Designer.cs">
|
||||||
|
<DependentUpon>202509070209304_DBv29.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Migrations\Configuration.cs" />
|
<Compile Include="Migrations\Configuration.cs" />
|
||||||
<Compile Include="Migrations\DiscoDataMigrator.cs" />
|
<Compile Include="Migrations\DiscoDataMigrator.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
@@ -300,6 +304,9 @@
|
|||||||
<EmbeddedResource Include="Migrations\202507170522576_DBv28.resx">
|
<EmbeddedResource Include="Migrations\202507170522576_DBv28.resx">
|
||||||
<DependentUpon>202507170522576_DBv28.cs</DependentUpon>
|
<DependentUpon>202507170522576_DBv28.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Migrations\202509070209304_DBv29.resx">
|
||||||
|
<DependentUpon>202509070209304_DBv29.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
// <auto-generated />
|
||||||
|
namespace Disco.Data.Migrations
|
||||||
|
{
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
using System.Data.Entity.Migrations.Infrastructure;
|
||||||
|
using System.Resources;
|
||||||
|
|
||||||
|
public sealed partial class DBv29 : IMigrationMetadata
|
||||||
|
{
|
||||||
|
private readonly ResourceManager Resources = new ResourceManager(typeof(DBv29));
|
||||||
|
|
||||||
|
string IMigrationMetadata.Id
|
||||||
|
{
|
||||||
|
get { return "202509070209304_DBv29"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Source
|
||||||
|
{
|
||||||
|
get { return null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
string IMigrationMetadata.Target
|
||||||
|
{
|
||||||
|
get { return Resources.GetString("Target"); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
namespace Disco.Data.Migrations
|
||||||
|
{
|
||||||
|
using System.Data.Entity.Migrations;
|
||||||
|
|
||||||
|
public partial class DBv29 : DbMigration
|
||||||
|
{
|
||||||
|
public override void Up()
|
||||||
|
{
|
||||||
|
AddColumn("dbo.DeviceProfiles", "SetAssignedUserForLogon", c => c.Boolean(nullable: false));
|
||||||
|
Sql("UPDATE dbo.DeviceProfiles SET SetAssignedUserForLogon = 1");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Down()
|
||||||
|
{
|
||||||
|
DropColumn("dbo.DeviceProfiles", "SetAssignedUserForLogon");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="Target" xml:space="preserve">
|
||||||
|
<value>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 truncated
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -22,6 +22,7 @@ namespace Disco.Models.ClientServices
|
|||||||
public string AssignedUserDescription { get; set; }
|
public string AssignedUserDescription { get; set; }
|
||||||
|
|
||||||
public bool AssignedUserIsLocalAdmin { get; set; }
|
public bool AssignedUserIsLocalAdmin { get; set; }
|
||||||
|
public bool SetAssignedUserForLogon { get; set; }
|
||||||
|
|
||||||
public string OfflineDomainJoinManifest { get; set; }
|
public string OfflineDomainJoinManifest { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ namespace Disco.Models.Repository
|
|||||||
public bool ProvisionADAccount { get; set; }
|
public bool ProvisionADAccount { get; set; }
|
||||||
|
|
||||||
public bool AssignedUserLocalAdmin { get; set; }
|
public bool AssignedUserLocalAdmin { get; set; }
|
||||||
|
public bool SetAssignedUserForLogon { get; set; }
|
||||||
|
|
||||||
public bool AllowUntrustedReimageJobEnrolment { get; set; }
|
public bool AllowUntrustedReimageJobEnrolment { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -501,6 +501,8 @@ namespace Disco.Services.Devices.Enrolment
|
|||||||
response.AllowBootstrapperUninstall = true;
|
response.AllowBootstrapperUninstall = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
response.SetAssignedUserForLogon = device.DeviceProfile.SetAssignedUserForLogon;
|
||||||
|
|
||||||
// Provision Certificates
|
// Provision Certificates
|
||||||
if (!string.IsNullOrEmpty(device.DeviceProfile.CertificateProviders) ||
|
if (!string.IsNullOrEmpty(device.DeviceProfile.CertificateProviders) ||
|
||||||
!string.IsNullOrEmpty(device.DeviceProfile.CertificateAuthorityProviders))
|
!string.IsNullOrEmpty(device.DeviceProfile.CertificateAuthorityProviders))
|
||||||
|
|||||||
@@ -22,22 +22,23 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
{
|
{
|
||||||
public partial class DeviceProfileController : AuthorizedDatabaseController
|
public partial class DeviceProfileController : AuthorizedDatabaseController
|
||||||
{
|
{
|
||||||
const string pDescription = "description";
|
private const string pDescription = "description";
|
||||||
const string pName = "name";
|
private const string pName = "name";
|
||||||
const string pShortName = "shortname";
|
private const string pShortName = "shortname";
|
||||||
const string pDistributionType = "distributiontype";
|
private const string pDistributionType = "distributiontype";
|
||||||
const string pCertificateProviders = "certificateproviders";
|
private const string pCertificateProviders = "certificateproviders";
|
||||||
const string pCertificateAuthorityProviders = "certificateauthorityproviders";
|
private const string pCertificateAuthorityProviders = "certificateauthorityproviders";
|
||||||
const string pWirelessProfileProviders = "wirelessprofileproviders";
|
private const string pWirelessProfileProviders = "wirelessprofileproviders";
|
||||||
const string pOrganisationalUnit = "organisationalunit";
|
private const string pOrganisationalUnit = "organisationalunit";
|
||||||
const string pDefaultOrganisationAddress = "defaultorganisationaddress";
|
private const string pDefaultOrganisationAddress = "defaultorganisationaddress";
|
||||||
const string pEnforceComputerNameConvention = "enforcecomputernameconvention";
|
private const string pEnforceComputerNameConvention = "enforcecomputernameconvention";
|
||||||
const string pEnforceOrganisationalUnit = "enforceorganisationalunit";
|
private const string pEnforceOrganisationalUnit = "enforceorganisationalunit";
|
||||||
const string pProvisionADAccount = "provisionadaccount";
|
private const string pProvisionADAccount = "provisionadaccount";
|
||||||
const string pAssignedUserLocalAdmin = "assigneduserlocaladmin";
|
private const string pAssignedUserLocalAdmin = "assigneduserlocaladmin";
|
||||||
const string pAllowUntrustedReimageJobEnrolment = "allowuntrustedreimagejobrnrolment";
|
private const string pSetAssignedUserForLogon = "setassigneduserforlogon";
|
||||||
const string pDevicesLinkedGroup = "deviceslinkedgroup";
|
private const string pAllowUntrustedReimageJobEnrolment = "allowuntrustedreimagejobrnrolment";
|
||||||
const string pAssignedUsersLinkedGroup = "assigneduserslinkedgroup";
|
private const string pDevicesLinkedGroup = "deviceslinkedgroup";
|
||||||
|
private const string pAssignedUsersLinkedGroup = "assigneduserslinkedgroup";
|
||||||
|
|
||||||
[DiscoAuthorize(Claims.Config.DeviceProfile.Configure)]
|
[DiscoAuthorize(Claims.Config.DeviceProfile.Configure)]
|
||||||
[HttpPost, ValidateAntiForgeryToken]
|
[HttpPost, ValidateAntiForgeryToken]
|
||||||
@@ -95,6 +96,9 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
case pAssignedUserLocalAdmin:
|
case pAssignedUserLocalAdmin:
|
||||||
UpdateAssignedUserLocalAdmin(deviceProfile, value);
|
UpdateAssignedUserLocalAdmin(deviceProfile, value);
|
||||||
break;
|
break;
|
||||||
|
case pSetAssignedUserForLogon:
|
||||||
|
UpdateSetAssignedUserForLogon(deviceProfile, value);
|
||||||
|
break;
|
||||||
case pAllowUntrustedReimageJobEnrolment:
|
case pAllowUntrustedReimageJobEnrolment:
|
||||||
UpdateAllowUntrustedReimageJobEnrolment(deviceProfile, value);
|
UpdateAllowUntrustedReimageJobEnrolment(deviceProfile, value);
|
||||||
break;
|
break;
|
||||||
@@ -347,6 +351,13 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
return Update(id, pProvisionADAccount, ProvisionADAccount, redirect);
|
return Update(id, pProvisionADAccount, ProvisionADAccount, redirect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[DiscoAuthorize(Claims.Config.DeviceProfile.Configure)]
|
||||||
|
[HttpPost, ValidateAntiForgeryToken]
|
||||||
|
public virtual ActionResult UpdateSetAssignedUserForLogon(int id, string setAssignedUserForLogon = null, bool? redirect = null)
|
||||||
|
{
|
||||||
|
return Update(id, pSetAssignedUserForLogon, setAssignedUserForLogon, redirect);
|
||||||
|
}
|
||||||
|
|
||||||
[DiscoAuthorize(Claims.Config.DeviceProfile.Configure)]
|
[DiscoAuthorize(Claims.Config.DeviceProfile.Configure)]
|
||||||
[HttpPost, ValidateAntiForgeryToken]
|
[HttpPost, ValidateAntiForgeryToken]
|
||||||
public virtual ActionResult UpdateAssignedUserLocalAdmin(int id, string AssignedUserLocalAdmin = null, bool? redirect = null)
|
public virtual ActionResult UpdateAssignedUserLocalAdmin(int id, string AssignedUserLocalAdmin = null, bool? redirect = null)
|
||||||
@@ -667,6 +678,18 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
throw new Exception("Invalid Boolean Value");
|
throw new Exception("Invalid Boolean Value");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UpdateSetAssignedUserForLogon(DeviceProfile deviceProfile, string setAssignedUserForLogon)
|
||||||
|
{
|
||||||
|
if (bool.TryParse(setAssignedUserForLogon, out var bValue))
|
||||||
|
{
|
||||||
|
deviceProfile.SetAssignedUserForLogon = bValue;
|
||||||
|
|
||||||
|
Database.SaveChanges();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw new Exception("Invalid Boolean Value");
|
||||||
|
}
|
||||||
|
|
||||||
private void UpdateAllowUntrustedReimageJobEnrolment(DeviceProfile deviceProfile, string allowUntrustedReimageJobEnrolment)
|
private void UpdateAllowUntrustedReimageJobEnrolment(DeviceProfile deviceProfile, string allowUntrustedReimageJobEnrolment)
|
||||||
{
|
{
|
||||||
if (bool.TryParse(allowUntrustedReimageJobEnrolment, out var bValue))
|
if (bool.TryParse(allowUntrustedReimageJobEnrolment, out var bValue))
|
||||||
|
|||||||
@@ -134,7 +134,8 @@ namespace Disco.Web.Areas.Config.Controllers
|
|||||||
ProvisionADAccount = true,
|
ProvisionADAccount = true,
|
||||||
ComputerNameTemplate = DeviceProfile.DefaultComputerNameTemplate,
|
ComputerNameTemplate = DeviceProfile.DefaultComputerNameTemplate,
|
||||||
DistributionType = DeviceProfile.DistributionTypes.OneToMany,
|
DistributionType = DeviceProfile.DistributionTypes.OneToMany,
|
||||||
OrganisationalUnit = ActiveDirectory.Context.PrimaryDomain.DefaultComputerContainer
|
OrganisationalUnit = ActiveDirectory.Context.PrimaryDomain.DefaultComputerContainer,
|
||||||
|
SetAssignedUserForLogon = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
Database.DeviceProfiles.Add(deviceProfile);
|
Database.DeviceProfiles.Add(deviceProfile);
|
||||||
|
|||||||
@@ -258,6 +258,35 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div style="margin-top: 8px;">
|
||||||
|
@if (canConfig)
|
||||||
|
{
|
||||||
|
<input id="DeviceProfile_SetAssignedUserForLogon" type="checkbox" @(Model.DeviceProfile.SetAssignedUserForLogon ? new MvcHtmlString("checked=\"checked\" ") : new MvcHtmlString(string.Empty)) />
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function () {
|
||||||
|
document.DiscoFunctions.PropertyChangeHelper(
|
||||||
|
$('#DeviceProfile_SetAssignedUserForLogon'),
|
||||||
|
null,
|
||||||
|
'@Url.Action(MVC.API.DeviceProfile.UpdateSetAssignedUserForLogon(Model.DeviceProfile.Id))',
|
||||||
|
'setAssignedUserForLogon'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<input id="DeviceProfile_SetAssignedUserForLogon" type="checkbox" @(Model.DeviceProfile.SetAssignedUserForLogon ? new MvcHtmlString("checked=\"checked\" ") : new MvcHtmlString(string.Empty)) disabled="disabled" />
|
||||||
|
}
|
||||||
|
<label for="DeviceProfile_SetAssignedUserForLogon">
|
||||||
|
Set Assigned User for Logon
|
||||||
|
</label>
|
||||||
|
@AjaxHelpers.AjaxLoader()
|
||||||
|
<div class="info-box">
|
||||||
|
<p class="fa-p">
|
||||||
|
<i class="fa fa-info-circle"></i>When enabled the assigned user details will be pre-populated at the device logon screen.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div style="margin-top: 8px;">
|
<div style="margin-top: 8px;">
|
||||||
@if (canConfig)
|
@if (canConfig)
|
||||||
{
|
{
|
||||||
|
|||||||
File diff suppressed because it is too large.
Load diff
@@ -151,6 +151,12 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
}
|
}
|
||||||
[NonAction]
|
[NonAction]
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public virtual System.Web.Mvc.ActionResult UpdateSetAssignedUserForLogon()
|
||||||
|
{
|
||||||
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateSetAssignedUserForLogon);
|
||||||
|
}
|
||||||
|
[NonAction]
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public virtual System.Web.Mvc.ActionResult UpdateAssignedUserLocalAdmin()
|
public virtual System.Web.Mvc.ActionResult UpdateAssignedUserLocalAdmin()
|
||||||
{
|
{
|
||||||
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateAssignedUserLocalAdmin);
|
return new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateAssignedUserLocalAdmin);
|
||||||
@@ -222,6 +228,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public readonly string UpdateEnforceComputerNameConvention = "UpdateEnforceComputerNameConvention";
|
public readonly string UpdateEnforceComputerNameConvention = "UpdateEnforceComputerNameConvention";
|
||||||
public readonly string UpdateEnforceOrganisationalUnit = "UpdateEnforceOrganisationalUnit";
|
public readonly string UpdateEnforceOrganisationalUnit = "UpdateEnforceOrganisationalUnit";
|
||||||
public readonly string UpdateProvisionADAccount = "UpdateProvisionADAccount";
|
public readonly string UpdateProvisionADAccount = "UpdateProvisionADAccount";
|
||||||
|
public readonly string UpdateSetAssignedUserForLogon = "UpdateSetAssignedUserForLogon";
|
||||||
public readonly string UpdateAssignedUserLocalAdmin = "UpdateAssignedUserLocalAdmin";
|
public readonly string UpdateAssignedUserLocalAdmin = "UpdateAssignedUserLocalAdmin";
|
||||||
public readonly string UpdateAllowUntrustedReimageJobEnrolment = "UpdateAllowUntrustedReimageJobEnrolment";
|
public readonly string UpdateAllowUntrustedReimageJobEnrolment = "UpdateAllowUntrustedReimageJobEnrolment";
|
||||||
public readonly string UpdateDevicesLinkedGroup = "UpdateDevicesLinkedGroup";
|
public readonly string UpdateDevicesLinkedGroup = "UpdateDevicesLinkedGroup";
|
||||||
@@ -249,6 +256,7 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public const string UpdateEnforceComputerNameConvention = "UpdateEnforceComputerNameConvention";
|
public const string UpdateEnforceComputerNameConvention = "UpdateEnforceComputerNameConvention";
|
||||||
public const string UpdateEnforceOrganisationalUnit = "UpdateEnforceOrganisationalUnit";
|
public const string UpdateEnforceOrganisationalUnit = "UpdateEnforceOrganisationalUnit";
|
||||||
public const string UpdateProvisionADAccount = "UpdateProvisionADAccount";
|
public const string UpdateProvisionADAccount = "UpdateProvisionADAccount";
|
||||||
|
public const string UpdateSetAssignedUserForLogon = "UpdateSetAssignedUserForLogon";
|
||||||
public const string UpdateAssignedUserLocalAdmin = "UpdateAssignedUserLocalAdmin";
|
public const string UpdateAssignedUserLocalAdmin = "UpdateAssignedUserLocalAdmin";
|
||||||
public const string UpdateAllowUntrustedReimageJobEnrolment = "UpdateAllowUntrustedReimageJobEnrolment";
|
public const string UpdateAllowUntrustedReimageJobEnrolment = "UpdateAllowUntrustedReimageJobEnrolment";
|
||||||
public const string UpdateDevicesLinkedGroup = "UpdateDevicesLinkedGroup";
|
public const string UpdateDevicesLinkedGroup = "UpdateDevicesLinkedGroup";
|
||||||
@@ -411,6 +419,16 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
public readonly string ProvisionADAccount = "ProvisionADAccount";
|
public readonly string ProvisionADAccount = "ProvisionADAccount";
|
||||||
public readonly string redirect = "redirect";
|
public readonly string redirect = "redirect";
|
||||||
}
|
}
|
||||||
|
static readonly ActionParamsClass_UpdateSetAssignedUserForLogon s_params_UpdateSetAssignedUserForLogon = new ActionParamsClass_UpdateSetAssignedUserForLogon();
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public ActionParamsClass_UpdateSetAssignedUserForLogon UpdateSetAssignedUserForLogonParams { get { return s_params_UpdateSetAssignedUserForLogon; } }
|
||||||
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
|
public class ActionParamsClass_UpdateSetAssignedUserForLogon
|
||||||
|
{
|
||||||
|
public readonly string id = "id";
|
||||||
|
public readonly string setAssignedUserForLogon = "setAssignedUserForLogon";
|
||||||
|
public readonly string redirect = "redirect";
|
||||||
|
}
|
||||||
static readonly ActionParamsClass_UpdateAssignedUserLocalAdmin s_params_UpdateAssignedUserLocalAdmin = new ActionParamsClass_UpdateAssignedUserLocalAdmin();
|
static readonly ActionParamsClass_UpdateAssignedUserLocalAdmin s_params_UpdateAssignedUserLocalAdmin = new ActionParamsClass_UpdateAssignedUserLocalAdmin();
|
||||||
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
[GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode]
|
||||||
public ActionParamsClass_UpdateAssignedUserLocalAdmin UpdateAssignedUserLocalAdminParams { get { return s_params_UpdateAssignedUserLocalAdmin; } }
|
public ActionParamsClass_UpdateAssignedUserLocalAdmin UpdateAssignedUserLocalAdminParams { get { return s_params_UpdateAssignedUserLocalAdmin; } }
|
||||||
@@ -709,6 +727,20 @@ namespace Disco.Web.Areas.API.Controllers
|
|||||||
return callInfo;
|
return callInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
partial void UpdateSetAssignedUserForLogonOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string setAssignedUserForLogon, bool? redirect);
|
||||||
|
|
||||||
|
[NonAction]
|
||||||
|
public override System.Web.Mvc.ActionResult UpdateSetAssignedUserForLogon(int id, string setAssignedUserForLogon, bool? redirect)
|
||||||
|
{
|
||||||
|
var callInfo = new T4MVC_System_Web_Mvc_ActionResult(Area, Name, ActionNames.UpdateSetAssignedUserForLogon);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "id", id);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "setAssignedUserForLogon", setAssignedUserForLogon);
|
||||||
|
ModelUnbinderHelpers.AddRouteValues(callInfo.RouteValueDictionary, "redirect", redirect);
|
||||||
|
UpdateSetAssignedUserForLogonOverride(callInfo, id, setAssignedUserForLogon, redirect);
|
||||||
|
return callInfo;
|
||||||
|
}
|
||||||
|
|
||||||
[NonAction]
|
[NonAction]
|
||||||
partial void UpdateAssignedUserLocalAdminOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string AssignedUserLocalAdmin, bool? redirect);
|
partial void UpdateAssignedUserLocalAdminOverride(T4MVC_System_Web_Mvc_ActionResult callInfo, int id, string AssignedUserLocalAdmin, bool? redirect);
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user