Merge
This commit is contained in:
commit
b5a9bab0f5
33 changed files with 304 additions and 132 deletions
|
@ -91,7 +91,7 @@ namespace WebsitePanel.VmConfig
|
|||
}
|
||||
|
||||
attempts++;
|
||||
Log.WriteError(string.Format("Attempt #{0} to find network adapter failed!", attempts));
|
||||
Log.WriteError(string.Format("Attempt #{0} to find network adapter (mac: {1}) failed!", attempts, macAddress));
|
||||
// wait 1 min
|
||||
System.Threading.Thread.Sleep(60000);
|
||||
//repeat loop
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<appSettings>
|
||||
|
||||
<!-- Start-up delay in milliseconds - time to wait before tasks execution -->
|
||||
<add key="Service.StartupDelay" value="0"/>
|
||||
<add key="Service.StartupDelay" value="20000"/>
|
||||
|
||||
<!-- Interval in milliseconds to poll registry keys. 1 - read registry only once -->
|
||||
<add key="Service.RegistryPollInterval" value="30000"/>
|
||||
|
|
|
@ -141,6 +141,8 @@ namespace WebsitePanel.EnterpriseServer {
|
|||
|
||||
private System.Threading.SendOrPostCallback ImportCollectionOperationCompleted;
|
||||
|
||||
private System.Threading.SendOrPostCallback GetRemoteDesktopServiceIdOperationCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public esRemoteDesktopServices() {
|
||||
this.Url = "http://localhost:9002/esRemoteDesktopServices.asmx";
|
||||
|
@ -311,6 +313,9 @@ namespace WebsitePanel.EnterpriseServer {
|
|||
/// <remarks/>
|
||||
public event ImportCollectionCompletedEventHandler ImportCollectionCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
public event GetRemoteDesktopServiceIdCompletedEventHandler GetRemoteDesktopServiceIdCompleted;
|
||||
|
||||
/// <remarks/>
|
||||
[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) {
|
||||
|
@ -2772,6 +2777,47 @@ namespace WebsitePanel.EnterpriseServer {
|
|||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetRemoteDesktopServiceId", 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 GetRemoteDesktopServiceId(int itemId) {
|
||||
object[] results = this.Invoke("GetRemoteDesktopServiceId", new object[] {
|
||||
itemId});
|
||||
return ((int)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public System.IAsyncResult BeginGetRemoteDesktopServiceId(int itemId, System.AsyncCallback callback, object asyncState) {
|
||||
return this.BeginInvoke("GetRemoteDesktopServiceId", new object[] {
|
||||
itemId}, callback, asyncState);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public int EndGetRemoteDesktopServiceId(System.IAsyncResult asyncResult) {
|
||||
object[] results = this.EndInvoke(asyncResult);
|
||||
return ((int)(results[0]));
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void GetRemoteDesktopServiceIdAsync(int itemId) {
|
||||
this.GetRemoteDesktopServiceIdAsync(itemId, null);
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public void GetRemoteDesktopServiceIdAsync(int itemId, object userState) {
|
||||
if ((this.GetRemoteDesktopServiceIdOperationCompleted == null)) {
|
||||
this.GetRemoteDesktopServiceIdOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRemoteDesktopServiceIdOperationCompleted);
|
||||
}
|
||||
this.InvokeAsync("GetRemoteDesktopServiceId", new object[] {
|
||||
itemId}, this.GetRemoteDesktopServiceIdOperationCompleted, userState);
|
||||
}
|
||||
|
||||
private void OnGetRemoteDesktopServiceIdOperationCompleted(object arg) {
|
||||
if ((this.GetRemoteDesktopServiceIdCompleted != null)) {
|
||||
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||
this.GetRemoteDesktopServiceIdCompleted(this, new GetRemoteDesktopServiceIdCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public new void CancelAsync(object userState) {
|
||||
base.CancelAsync(userState);
|
||||
|
@ -4207,4 +4253,30 @@ namespace WebsitePanel.EnterpriseServer {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
public delegate void GetRemoteDesktopServiceIdCompletedEventHandler(object sender, GetRemoteDesktopServiceIdCompletedEventArgs e);
|
||||
|
||||
/// <remarks/>
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||
public partial class GetRemoteDesktopServiceIdCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||
|
||||
private object[] results;
|
||||
|
||||
internal GetRemoteDesktopServiceIdCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||
base(exception, cancelled, userState) {
|
||||
this.results = results;
|
||||
}
|
||||
|
||||
/// <remarks/>
|
||||
public int Result {
|
||||
get {
|
||||
this.RaiseExceptionIfNecessary();
|
||||
return ((int)(this.results[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,6 +56,11 @@ namespace WebsitePanel.EnterpriseServer
|
|||
|
||||
}
|
||||
|
||||
public static int GetRemoteDesktopServiceId(int itemId)
|
||||
{
|
||||
return GetRdsServiceId(itemId);
|
||||
}
|
||||
|
||||
public static RdsCollection GetRdsCollection(int collectionId)
|
||||
{
|
||||
return GetRdsCollectionInternal(collectionId);
|
||||
|
|
|
@ -392,5 +392,11 @@ namespace WebsitePanel.EnterpriseServer
|
|||
{
|
||||
return RemoteDesktopServicesController.ImportCollection(itemId, collectionName);
|
||||
}
|
||||
|
||||
[WebMethod]
|
||||
public int GetRemoteDesktopServiceId(int itemId)
|
||||
{
|
||||
return RemoteDesktopServicesController.GetRemoteDesktopServiceId(itemId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace WebsitePanel.EnterpriseServer.Base.RDS
|
|||
public const string DISABLE_CMD = "DisableCMD";
|
||||
public const string DISABLE_CMD_ADMINISTRATORS = "DisableCMDAdministrators";
|
||||
public const string DISABLE_CMD_USERS = "DisableCMDUsers";
|
||||
public const string ALLOWCONNECTIONSIMPORT = "AllowConnectionsImport";
|
||||
public const string ALLOWCOLLECTIONSIMPORT = "AllowCollectionsImport";
|
||||
|
||||
public string SettingsName { get; set; }
|
||||
public int ServerId { get; set; }
|
||||
|
|
|
@ -228,21 +228,31 @@ namespace WebsitePanel.Providers.Virtualization
|
|||
|
||||
try
|
||||
{
|
||||
Command cmd = new Command("Get-VM");
|
||||
HostedSolutionLog.LogInfo("Before Get-VM command");
|
||||
|
||||
Command cmd = new Command("Get-VM");
|
||||
Collection<PSObject> result = PowerShell.Execute(cmd, true);
|
||||
|
||||
HostedSolutionLog.LogInfo("After Get-VM command");
|
||||
foreach (PSObject current in result)
|
||||
{
|
||||
VirtualMachine vm = new VirtualMachine
|
||||
{
|
||||
VirtualMachineId = current.GetProperty("Id").ToString(),
|
||||
Name = current.GetString("Name"),
|
||||
State = current.GetEnum<VirtualMachineState>("State"),
|
||||
Uptime = Convert.ToInt64(current.GetProperty<TimeSpan>("UpTime").TotalMilliseconds),
|
||||
ReplicationState = current.GetEnum<ReplicationState>("ReplicationState")
|
||||
};
|
||||
HostedSolutionLog.LogInfo("- start VM -");
|
||||
var vm = new VirtualMachine();
|
||||
HostedSolutionLog.LogInfo("create");
|
||||
vm.VirtualMachineId = current.GetProperty("Id").ToString();
|
||||
HostedSolutionLog.LogInfo("VirtualMachineId {0}", vm.VirtualMachineId);
|
||||
vm.Name = current.GetString("Name");
|
||||
HostedSolutionLog.LogInfo("Name {0}", vm.Name);
|
||||
vm.State = current.GetEnum<VirtualMachineState>("State");
|
||||
HostedSolutionLog.LogInfo("State {0}", vm.State);
|
||||
vm.Uptime = Convert.ToInt64(current.GetProperty<TimeSpan>("UpTime").TotalMilliseconds);
|
||||
HostedSolutionLog.LogInfo("Uptime {0}", vm.Uptime);
|
||||
vm.ReplicationState = current.GetEnum<ReplicationState>("ReplicationState");
|
||||
HostedSolutionLog.LogInfo("ReplicationState {0}", vm.ReplicationState);
|
||||
vmachines.Add(vm);
|
||||
HostedSolutionLog.LogInfo("- end VM -");
|
||||
}
|
||||
HostedSolutionLog.LogInfo("Finish");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
@ -430,7 +430,7 @@ namespace WebsitePanel.WebDavPortal.Resources {
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Initials.
|
||||
/// Looks up a localized string similar to Middle Initial.
|
||||
/// </summary>
|
||||
public static string Initials {
|
||||
get {
|
||||
|
|
|
@ -235,7 +235,7 @@
|
|||
<value>Info</value>
|
||||
</data>
|
||||
<data name="Initials" xml:space="preserve">
|
||||
<value>Initials</value>
|
||||
<value>Middle Initial</value>
|
||||
</data>
|
||||
<data name="ItemExist" xml:space="preserve">
|
||||
<value>File already exist</value>
|
||||
|
|
|
@ -380,3 +380,74 @@ p.warningText {font-size:14px; color:Red; text-align:center;}
|
|||
.ui-menu-item:hover {
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.tip-bluesimple {
|
||||
z-index:1000;
|
||||
text-align:left;
|
||||
border:1px solid #5e86aa;
|
||||
border-radius:4px;
|
||||
-moz-border-radius:4px;
|
||||
-webkit-border-radius:4px;
|
||||
min-width:50px;
|
||||
max-width:300px;
|
||||
color:#333;
|
||||
background-color:#ffffff;
|
||||
/**
|
||||
* - If you set a background-image, border/padding/background-color will be ingnored.
|
||||
* You can set any padding to .tip-inner instead if you need.
|
||||
* - If you want a tiled background-image and border/padding for the tip,
|
||||
* set the background-image to .tip-inner instead.
|
||||
*/
|
||||
}
|
||||
.tip-bluesimple .tip-inner {
|
||||
font:12px/16px arial,helvetica,sans-serif;
|
||||
}
|
||||
|
||||
/* Configure an arrow image - the script will automatically position it on the correct side of the tip */
|
||||
.tip-bluesimple .tip-arrow-top {
|
||||
margin-top:-6px;
|
||||
margin-left:-5px; /* approx. half the width to center it */
|
||||
top:0;
|
||||
left:50%;
|
||||
width:9px;
|
||||
height:6px;
|
||||
}
|
||||
.tip-bluesimple .tip-arrow-right {
|
||||
margin-top:-4px; /* approx. half the height to center it */
|
||||
margin-left:0;
|
||||
top:50%;
|
||||
left:100%;
|
||||
width:6px;
|
||||
height:9px;
|
||||
}
|
||||
.tip-bluesimple .tip-arrow-bottom {
|
||||
margin-top:0;
|
||||
margin-left:-5px; /* approx. half the width to center it */
|
||||
top:100%;
|
||||
left:50%;
|
||||
width:9px;
|
||||
height:6px;
|
||||
}
|
||||
.tip-bluesimple .tip-arrow-left {
|
||||
margin-top:-3px; /* approx. half the height to center it */
|
||||
margin-left:-6px;
|
||||
top:50%;
|
||||
left:0;
|
||||
width:6px;
|
||||
height:9px;
|
||||
}
|
||||
|
||||
.popover-title {
|
||||
padding: 8px 14px;
|
||||
margin: 0 !important;
|
||||
font-size: 14px;
|
||||
background-color: #f7f7f7;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
|
||||
.popover-content {
|
||||
padding:6px 8px;
|
||||
}
|
|
@ -163,7 +163,7 @@
|
|||
<value>Home Phone:</value>
|
||||
</data>
|
||||
<data name="locInitials.Text" xml:space="preserve">
|
||||
<value>Initials:</value>
|
||||
<value>Middle Initial:</value>
|
||||
</data>
|
||||
<data name="locJobTitle.Text" xml:space="preserve">
|
||||
<value>Job Title:</value>
|
||||
|
|
|
@ -157,7 +157,7 @@
|
|||
<value>Home Phone:</value>
|
||||
</data>
|
||||
<data name="locInitials.Text" xml:space="preserve">
|
||||
<value>Initials:</value>
|
||||
<value>Middle Initial:</value>
|
||||
</data>
|
||||
<data name="locJobTitle.Text" xml:space="preserve">
|
||||
<value>Job Title:</value>
|
||||
|
|
|
@ -166,7 +166,7 @@
|
|||
<value>Home Phone:</value>
|
||||
</data>
|
||||
<data name="locInitials.Text" xml:space="preserve">
|
||||
<value>Initials:</value>
|
||||
<value>Middle Initial:</value>
|
||||
</data>
|
||||
<data name="locJobTitle.Text" xml:space="preserve">
|
||||
<value>Job Title:</value>
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
<td>
|
||||
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100"></asp:TextBox>
|
||||
|
||||
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Initials:" />
|
||||
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Middle Initial:" />
|
||||
<asp:TextBox ID="txtInitials" runat="server" CssClass="TextBox100"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -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.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
<td>
|
||||
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox>
|
||||
|
||||
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Initials:" />
|
||||
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Middle Initial:" />
|
||||
<asp:TextBox ID="txtInitials" runat="server" MaxLength="6" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
<td>
|
||||
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox>
|
||||
|
||||
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Initials:" />
|
||||
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Middle Initial:" />
|
||||
<asp:TextBox ID="txtInitials" runat="server" MaxLength="6" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<td>
|
||||
<asp:label ID="lblFirstName" runat="server"></asp:label>
|
||||
|
||||
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Initials:" />
|
||||
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Middle Initial:" />
|
||||
<asp:Label ID="lblInitials" runat="server"></asp:Label>
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
<td>
|
||||
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100"></asp:TextBox>
|
||||
|
||||
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Initials:" />
|
||||
<asp:Localize ID="locInitials" runat="server" meta:resourcekey="locInitials" Text="Middle Initial:" />
|
||||
<asp:TextBox ID="txtInitials" runat="server" MaxLength="6" CssClass="TextBox100"></asp:TextBox>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -295,3 +295,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -147,4 +147,7 @@
|
|||
<data name="lblComputersRootOU.Text" xml:space="preserve">
|
||||
<value>Computers Root OU:</value>
|
||||
</data>
|
||||
<data name="cbCollectionsImport.Text" xml:space="preserve">
|
||||
<value>Allow Collections Import</value>
|
||||
</data>
|
||||
</root>
|
|
@ -58,6 +58,11 @@
|
|||
</fieldset>
|
||||
<fieldset>
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<asp:CheckBox runat="server" Text="Allow Collections Import" ID="cbCollectionsImport" meta:resourcekey="cbCollectionsImport" Checked="false" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead" width="200" nowrap>
|
||||
<asp:Label runat="server" ID="lblConnectionBroker" meta:resourcekey="lblConnectionBroker" Text="Connection Broker:"/>
|
||||
|
|
|
@ -32,6 +32,7 @@ using System.Collections.Generic;
|
|||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Web.UI.WebControls;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.EnterpriseServer.Base.RDS;
|
||||
using WebsitePanel.Providers.Common;
|
||||
using WebsitePanel.Providers.RemoteDesktopServices;
|
||||
|
||||
|
@ -98,6 +99,11 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
txtCentralNPS.Enabled = false;
|
||||
txtCentralNPS.Text = string.Empty;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(settings[RdsServerSettings.ALLOWCOLLECTIONSIMPORT]))
|
||||
{
|
||||
cbCollectionsImport.Checked = Convert.ToBoolean(settings[RdsServerSettings.ALLOWCOLLECTIONSIMPORT]);
|
||||
}
|
||||
}
|
||||
|
||||
public void SaveSettings(System.Collections.Specialized.StringDictionary settings)
|
||||
|
@ -108,6 +114,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
|||
settings["PrimaryDomainController"] = txtPrimaryDomainController.Text;
|
||||
settings["UseCentralNPS"] = chkUseCentralNPS.Checked.ToString();
|
||||
settings["CentralNPS"] = chkUseCentralNPS.Checked ? txtCentralNPS.Text : string.Empty;
|
||||
settings[RdsServerSettings.ALLOWCOLLECTIONSIMPORT] = cbCollectionsImport.Checked.ToString();
|
||||
|
||||
settings["GWServrsList"] = GWServers;
|
||||
|
||||
|
|
|
@ -84,6 +84,15 @@ namespace WebsitePanel.Portal.ProviderControls {
|
|||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblExpiryDate;
|
||||
|
||||
/// <summary>
|
||||
/// cbCollectionsImport control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbCollectionsImport;
|
||||
|
||||
/// <summary>
|
||||
/// lblConnectionBroker control.
|
||||
/// </summary>
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Collections.Specialized;
|
||||
using System.Linq;
|
||||
using System.Web.UI.WebControls;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
|
@ -55,8 +56,10 @@ namespace WebsitePanel.Portal.RDS
|
|||
btnAddCollection.Enabled = (!(cntx.Quotas[Quotas.RDS_COLLECTIONS].QuotaAllocatedValue <= gvRDSCollections.Rows.Count) || (cntx.Quotas[Quotas.RDS_COLLECTIONS].QuotaAllocatedValue == -1));
|
||||
}
|
||||
|
||||
var defaultSettings = ES.Services.Users.GetUserSettings(PanelSecurity.EffectiveUserId, UserSettings.RDS_POLICY);
|
||||
var allowImport = Convert.ToBoolean(defaultSettings[RdsServerSettings.ALLOWCONNECTIONSIMPORT]);
|
||||
var serviceId = ES.Services.RDS.GetRemoteDesktopServiceId(PanelRequest.ItemID);
|
||||
var settings = ConvertArrayToDictionary(ES.Services.Servers.GetServiceSettings(serviceId));
|
||||
|
||||
var allowImport = Convert.ToBoolean(settings[RdsServerSettings.ALLOWCOLLECTIONSIMPORT]);
|
||||
|
||||
if (!allowImport)
|
||||
{
|
||||
|
@ -64,6 +67,8 @@ namespace WebsitePanel.Portal.RDS
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void BindQuota(PackageContext cntx)
|
||||
{
|
||||
OrganizationStatistics stats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID);
|
||||
|
@ -142,5 +147,16 @@ namespace WebsitePanel.Portal.RDS
|
|||
{
|
||||
return EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "rds_edit_collection", "CollectionId=" + collectionId, "ItemID=" + PanelRequest.ItemID);
|
||||
}
|
||||
|
||||
private StringDictionary ConvertArrayToDictionary(string[] settings)
|
||||
{
|
||||
StringDictionary r = new StringDictionary();
|
||||
foreach (string setting in settings)
|
||||
{
|
||||
int idx = setting.IndexOf('=');
|
||||
r.Add(setting.Substring(0, idx), setting.Substring(idx + 1));
|
||||
}
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -181,14 +181,3 @@
|
|||
</table>
|
||||
<br />
|
||||
</asp:Panel>
|
||||
<wsp:CollapsiblePanel id="secAllowImport" runat="server" TargetControlID="allowImportPanel" meta:resourcekey="secAllowImport" Text="Connections Import"/>
|
||||
<asp:Panel ID="allowImportPanel" runat="server" Height="0" style="overflow:hidden;">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<asp:CheckBox runat="server" Text="Users" ID="cbAllowImport" meta:resourcekey="cbAllowImport" Checked="false" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
</asp:Panel>
|
||||
|
|
|
@ -53,7 +53,6 @@ namespace WebsitePanel.Portal
|
|||
cbDisableCmdUsers.Checked = Convert.ToBoolean(settings[RdsServerSettings.DISABLE_CMD_USERS]);
|
||||
|
||||
ddTreshold.SelectedValue = settings[RdsServerSettings.DRIVE_SPACE_THRESHOLD_VALUE];
|
||||
cbAllowImport.Checked = Convert.ToBoolean(settings[RdsServerSettings.ALLOWCONNECTIONSIMPORT]);
|
||||
}
|
||||
|
||||
public void SaveSettings(UserSettings settings)
|
||||
|
@ -82,7 +81,6 @@ namespace WebsitePanel.Portal
|
|||
settings[RdsServerSettings.RDS_CONTROL_WITHOUT_PERMISSION_Users] = cbControlSessionUsers.Checked.ToString();
|
||||
settings[RdsServerSettings.DISABLE_CMD_ADMINISTRATORS] = cbDisableCmdAdministrators.Checked.ToString();
|
||||
settings[RdsServerSettings.DISABLE_CMD_USERS] = cbDisableCmdUsers.Checked.ToString();
|
||||
settings[RdsServerSettings.ALLOWCONNECTIONSIMPORT] = cbAllowImport.Checked.ToString();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -443,32 +443,5 @@ namespace WebsitePanel.Portal {
|
|||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbDisableCmdAdministrators;
|
||||
|
||||
/// <summary>
|
||||
/// secAllowImport control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::WebsitePanel.Portal.CollapsiblePanel secAllowImport;
|
||||
|
||||
/// <summary>
|
||||
/// allowImportPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel allowImportPanel;
|
||||
|
||||
/// <summary>
|
||||
/// cbAllowImport control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cbAllowImport;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,8 @@
|
|||
<asp:HyperLink ID="lnkGenerate" runat="server" NavigateUrl="#" meta:resourcekey="lnkGenerate" Visible="false">Generate random</asp:HyperLink></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="SubHead"><asp:Label id="lblConfirmPassword" runat="server" meta:resourcekey="lblConfirmPassword"></asp:Label></td>
|
||||
<td class="SubHead">
|
||||
<asp:Label ID="lblConfirmPassword" runat="server" meta:resourcekey="lblConfirmPassword"></asp:Label></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="Normal">
|
||||
|
@ -34,3 +35,54 @@
|
|||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<% if (ValidationEnabled)
|
||||
{%>
|
||||
<div style="display: none;" id="password-hint-popup">
|
||||
<h3 class="popover-title">
|
||||
Password must meet the following requirements:
|
||||
</h3>
|
||||
<ul class="popover-content">
|
||||
|
||||
<li><%= string.Format("Password should be at least {0} characters", MinimumLength) %>
|
||||
</li>
|
||||
<li><%= string.Format("Password should be maximum {0} characters", MaximumLength) %>
|
||||
</li>
|
||||
|
||||
<% if (MinimumUppercase > 0)
|
||||
{%>
|
||||
<li><%= string.Format("Password should contain at least {0} UPPERCASE characters", MinimumUppercase) %>
|
||||
</li>
|
||||
<% }%>
|
||||
<% if (MinimumNumbers > 0)
|
||||
{%>
|
||||
<li><%= string.Format("Password should contain at least {0} numbers", MinimumNumbers) %>
|
||||
</li>
|
||||
<% }%>
|
||||
<% if (MinimumSymbols > 0)
|
||||
{%>
|
||||
<li><%= string.Format("Password should contain at least {0} non-alphanumeric symbols", MinimumSymbols) %>
|
||||
</li>
|
||||
<% }%>
|
||||
</ul>
|
||||
</div>
|
||||
<% }%>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
$(document).ready(function () {
|
||||
$('#<%=txtPassword.ClientID%>').poshytip({
|
||||
className: 'tip-bluesimple',
|
||||
showOn: 'focus',
|
||||
alignTo: 'target',
|
||||
alignX: 'center',
|
||||
alignY: 'bottom',
|
||||
offsetX: 2,
|
||||
content: function () {
|
||||
return $('#password-hint-popup').html();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -278,6 +278,8 @@ namespace WebsitePanel.Portal
|
|||
}
|
||||
", true);
|
||||
|
||||
|
||||
Page.ClientScript.RegisterClientScriptInclude("jqueryui-tooltip", ResolveUrl("~/JavaScript/jquery.poshytip.min.js"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,35 +1,6 @@
|
|||
// 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.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.1873
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
|
|
|
@ -6538,7 +6538,9 @@
|
|||
<Content Include="RDS\UserControls\App_LocalResources\RDSCollectionApps.ascx.resx">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="ProviderControls\App_LocalResources\RDS_Settings.ascx.resx" />
|
||||
<Content Include="ProviderControls\App_LocalResources\RDS_Settings.ascx.resx">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="UserControls\App_LocalResources\DomainControl.ascx.resx">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
|
|
7
WebsitePanel/Sources/WebsitePanel.WebPortal/JavaScript/jquery.poshytip.min.js
vendored
Normal file
7
WebsitePanel/Sources/WebsitePanel.WebPortal/JavaScript/jquery.poshytip.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -241,6 +241,7 @@
|
|||
<Content Include="Error.htm" />
|
||||
<Content Include="JavaScript\jquery-1.4.4.min.js" />
|
||||
<Content Include="JavaScript\jquery-ui-1.8.9.min.js" />
|
||||
<Content Include="JavaScript\jquery.poshytip.min.js" />
|
||||
<Content Include="JavaScript\jquery.window.js" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue