diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index c1669839..0f289fed 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -9129,3 +9129,104 @@ BEGIN INSERT INTO [dbo].[Quotas] (QuotaID, GroupID, QuotaOrder, QuotaName, QuotaDescription, QuotaTypeID, ServiceQuota) VALUES (552, @group_id, 3, 'HostedSharePointServer.UseSharedSSL', 'Use shared SSL Root', 1, 0) END + + +-- RDS GPO + +IF NOT EXISTS(SELECT * FROM SYS.TABLES WHERE name = 'RDSServerSettings') +CREATE TABLE [dbo].[RDSServerSettings]( + [RdsServerId] [int] NOT NULL, + [SettingsName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PropertyName] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL, + [PropertyValue] [ntext] COLLATE Latin1_General_CI_AS NULL, + [ApplyUsers] [BIT] NOT NULL, + [ApplyAdministrators] [BIT] NOT NULL + CONSTRAINT [PK_RDSServerSettings] PRIMARY KEY CLUSTERED +( + [RdsServerId] ASC, + [SettingsName] ASC, + [PropertyName] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) + +GO + + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetRDSServerSettings') +DROP PROCEDURE GetRDSServerSettings +GO +CREATE PROCEDURE GetRDSServerSettings +( + @ServerId int, + @SettingsName nvarchar(50) +) +AS + SELECT RDSServerId, PropertyName, PropertyValue, ApplyUsers, ApplyAdministrators + FROM RDSServerSettings + WHERE RDSServerId = @ServerId AND SettingsName = @SettingsName +GO + + +IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'UpdateRDSServerSettings') +DROP PROCEDURE UpdateRDSServerSettings +GO +CREATE PROCEDURE UpdateRDSServerSettings +( + @ServerId int, + @SettingsName nvarchar(50), + @Xml ntext +) +AS + +BEGIN TRAN +DECLARE @idoc int +EXEC sp_xml_preparedocument @idoc OUTPUT, @xml + +DELETE FROM RDSServerSettings +WHERE RDSServerId = @ServerId AND SettingsName = @SettingsName + +INSERT INTO RDSServerSettings +( + RDSServerId, + SettingsName, + ApplyUsers, + ApplyAdministrators, + PropertyName, + PropertyValue +) +SELECT + @ServerId, + @SettingsName, + ApplyUsers, + ApplyAdministrators, + PropertyName, + PropertyValue +FROM OPENXML(@idoc, '/properties/property',1) WITH +( + PropertyName nvarchar(50) '@name', + PropertyValue ntext '@value', + ApplyUsers BIT '@applyUsers', + ApplyAdministrators BIT '@applyAdministrators' +) as PV + +exec sp_xml_removedocument @idoc + +COMMIT TRAN + +RETURN + +GO + + +IF EXISTS (SELECT * FROM ResourceGroups WHERE GroupName = 'SharePoint') +BEGIN + DECLARE @group_id INT + SELECT @group_id = GroupId FROM ResourceGroups WHERE GroupName = 'SharePoint' + DELETE FROM Providers WHERE GroupID = @group_id + DELETE FROM Quotas WHERE GroupID = @group_id + DELETE FROM VirtualGroups WHERE GroupID = @group_id + DELETE FROM ServiceItemTypes WHERE GroupID = @group_id + DELETE FROM ResourceGroups WHERE GroupID = @group_id +END + +GO \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/RDS/RdsServerSetting.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/RDS/RdsServerSetting.cs new file mode 100644 index 00000000..d51b9155 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/RDS/RdsServerSetting.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WebsitePanel.EnterpriseServer.Base.RDS +{ + public class RdsServerSetting + { + public string PropertyName { get; set; } + public string PropertyValue { get; set; } + public bool ApplyUsers { get; set; } + public bool ApplyAdministrators { get; set; } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/RDS/RdsServerSettings.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/RDS/RdsServerSettings.cs new file mode 100644 index 00000000..56862454 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/RDS/RdsServerSettings.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Collections.Specialized; +using System.Linq; +using System.Text; +using System.Xml.Serialization; + +namespace WebsitePanel.EnterpriseServer.Base.RDS +{ + public class RdsServerSettings + { + private List settings = null; + + public const string LOCK_SCREEN_TIMEOUT = "LockScreenTimeout"; + public const string REMOVE_RUN_COMMAND = "RemoveRunCommand"; + public const string REMOVE_POWERSHELL_COMMAND = "RemovePowershellCommand"; + public const string HIDE_C_DRIVE = "HideCDrive"; + public const string REMOVE_SHUTDOWN_RESTART = "RemoveShutdownRestart"; + public const string DISABLE_TASK_MANAGER = "DisableTaskManager"; + public const string CHANGE_DESKTOP_DISABLED = "ChangingDesktopDisabled"; + public const string SCREEN_SAVER_DISABLED = "ScreenSaverDisabled"; + public const string DRIVE_SPACE_THRESHOLD = "DriveSpaceThreshold"; + + public string SettingsName { get; set; } + public int ServerId { get; set; } + + public List Settings + { + get + { + if (settings == null) + { + settings = new List(); + } + return settings; + } + set + { + settings = value; + } + } + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs index bd033937..251d5dbf 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/Users/UserSettings.cs @@ -64,6 +64,7 @@ namespace WebsitePanel.EnterpriseServer public const string DEFAULT_MAILBOXPLANS = "DefaultMailboxPlans"; public const string DEFAULT_LYNCUSERPLANS = "DefaultLyncUserPlans"; public const string RDS_SETUP_LETTER = "RDSSetupLetter"; + public const string RDS_POLICY = "RdsPolicy"; public int UserId; public string SettingsName; diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj index 63f2d7cd..23f8766e 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Base/WebsitePanel.EnterpriseServer.Base.csproj @@ -134,6 +134,8 @@ + + Component diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs index 8a8ac9e4..4d1737fe 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/RemoteDesktopServicesProxy.cs @@ -20,6 +20,7 @@ namespace WebsitePanel.EnterpriseServer { using System.Diagnostics; using WebsitePanel.Providers.HostedSolution; using WebsitePanel.Providers.RemoteDesktopServices; + using WebsitePanel.EnterpriseServer.Base.RDS; using WebsitePanel.Providers.Common; @@ -132,6 +133,10 @@ namespace WebsitePanel.EnterpriseServer { private System.Threading.SendOrPostCallback SendRdsSetupLetterOperationCompleted; + private System.Threading.SendOrPostCallback GetRdsServerSettingsOperationCompleted; + + private System.Threading.SendOrPostCallback UpdateRdsServerSettingsOperationCompleted; + /// public esRemoteDesktopServices() { this.Url = "http://localhost:9002/esRemoteDesktopServices.asmx"; @@ -290,6 +295,12 @@ namespace WebsitePanel.EnterpriseServer { /// public event SendRdsSetupLetterCompletedEventHandler SendRdsSetupLetterCompleted; + /// + public event GetRdsServerSettingsCompletedEventHandler GetRdsServerSettingsCompleted; + + /// + public event UpdateRdsServerSettingsCompletedEventHandler UpdateRdsServerSettingsCompleted; + /// [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRdsCollection", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] public RdsCollection GetRdsCollection(int collectionId) { @@ -2569,6 +2580,97 @@ namespace WebsitePanel.EnterpriseServer { } } + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRdsServerSettings", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public RdsServerSettings GetRdsServerSettings(int serverId, string settingsName) { + object[] results = this.Invoke("GetRdsServerSettings", new object[] { + serverId, + settingsName}); + return ((RdsServerSettings)(results[0])); + } + + /// + public System.IAsyncResult BeginGetRdsServerSettings(int serverId, string settingsName, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("GetRdsServerSettings", new object[] { + serverId, + settingsName}, callback, asyncState); + } + + /// + public RdsServerSettings EndGetRdsServerSettings(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((RdsServerSettings)(results[0])); + } + + /// + public void GetRdsServerSettingsAsync(int serverId, string settingsName) { + this.GetRdsServerSettingsAsync(serverId, settingsName, null); + } + + /// + public void GetRdsServerSettingsAsync(int serverId, string settingsName, object userState) { + if ((this.GetRdsServerSettingsOperationCompleted == null)) { + this.GetRdsServerSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRdsServerSettingsOperationCompleted); + } + this.InvokeAsync("GetRdsServerSettings", new object[] { + serverId, + settingsName}, this.GetRdsServerSettingsOperationCompleted, userState); + } + + private void OnGetRdsServerSettingsOperationCompleted(object arg) { + if ((this.GetRdsServerSettingsCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.GetRdsServerSettingsCompleted(this, new GetRdsServerSettingsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + + /// + [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/UpdateRdsServerSettings", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] + public int UpdateRdsServerSettings(int serverId, string settingsName, RdsServerSettings settings) { + object[] results = this.Invoke("UpdateRdsServerSettings", new object[] { + serverId, + settingsName, + settings}); + return ((int)(results[0])); + } + + /// + public System.IAsyncResult BeginUpdateRdsServerSettings(int serverId, string settingsName, RdsServerSettings settings, System.AsyncCallback callback, object asyncState) { + return this.BeginInvoke("UpdateRdsServerSettings", new object[] { + serverId, + settingsName, + settings}, callback, asyncState); + } + + /// + public int EndUpdateRdsServerSettings(System.IAsyncResult asyncResult) { + object[] results = this.EndInvoke(asyncResult); + return ((int)(results[0])); + } + + /// + public void UpdateRdsServerSettingsAsync(int serverId, string settingsName, RdsServerSettings settings) { + this.UpdateRdsServerSettingsAsync(serverId, settingsName, settings, null); + } + + /// + public void UpdateRdsServerSettingsAsync(int serverId, string settingsName, RdsServerSettings settings, object userState) { + if ((this.UpdateRdsServerSettingsOperationCompleted == null)) { + this.UpdateRdsServerSettingsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateRdsServerSettingsOperationCompleted); + } + this.InvokeAsync("UpdateRdsServerSettings", new object[] { + serverId, + settingsName, + settings}, this.UpdateRdsServerSettingsOperationCompleted, userState); + } + + private void OnUpdateRdsServerSettingsOperationCompleted(object arg) { + if ((this.UpdateRdsServerSettingsCompleted != null)) { + System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); + this.UpdateRdsServerSettingsCompleted(this, new UpdateRdsServerSettingsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); + } + } + /// public new void CancelAsync(object userState) { base.CancelAsync(userState); @@ -3900,4 +4002,56 @@ namespace WebsitePanel.EnterpriseServer { } } } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + public delegate void GetRdsServerSettingsCompletedEventHandler(object sender, GetRdsServerSettingsCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class GetRdsServerSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal GetRdsServerSettingsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public RdsServerSettings Result { + get { + this.RaiseExceptionIfNecessary(); + return ((RdsServerSettings)(this.results[0])); + } + } + } + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + public delegate void UpdateRdsServerSettingsCompletedEventHandler(object sender, UpdateRdsServerSettingsCompletedEventArgs e); + + /// + [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")] + [System.Diagnostics.DebuggerStepThroughAttribute()] + [System.ComponentModel.DesignerCategoryAttribute("code")] + public partial class UpdateRdsServerSettingsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { + + private object[] results; + + internal UpdateRdsServerSettingsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : + base(exception, cancelled, userState) { + this.results = results; + } + + /// + public int Result { + get { + this.RaiseExceptionIfNecessary(); + return ((int)(this.results[0])); + } + } + } } diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs index d83c4684..6e183d4d 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs @@ -4676,6 +4676,23 @@ namespace WebsitePanel.EnterpriseServer #region RDS + public static IDataReader GetRdsServerSettings(int serverId, string settingsName) + { + return SqlHelper.ExecuteReader(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "GetRDSServerSettings", + new SqlParameter("@ServerId", serverId), + new SqlParameter("@SettingsName", settingsName)); + } + + public static void UpdateRdsServerSettings(int serverId, string settingsName, string xml) + { + SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, + ObjectQualifier + "UpdateRDSServerSettings", + new SqlParameter("@ServerId", serverId), + new SqlParameter("@SettingsName", settingsName), + new SqlParameter("@Xml", xml)); + } + public static int AddRdsCertificate(int serviceId, string content, byte[] hash, string fileName, DateTime? validFrom, DateTime? expiryDate) { SqlParameter rdsCertificateId = new SqlParameter("@RDSCertificateID", SqlDbType.Int); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs index 3f1f8a2d..080d0c96 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/RemoteDesktopServices/RemoteDesktopServicesController.cs @@ -45,6 +45,7 @@ using WebsitePanel.Providers.RemoteDesktopServices; using WebsitePanel.Providers.Web; using System.Net.Mail; using System.Collections; +using WebsitePanel.EnterpriseServer.Base.RDS; namespace WebsitePanel.EnterpriseServer { @@ -320,6 +321,77 @@ namespace WebsitePanel.EnterpriseServer return SendRdsSetupLetterInternal(itemId, accountId, to, cc); } + public static RdsServerSettings GetRdsServerSettings(int serverId, string settingsName) + { + return GetRdsServerSettingsInternal(serverId, settingsName); + } + + public static int UpdateRdsServerSettings(int serverId, string settingsName, RdsServerSettings settings) + { + return UpdateRdsServerSettingsInternal(serverId, settingsName, settings); + } + + private static RdsServerSettings GetRdsServerSettingsInternal(int serverId, string settingsName) + { + IDataReader reader = DataProvider.GetRdsServerSettings(serverId, settingsName); + + var settings = new RdsServerSettings(); + settings.ServerId = serverId; + settings.SettingsName = settingsName; + + while (reader.Read()) + { + settings.Settings.Add(new RdsServerSetting + { + PropertyName = (string)reader["PropertyName"], + PropertyValue = (string)reader["PropertyValue"], + ApplyAdministrators = Convert.ToBoolean("ApplyAdministrators"), + ApplyUsers = Convert.ToBoolean("ApplyUsers") + }); + } + + reader.Close(); + + return settings; + } + + private static int UpdateRdsServerSettingsInternal(int serverId, string settingsName, RdsServerSettings settings) + { + TaskManager.StartTask("REMOTE_DESKTOP_SERVICES", "UPDATE_SETTINGS"); + + try + { + XmlDocument doc = new XmlDocument(); + XmlElement nodeProps = doc.CreateElement("properties"); + + if (settings != null) + { + foreach (var setting in settings.Settings) + { + XmlElement nodeProp = doc.CreateElement("property"); + nodeProp.SetAttribute("name", setting.PropertyName); + nodeProp.SetAttribute("value", setting.PropertyValue); + nodeProp.SetAttribute("applyUsers", setting.ApplyUsers ? "1" : "0"); + nodeProp.SetAttribute("applyAdministrators", setting.ApplyAdministrators ? "1" : "0"); + nodeProps.AppendChild(nodeProp); + } + } + + string xml = nodeProps.OuterXml; + DataProvider.UpdateRdsServerSettings(serverId, settingsName, xml); + + return 0; + } + catch (Exception ex) + { + throw TaskManager.WriteError(ex); + } + finally + { + TaskManager.CompleteTask(); + } + } + private static string GetRdsSetupLetterInternal(int itemId, int? accountId) { Organization org = OrganizationController.GetOrganization(itemId); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs index 6471f151..7b977052 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esRemoteDesktopServices.asmx.cs @@ -39,6 +39,7 @@ using Microsoft.Web.Services3; using WebsitePanel.Providers.Common; using WebsitePanel.Providers.HostedSolution; using WebsitePanel.Providers.RemoteDesktopServices; +using WebsitePanel.EnterpriseServer.Base.RDS; namespace WebsitePanel.EnterpriseServer { @@ -367,5 +368,17 @@ namespace WebsitePanel.EnterpriseServer { return RemoteDesktopServicesController.SendRdsSetupLetter(itemId, accountId, to, cc); } + + [WebMethod] + public RdsServerSettings GetRdsServerSettings(int serverId, string settingsName) + { + return RemoteDesktopServicesController.GetRdsServerSettings(serverId, settingsName); + } + + [WebMethod] + public int UpdateRdsServerSettings(int serverId, string settingsName, RdsServerSettings settings) + { + return RemoteDesktopServicesController.UpdateRdsServerSettings(serverId, settingsName, settings); + } } } diff --git a/WebsitePanel/Sources/WebsitePanel.Server.sln b/WebsitePanel/Sources/WebsitePanel.Server.sln index 2b573470..c5af78c6 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server.sln +++ b/WebsitePanel/Sources/WebsitePanel.Server.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.21005.1 +VisualStudioVersion = 12.0.30723.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Caching Application Block", "Caching Application Block", "{C8E6F2E4-A5B8-486A-A56E-92D864524682}" ProjectSection(SolutionItems) = preProject @@ -51,8 +51,6 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebsitePanel.Providers.Mail EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebsitePanel.Providers.Mail.Merak", "WebsitePanel.Providers.Mail.Merak\WebsitePanel.Providers.Mail.Merak.vbproj", "{2FA82B71-B32A-47DE-A17B-40DE08D0256D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.SharePoint.Sps20", "WebsitePanel.Providers.SharePoint.Sps20\WebsitePanel.Providers.SharePoint.Sps20.csproj", "{7980CF32-62ED-4BA1-9CAE-8EE7BD164719}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Mail.AbilityMailServer", "WebsitePanel.Providers.Mail.AbilityMailServer\WebsitePanel.Providers.Mail.AbilityMailServer.csproj", "{54EE4293-6CCB-4859-8B76-90205F7B35A1}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebsitePanel.Providers.Mail.ArgoMail", "WebsitePanel.Providers.Mail.ArgoMail\WebsitePanel.Providers.Mail.ArgoMail.vbproj", "{FCD88E94-349D-4BB2-A726-6E47A4F01DC2}" @@ -63,8 +61,6 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebsitePanel.Providers.Mail EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebsitePanel.Providers.Mail.hMailServer43", "WebsitePanel.Providers.Mail.hMailServer43\WebsitePanel.Providers.Mail.hMailServer43.vbproj", "{622E452B-E1EF-4252-8039-A28C2EA25DC1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.SharePoint.Sps30", "WebsitePanel.Providers.SharePoint.Sps30\WebsitePanel.Providers.SharePoint.Sps30.csproj", "{67B126AA-56E5-42F7-AC4F-AEE2A7D786F2}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.DNS.Bind", "WebsitePanel.Providers.DNS.Bind\WebsitePanel.Providers.DNS.Bind.csproj", "{3ACCBEAE-5E1E-43E5-971C-223539832DD8}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.FTP.ServU", "WebsitePanel.Providers.FTP.ServU\WebsitePanel.Providers.FTP.ServU.csproj", "{41FEC24A-67A2-4BF4-8889-1D5CD0A2B43D}" @@ -346,16 +342,6 @@ Global {2FA82B71-B32A-47DE-A17B-40DE08D0256D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {2FA82B71-B32A-47DE-A17B-40DE08D0256D}.Release|Mixed Platforms.Build.0 = Release|Any CPU {2FA82B71-B32A-47DE-A17B-40DE08D0256D}.Release|x86.ActiveCfg = Release|Any CPU - {7980CF32-62ED-4BA1-9CAE-8EE7BD164719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7980CF32-62ED-4BA1-9CAE-8EE7BD164719}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7980CF32-62ED-4BA1-9CAE-8EE7BD164719}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {7980CF32-62ED-4BA1-9CAE-8EE7BD164719}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {7980CF32-62ED-4BA1-9CAE-8EE7BD164719}.Debug|x86.ActiveCfg = Debug|Any CPU - {7980CF32-62ED-4BA1-9CAE-8EE7BD164719}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7980CF32-62ED-4BA1-9CAE-8EE7BD164719}.Release|Any CPU.Build.0 = Release|Any CPU - {7980CF32-62ED-4BA1-9CAE-8EE7BD164719}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {7980CF32-62ED-4BA1-9CAE-8EE7BD164719}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {7980CF32-62ED-4BA1-9CAE-8EE7BD164719}.Release|x86.ActiveCfg = Release|Any CPU {54EE4293-6CCB-4859-8B76-90205F7B35A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {54EE4293-6CCB-4859-8B76-90205F7B35A1}.Debug|Any CPU.Build.0 = Debug|Any CPU {54EE4293-6CCB-4859-8B76-90205F7B35A1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -406,16 +392,6 @@ Global {622E452B-E1EF-4252-8039-A28C2EA25DC1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {622E452B-E1EF-4252-8039-A28C2EA25DC1}.Release|Mixed Platforms.Build.0 = Release|Any CPU {622E452B-E1EF-4252-8039-A28C2EA25DC1}.Release|x86.ActiveCfg = Release|Any CPU - {67B126AA-56E5-42F7-AC4F-AEE2A7D786F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {67B126AA-56E5-42F7-AC4F-AEE2A7D786F2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {67B126AA-56E5-42F7-AC4F-AEE2A7D786F2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {67B126AA-56E5-42F7-AC4F-AEE2A7D786F2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {67B126AA-56E5-42F7-AC4F-AEE2A7D786F2}.Debug|x86.ActiveCfg = Debug|Any CPU - {67B126AA-56E5-42F7-AC4F-AEE2A7D786F2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {67B126AA-56E5-42F7-AC4F-AEE2A7D786F2}.Release|Any CPU.Build.0 = Release|Any CPU - {67B126AA-56E5-42F7-AC4F-AEE2A7D786F2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {67B126AA-56E5-42F7-AC4F-AEE2A7D786F2}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {67B126AA-56E5-42F7-AC4F-AEE2A7D786F2}.Release|x86.ActiveCfg = Release|Any CPU {3ACCBEAE-5E1E-43E5-971C-223539832DD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3ACCBEAE-5E1E-43E5-971C-223539832DD8}.Debug|Any CPU.Build.0 = Debug|Any CPU {3ACCBEAE-5E1E-43E5-971C-223539832DD8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Menus.css b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Menus.css index 6bb79ad7..bd1b090e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Menus.css +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Menus.css @@ -26,7 +26,7 @@ .TopMenu ul.AspNet-Menu li.AspNet-Menu-Hover a, .TopMenu ul.AspNet-Menu li.AspNet-Menu-Hover span {} .TopMenu ul.AspNet-Menu li ul li {margin: 0px; width: 100%;} /*.TopMenu .AspNet-Menu-Horizontal ul.AspNet-Menu ul:before {width:0; height:0; position:absolute; content:" "; top:-8px; left:50%; margin-left:-8px; border-style:solid; border-width:0 8px 8px 8px; border-color:transparent transparent #fff transparent;}*/ -.TopMenu .AspNet-Menu-Horizontal ul.AspNet-Menu ul {position: absolute; top: 100%; left: 0; z-index: 1000; float: left; min-width: 160px; padding: 5px 10px 5px 0; margin: -10px 0 0 0; list-style: none; font-size: 14px; background-color: #FFF; border: 1px solid #CCC; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 0; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); background-clip: padding-box;} +.TopMenu .AspNet-Menu-Horizontal ul.AspNet-Menu ul {position: absolute; top: 100%; left: 0; z-index: 1000; float: left; min-width: 180px; padding: 5px 10px 5px 0; margin: -10px 0 0 0; list-style: none; font-size: 14px; background-color: #FFF; border: 1px solid #CCC; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 0; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); background-clip: padding-box;} .LeftMenu {font-size: 8pt;} .LeftMenu ul {background-color: #D1E9FF;} .LeftMenu ul.AspNet-Menu {width: 190px;} diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/OrganizationMenu.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/OrganizationMenu.ascx.resx index 7d61c423..e7626d44 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/OrganizationMenu.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/OrganizationMenu.ascx.resx @@ -202,7 +202,7 @@ Setup - SharePoint Foundation Server + SharePoint Foundation SharePoint Server diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsRdsPolicy.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsRdsPolicy.ascx.resx new file mode 100644 index 00000000..91b50033 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SettingsRdsPolicy.ascx.resx @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Administrators + + + Users + + + Drive Space Threshold + + + Hide C: Drive + + + Remove "Powershell" Command + + + Remove "Run" Command + + + Disable Screen Saver + + + Remove Shutdown and Restart + + + Disable Task Manager + + + Lock Screen Timeout + + + Changing Desktop Disabled + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountPolicySettings.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountPolicySettings.ascx.resx index 69f57eb1..5dee42e1 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountPolicySettings.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/UserAccountPolicySettings.ascx.resx @@ -147,6 +147,9 @@ Virtual Private Servers Policy + + Remote Desktop Servers Policy + WEB Policy diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx index 66d28e5b..6563c74a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/UserControls/App_LocalResources/Menu.ascx.resx @@ -166,7 +166,7 @@ Setup - SharePoint Foundation Server + SharePoint Foundation SharePoint Server diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsPolicy.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsPolicy.ascx new file mode 100644 index 00000000..5b860eef --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsPolicy.ascx @@ -0,0 +1,131 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SettingsRdsPolicy.ascx.cs" Inherits="WebsitePanel.Portal.SettingsRdsPolicy" %> +<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="UserControls/CollapsiblePanel.ascx" %> + + + + + + + + + + + +
+ +
+ + + +
+
+
+ + + + + + + +
+ + + +
+
+
+ + + + + + + +
+ + + +
+
+
+ + + + + + + +
+ + + +
+
+
+ + + + + + + +
+ + + +
+
+
+ + + + + + + +
+ + + +
+
+
+ + + + + + + +
+ + + +
+
+
+ + + + + + + +
+ + + +
+
+
+ + + + + + +
+ +
+
+
\ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsPolicy.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsPolicy.ascx.cs new file mode 100644 index 00000000..186ce217 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsPolicy.ascx.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using WebsitePanel.EnterpriseServer; + +namespace WebsitePanel.Portal +{ + public partial class SettingsRdsPolicy : WebsitePanelControlBase, IUserSettingsEditorControl + { + private const string LOCK_SCREEN_TIMEOUT_VALUE = "LockScreenTimeoutValue"; + private const string LOCK_SCREEN_TIMEOUT_ADMINISTRATORS = "LockScreenTimeoutAdministrators"; + private const string LOCK_SCREEN_TIMEOUT_USERS = "LockScreenTimeoutUsers"; + private const string REMOVE_RUN_COMMAND_ADMINISTRATORS = "RemoveRunCommandAdministrators"; + private const string REMOVE_RUN_COMMAND_USERS = "RemoveRunCommandUsers"; + private const string REMOVE_POWERSHELL_COMMAND_ADMINISTRATORS = "RemovePowershellCommandAdministrators"; + private const string REMOVE_POWERSHELL_COMMAND_USERS = "RemovePowershellCommandUsers"; + private const string HIDE_C_DRIVE_ADMINISTRATORS = "HideCDriveAdministrators"; + private const string HIDE_C_DRIVE_USERS = "HideCDriveUsers"; + private const string REMOVE_SHUTDOWN_RESTART_ADMINISTRATORS = "RemoveShutdownRestartAdministrators"; + private const string REMOVE_SHUTDOWN_RESTART_USERS = "RemoveShutdownRestartUsers"; + private const string DISABLE_TASK_MANAGER_ADMINISTRATORS = "DisableTaskManagerAdministrators"; + private const string DISABLE_TASK_MANAGER_USERS = "DisableTaskManagerUsers"; + private const string CHANGE_DESKTOP_DISABLED_ADMINISTRATORS = "ChangingDesktopDisabledAdministrators"; + private const string CHANGE_DESKTOP_DISABLED_USERS = "ChangingDesktopDisabledUsers"; + private const string SCREEN_SAVER_DISABLED_ADMINISTRATORS = "ScreenSaverDisabledAdministrators"; + private const string SCREEN_SAVER_DISABLED_USERS = "ScreenSaverDisabledUsers"; + private const string DRIVE_SPACE_THRESHOLD_VALUE = "DriveSpaceThresholdValue"; + + public void BindSettings(UserSettings settings) + { + txtTimeout.Text = settings[LOCK_SCREEN_TIMEOUT_VALUE]; + cbTimeoutAdministrators.Checked = Convert.ToBoolean(settings[LOCK_SCREEN_TIMEOUT_ADMINISTRATORS]); + cbTimeoutUsers.Checked = Convert.ToBoolean(settings[LOCK_SCREEN_TIMEOUT_USERS]); + + cbRunCommandAdministrators.Checked = Convert.ToBoolean(settings[REMOVE_RUN_COMMAND_ADMINISTRATORS]); + cbRunCommandUsers.Checked = Convert.ToBoolean(settings[REMOVE_RUN_COMMAND_USERS]); + + cbPowershellAdministrators.Checked = Convert.ToBoolean(settings[REMOVE_POWERSHELL_COMMAND_ADMINISTRATORS]); + cbPowershellUsers.Checked = Convert.ToBoolean(settings[REMOVE_POWERSHELL_COMMAND_USERS]); + + cbHideCDriveAdministrators.Checked = Convert.ToBoolean(settings[HIDE_C_DRIVE_ADMINISTRATORS]); + cbHideCDriveUsers.Checked = Convert.ToBoolean(settings[HIDE_C_DRIVE_USERS]); + + cbShutdownAdministrators.Checked = Convert.ToBoolean(settings[REMOVE_SHUTDOWN_RESTART_ADMINISTRATORS]); + cbShutdownUsers.Checked = Convert.ToBoolean(settings[REMOVE_SHUTDOWN_RESTART_USERS]); + + cbTaskManagerAdministrators.Checked = Convert.ToBoolean(settings[DISABLE_TASK_MANAGER_ADMINISTRATORS]); + cbTaskManagerUsers.Checked = Convert.ToBoolean(settings[DISABLE_TASK_MANAGER_USERS]); + + cbDesktopAdministrators.Checked = Convert.ToBoolean(settings[CHANGE_DESKTOP_DISABLED_ADMINISTRATORS]); + cbDesktopUsers.Checked = Convert.ToBoolean(settings[CHANGE_DESKTOP_DISABLED_USERS]); + + cbScreenSaverAdministrators.Checked = Convert.ToBoolean(settings[SCREEN_SAVER_DISABLED_ADMINISTRATORS]); + cbScreenSaverUsers.Checked = Convert.ToBoolean(settings[SCREEN_SAVER_DISABLED_USERS]); + + txtThreshold.Text = settings[DRIVE_SPACE_THRESHOLD_VALUE]; + } + + public void SaveSettings(UserSettings settings) + { + settings[LOCK_SCREEN_TIMEOUT_VALUE] = txtTimeout.Text; + settings[LOCK_SCREEN_TIMEOUT_ADMINISTRATORS] = cbTimeoutAdministrators.Checked.ToString(); + settings[LOCK_SCREEN_TIMEOUT_USERS] = cbTimeoutUsers.Checked.ToString(); + settings[REMOVE_RUN_COMMAND_ADMINISTRATORS] = cbRunCommandAdministrators.Checked.ToString(); + settings[REMOVE_RUN_COMMAND_USERS] = cbRunCommandUsers.Checked.ToString(); + settings[REMOVE_POWERSHELL_COMMAND_ADMINISTRATORS] = cbPowershellAdministrators.Checked.ToString(); + settings[REMOVE_POWERSHELL_COMMAND_USERS] = cbPowershellUsers.Checked.ToString(); + settings[HIDE_C_DRIVE_ADMINISTRATORS] = cbHideCDriveAdministrators.Checked.ToString(); + settings[HIDE_C_DRIVE_USERS] = cbHideCDriveUsers.Checked.ToString(); + settings[REMOVE_SHUTDOWN_RESTART_ADMINISTRATORS] = cbShutdownAdministrators.Checked.ToString(); + settings[REMOVE_SHUTDOWN_RESTART_USERS] = cbShutdownUsers.Checked.ToString(); + settings[DISABLE_TASK_MANAGER_ADMINISTRATORS] = cbTaskManagerAdministrators.Checked.ToString(); + settings[DISABLE_TASK_MANAGER_USERS] = cbTaskManagerUsers.Checked.ToString(); + settings[CHANGE_DESKTOP_DISABLED_ADMINISTRATORS] = cbDesktopAdministrators.Checked.ToString(); + settings[CHANGE_DESKTOP_DISABLED_USERS] = cbDesktopUsers.Checked.ToString(); + settings[SCREEN_SAVER_DISABLED_ADMINISTRATORS] = cbScreenSaverAdministrators.Checked.ToString(); + settings[SCREEN_SAVER_DISABLED_USERS] = cbScreenSaverUsers.Checked.ToString(); + settings[DRIVE_SPACE_THRESHOLD_VALUE] = txtThreshold.Text; + } + } +} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsPolicy.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsPolicy.ascx.designer.cs new file mode 100644 index 00000000..ab5d3f15 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SettingsRdsPolicy.ascx.designer.cs @@ -0,0 +1,339 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WebsitePanel.Portal { + + + public partial class SettingsRdsPolicy { + + /// + /// secTimeout control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.CollapsiblePanel secTimeout; + + /// + /// timeoutPanel control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel timeoutPanel; + + /// + /// txtTimeout control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtTimeout; + + /// + /// cbTimeoutUsers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbTimeoutUsers; + + /// + /// cbTimeoutAdministrators control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbTimeoutAdministrators; + + /// + /// secRunCommand control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.CollapsiblePanel secRunCommand; + + /// + /// runCommandPanel control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel runCommandPanel; + + /// + /// cbRunCommandUsers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbRunCommandUsers; + + /// + /// cbRunCommandAdministrators control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbRunCommandAdministrators; + + /// + /// secPowershellCommand control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.CollapsiblePanel secPowershellCommand; + + /// + /// powershellCommandPanel control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel powershellCommandPanel; + + /// + /// cbPowershellUsers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbPowershellUsers; + + /// + /// cbPowershellAdministrators control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbPowershellAdministrators; + + /// + /// secHideCDrive control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.CollapsiblePanel secHideCDrive; + + /// + /// hideCDrivePanel control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel hideCDrivePanel; + + /// + /// cbHideCDriveUsers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbHideCDriveUsers; + + /// + /// cbHideCDriveAdministrators control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbHideCDriveAdministrators; + + /// + /// secShutdown control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.CollapsiblePanel secShutdown; + + /// + /// shutdownPanel control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel shutdownPanel; + + /// + /// cbShutdownUsers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbShutdownUsers; + + /// + /// cbShutdownAdministrators control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbShutdownAdministrators; + + /// + /// secTaskManager control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.CollapsiblePanel secTaskManager; + + /// + /// taskManagerPanel control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel taskManagerPanel; + + /// + /// cbTaskManagerUsers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbTaskManagerUsers; + + /// + /// cbTaskManagerAdministrators control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbTaskManagerAdministrators; + + /// + /// secChangeDesktop control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.CollapsiblePanel secChangeDesktop; + + /// + /// desktopPanel control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel desktopPanel; + + /// + /// cbDesktopUsers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbDesktopUsers; + + /// + /// cbDesktopAdministrators control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbDesktopAdministrators; + + /// + /// secScreenSaver control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.CollapsiblePanel secScreenSaver; + + /// + /// screenSaverPanel control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel screenSaverPanel; + + /// + /// cbScreenSaverUsers control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbScreenSaverUsers; + + /// + /// cbScreenSaverAdministrators control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CheckBox cbScreenSaverAdministrators; + + /// + /// secDriveSpace control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::WebsitePanel.Portal.CollapsiblePanel secDriveSpace; + + /// + /// driveSpacePanel control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Panel driveSpacePanel; + + /// + /// txtThreshold control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox txtThreshold; + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountPolicySettings.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountPolicySettings.ascx index 1ea55968..89b1b10b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountPolicySettings.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountPolicySettings.ascx @@ -63,6 +63,10 @@ +
  • + +
  • diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountPolicySettings.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountPolicySettings.ascx.designer.cs index 708f59a5..4f52623a 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountPolicySettings.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountPolicySettings.ascx.designer.cs @@ -1,31 +1,3 @@ -// Copyright (c) 2015, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -175,6 +147,15 @@ namespace WebsitePanel.Portal { /// protected global::System.Web.UI.WebControls.HyperLink lnkVpsPolicy; + /// + /// lnkRdsPolicy control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.HyperLink lnkRdsPolicy; + /// /// btnCancel control. /// diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebsitePanel.Portal.Modules.csproj b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebsitePanel.Portal.Modules.csproj index 06ce4377..ea79a622 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebsitePanel.Portal.Modules.csproj +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/WebsitePanel.Portal.Modules.csproj @@ -517,6 +517,13 @@ SettingsDomainLookupLetter.ascx + + SettingsRdsPolicy.ascx + ASPXCodeBehind + + + SettingsRdsPolicy.ascx + SettingsRdsSetupLetter.ascx ASPXCodeBehind @@ -4558,6 +4565,7 @@ + @@ -4604,6 +4612,7 @@ +