This commit is contained in:
alexY2004 2015-05-22 15:09:39 +03:00
commit a08adf9b91
54 changed files with 2971 additions and 1065 deletions

View file

@ -12216,7 +12216,7 @@ SET @columnFullName = 'FullName'
DECLARE @curUsers cursor
DECLARE @curSpace cursor
DECLARE @sqlSpace nvarchar(2000)
DECLARE @sqlSpace nvarchar(3000)
DECLARE @sqlUsers nvarchar(2000)
DECLARE @sqlReturn nvarchar(4000)
@ -12232,12 +12232,8 @@ DECLARE @Users TABLE
UserID int
)
INSERT INTO @Users (UserID)
SELECT '
IF @OnlyFind = 1
SET @sqlUsers = @sqlUsers + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlUsers = @sqlUsers + 'U.UserID
SELECT
U.UserID
FROM UsersDetailed AS U
WHERE
U.UserID <> @UserID AND U.IsPeer = 0 AND
@ -12249,8 +12245,12 @@ WHERE
AND ((@RoleID = 0) OR (@RoleID > 0 AND U.RoleID = @RoleID))
AND @HasUserRights = 1
SET @curValue = cursor local for
SELECT
U.ItemID,
SELECT '
IF @OnlyFind = 1
SET @sqlUsers = @sqlUsers + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlUsers = @sqlUsers + 'U.ItemID,
U.TextSearch,
U.ColumnType,
''Users'' as FullType,
@ -12274,8 +12274,10 @@ SELECT U3.UserID as ItemID, U3.FirstName + '' '' + U3.LastName as TextSearch, @c
FROM dbo.Users AS U3) as U
WHERE TextSearch<>'' '' OR ISNULL(TextSearch, 0) > 0
)
AS U ON TU.UserID = U.ItemID
ORDER BY TextSearch'
AS U ON TU.UserID = U.ItemID'
IF @FilterValue <> ''
SET @sqlUsers = @sqlUsers + ' WHERE TextSearch LIKE ''' + @FilterValue + ''''
SET @sqlUsers = @sqlUsers + ' ORDER BY TextSearch'
SET @sqlUsers = @sqlUsers + ' open @curValue'
@ -12288,12 +12290,8 @@ SET @sqlSpace = '
ItemID int
)
INSERT INTO @ItemsService (ItemID)
SELECT '
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + 'SI.ItemID
SELECT
SI.ItemID
FROM ServiceItems AS SI
INNER JOIN Packages AS P ON P.PackageID = SI.PackageID
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
@ -12313,8 +12311,12 @@ SET @sqlSpace = @sqlSpace + 'SI.ItemID
dbo.CheckUserParent(@UserID, P.UserID) = 1
SET @curValue = cursor local for
SELECT
SELECT '
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + '
SI.ItemID as ItemID,
SI.ItemName as TextSearch,
STYPE.DisplayName as ColumnType,
@ -12324,9 +12326,17 @@ SET @sqlSpace = @sqlSpace + 'SI.ItemID
FROM @ItemsService AS I
INNER JOIN ServiceItems AS SI ON I.ItemID = SI.ItemID
INNER JOIN ServiceItemTypes AS STYPE ON SI.ItemTypeID = STYPE.ItemTypeID
WHERE STYPE.Searchable = 1
UNION
SELECT
WHERE (STYPE.Searchable = 1)'
IF @FilterValue <> ''
SET @sqlSpace = @sqlSpace + ' AND (SI.ItemName LIKE ''' + @FilterValue + ''')'
SET @sqlSpace = @sqlSpace + '
UNION (
SELECT '
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + '
D.DomainID AS ItemID,
D.DomainName as TextSearch,
''Domain'' as ColumnType,
@ -12335,19 +12345,67 @@ SET @sqlSpace = @sqlSpace + 'SI.ItemID
0 as AccountID
FROM @ItemsDomain AS I
INNER JOIN Domains AS D ON I.ItemID = D.DomainID
WHERE D.IsDomainPointer=0
WHERE (D.IsDomainPointer=0)'
IF @FilterValue <> ''
SET @sqlSpace = @sqlSpace + ' AND (D.DomainName LIKE ''' + @FilterValue + ''')'
SET @sqlSpace = @sqlSpace + '
UNION
SELECT
SELECT '
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + '
EA.ItemID AS ItemID,
EA.AccountName as TextSearch,
EA.DisplayName as TextSearch,
''ExchangeAccount'' as ColumnType,
''ExchangeAccountMailbox'' as FullType,
''ExchangeAccount'' as FullType,
SI2.PackageID as PackageID,
EA.AccountID as AccountID
FROM @ItemsService AS I2
INNER JOIN ServiceItems AS SI2 ON I2.ItemID = SI2.ItemID
INNER JOIN ExchangeAccounts AS EA ON I2.ItemID = EA.ItemID
ORDER BY TextSearch';
INNER JOIN ExchangeAccounts AS EA ON I2.ItemID = EA.ItemID'
IF @FilterValue <> ''
SET @sqlSpace = @sqlSpace + ' WHERE (EA.DisplayName LIKE ''' + @FilterValue + ''')'
SET @sqlSpace = @sqlSpace + '
UNION
SELECT '
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + '
EA4.ItemID AS ItemID,
EA4.PrimaryEmailAddress as TextSearch,
''ExchangeAccount'' as ColumnType,
''ExchangeAccount'' as FullType,
SI4.PackageID as PackageID,
EA4.AccountID as AccountID
FROM @ItemsService AS I4
INNER JOIN ServiceItems AS SI4 ON I4.ItemID = SI4.ItemID
INNER JOIN ExchangeAccounts AS EA4 ON I4.ItemID = EA4.ItemID'
IF @FilterValue <> ''
SET @sqlSpace = @sqlSpace + ' WHERE (EA4.PrimaryEmailAddress LIKE ''' + @FilterValue + ''')'
SET @sqlSpace = @sqlSpace + '
UNION
SELECT '
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + '
I3.ItemID AS ItemID,
EAEA.EmailAddress as TextSearch,
''ExchangeAccount'' as ColumnType,
''ExchangeAccount'' as FullType,
SI3.PackageID as PackageID,
0 as AccountID
FROM @ItemsService AS I3
INNER JOIN ServiceItems AS SI3 ON I3.ItemID = SI3.ItemID
INNER JOIN ExchangeAccountEmailAddresses AS EAEA ON I3.ItemID = EAEA.AccountID'
IF @FilterValue <> ''
SET @sqlSpace = @sqlSpace + ' WHERE (EAEA.EmailAddress LIKE ''' + @FilterValue + ''')'
SET @sqlSpace = @sqlSpace + ') ORDER BY TextSearch';
SET @sqlSpace = @sqlSpace + ' open @curValue'
@ -12411,9 +12469,6 @@ SET @sqlReturn = @sqlReturn + ' AND IA.ColumnType in ( ' + @ColType + ' ) ';
IF @FullType <> ''
SET @sqlReturn = @sqlReturn + ' AND IA.FullType = ''' + @FullType + '''';
IF @FilterValue <> ''
SET @sqlReturn = @sqlReturn + ' AND IA.' + @FilterColumn + ' LIKE @FilterValue '
SET @sqlReturn = @sqlReturn + '
SELECT COUNT(ItemID) FROM @ItemsReturn;
SELECT DISTINCT(ColumnType) FROM @ItemsReturn WHERE (1 = 1) ';

View file

@ -44364,7 +44364,7 @@ Hello #user.FirstName#,
</p>
<p>
Please, find below details of your control panel account.
Please, find below details of your control panel account. The one time password was generated for you. You should change the password after login.
</p>
<h1>Control Panel URL</h1>
@ -44373,7 +44373,7 @@ Please, find below details of your control panel account.
<tr>
<th>Control Panel URL</th>
<th>Username</th>
<th>Password</th>
<th>One Time Password</th>
</tr>
</thead>
<tbody>
@ -44411,11 +44411,11 @@ INSERT [dbo].[UserSettings] ([UserID], [SettingsName], [PropertyName], [Property
Hello #user.FirstName#,
Please, find below details of your control panel account.
Please, find below details of your control panel account. The one time password was generated for you. You should change the password after login.
Control Panel URL: http://panel.AcmeHosting.com
Username: #user.Username#
Password: #user.Password#
One Time Password: #user.Password#
If you have any questions regarding your hosting account, feel free to contact our support department at any time.

File diff suppressed because it is too large Load diff

View file

@ -285,10 +285,22 @@ namespace WebsitePanel.Import.Enterprise
case "group":
if (child.Properties["mail"] != null)
email = (string)child.Properties["mail"].Value;
if ((typeProp != null) && (typeProp.Value != null) && (1073741833 == (int)typeProp.Value))
bool isDistributionList = false;
if ((typeProp != null) && (typeProp.Value != null) && (1073741833 == (int)typeProp.Value))
isDistributionList = true;
if (typeDetails == 262144)
isDistributionList = true;
if (typeDetails == 0)
isDistributionList = true;
if (isDistributionList)
{
//Universal Security Group
type = "Mail-Enabled Universal Security Group";
type = "Distribution List";
//email
PropertyValueCollection proxyAddresses = child.Properties["proxyAddresses"];
if (proxyAddresses != null)

View file

@ -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]));
}
}
}
}

View file

@ -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);

View file

@ -392,5 +392,11 @@ namespace WebsitePanel.EnterpriseServer
{
return RemoteDesktopServicesController.ImportCollection(itemId, collectionName);
}
[WebMethod]
public int GetRemoteDesktopServiceId(int itemId)
{
return RemoteDesktopServicesController.GetRemoteDesktopServiceId(itemId);
}
}
}

View file

@ -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; }

View file

@ -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)
{

View file

@ -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 {

View file

@ -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>

View file

@ -4368,6 +4368,12 @@
<data name="ServiceItemType.VirtualSwitch" xml:space="preserve">
<value>Virtual Switch</value>
</data>
<data name="ServiceItemType.SharePointFoundationSiteCollection" xml:space="preserve">
<value>SharePoint Foundation Site Collection</value>
</data>
<data name="ServiceItemType.SharePointEnterpriseSiteCollection" xml:space="preserve">
<value>SharePoint Enterprise Site Collection</value>
</data>
<data name="TaskActivity.VPS_ADD_EXTERNAL_IP" xml:space="preserve">
<value>Assigning external IP addresses</value>
</data>
@ -5292,9 +5298,6 @@
<data name="UserItemType.ExchangeAccount" xml:space="preserve">
<value>Exchange Account</value>
</data>
<data name="UserItemType.ExchangeAccountMailbox" xml:space="preserve">
<value>Exchange Mailbox</value>
</data>
<data name="UserItemType.Users" xml:space="preserve">
<value>Account Home</value>
</data>

View file

@ -379,4 +379,75 @@ 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;
}

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -61,7 +61,7 @@
<td>
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100"></asp:TextBox>
&nbsp;
<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>

View file

@ -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.

View file

@ -73,7 +73,7 @@
<td>
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox>
&nbsp;
<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>

View file

@ -47,7 +47,7 @@
<td>
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100" onKeyUp="buildDisplayName();"></asp:TextBox>
&nbsp;
<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>

View file

@ -77,7 +77,7 @@
<td>
<asp:label ID="lblFirstName" runat="server"></asp:label>
&nbsp;
<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>

View file

@ -95,7 +95,7 @@
<td>
<asp:TextBox ID="txtFirstName" runat="server" CssClass="TextBox100"></asp:TextBox>
&nbsp;
<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>
@ -294,4 +294,5 @@
</div>
</div>
</div>
</div>
</div>

View file

@ -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>

View file

@ -57,7 +57,12 @@
</asp:Panel>
</fieldset>
<fieldset>
<table>
<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:"/>

View file

@ -32,13 +32,14 @@ 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;
namespace WebsitePanel.Portal.ProviderControls
{
public partial class RDS_Settings : WebsitePanelControlBase, IHostingServiceProviderSettings
{
{
protected void Page_Load(object sender, EventArgs e)
{
FillCertificateInfo();
@ -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;

View file

@ -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>

View file

@ -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;
}
}
}

View file

@ -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>

View file

@ -52,8 +52,7 @@ namespace WebsitePanel.Portal
cbDisableCmdAdministrators.Checked = Convert.ToBoolean(settings[RdsServerSettings.DISABLE_CMD_ADMINISTRATORS]);
cbDisableCmdUsers.Checked = Convert.ToBoolean(settings[RdsServerSettings.DISABLE_CMD_USERS]);
ddTreshold.SelectedValue = settings[RdsServerSettings.DRIVE_SPACE_THRESHOLD_VALUE];
cbAllowImport.Checked = Convert.ToBoolean(settings[RdsServerSettings.ALLOWCONNECTIONSIMPORT]);
ddTreshold.SelectedValue = settings[RdsServerSettings.DRIVE_SPACE_THRESHOLD_VALUE];
}
public void SaveSettings(UserSettings settings)
@ -81,8 +80,7 @@ namespace WebsitePanel.Portal
settings[RdsServerSettings.RDS_CONTROL_WITHOUT_PERMISSION_ADMINISTRATORS] = cbControlSessionAdministrators.Checked.ToString();
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();
settings[RdsServerSettings.DISABLE_CMD_USERS] = cbDisableCmdUsers.Checked.ToString();
}
}
}

View file

@ -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;
}
}

View file

@ -50,7 +50,7 @@
$ImgBtn.attr('disabled', 'disabled');
}
});
if (document.referrer.search("pid=Login") > 0) {
if (document.referrer.search("pid=Login") > 0 || window.location.href.search("pid=SearchObject") > 0) {
$("#<%= tbSearch.ClientID %>").focus();
}

View file

@ -48,7 +48,6 @@ namespace WebsitePanel.Portal.SkinControls
const string TYPE_DOMAIN = "Domain";
const string TYPE_ORGANIZATION = "Organization";
const string TYPE_EXCHANGEACCOUNT = "ExchangeAccount";
const string TYPE_EXCHANGEACCOUNT_MAILBOX = "ExchangeAccountMailbox";
const string PID_SPACE_WEBSITES = "SpaceWebSites";
const string PID_SPACE_DIMAINS = "SpaceDomains";
const string PID_SPACE_EXCHANGESERVER = "SpaceExchangeServer";
@ -151,12 +150,6 @@ namespace WebsitePanel.Portal.SkinControls
"moduleDefId=ExchangeServer");
break;
case TYPE_EXCHANGEACCOUNT:
res = PortalUtils.NavigatePageURL(PID_SPACE_EXCHANGESERVER, "ItemID", itemId.ToString(),
PortalUtils.SPACE_ID_PARAM + "=" + spaceId, "ctl=edit_user",//"mid="+this.ModuleID.ToString(),
"AccountID="+this.tbAccountId.Text,"Context=User",
"moduleDefId=ExchangeServer");
break;
case TYPE_EXCHANGEACCOUNT_MAILBOX:
res = PortalUtils.NavigatePageURL(PID_SPACE_EXCHANGESERVER, "ItemID", itemId.ToString(),
PortalUtils.SPACE_ID_PARAM + "=" + spaceId, "ctl=edit_user",//"mid="+this.ModuleID.ToString(),
"AccountID=" + this.tbAccountId.Text, "Context=Mailbox",

View file

@ -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">
@ -18,7 +19,7 @@
meta:resourcekey="valRequireConfirmPassword" ErrorMessage="*" ControlToValidate="txtConfirmPassword" SetFocusOnError="True"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="valRequireEqualPassword" runat="server" ControlToCompare="txtPassword"
ControlToValidate="txtConfirmPassword" meta:resourcekey="valRequireEqualPassword" Display="Dynamic" ErrorMessage="*"></asp:CompareValidator>
<asp:CustomValidator ID="valCorrectLength" runat="server"
ControlToValidate="txtPassword" ErrorMessage="len" Display="Dynamic" Enabled="false"
ClientValidationFunction="wspValidatePasswordLength" OnServerValidate="valCorrectLength_ServerValidate"></asp:CustomValidator>
@ -33,4 +34,55 @@
ClientValidationFunction="wspValidatePasswordSymbols" OnServerValidate="valRequireSymbols_ServerValidate"></asp:CustomValidator>
</td>
</tr>
</table>
</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>

View file

@ -277,7 +277,9 @@ namespace WebsitePanel.Portal
return ((matches != null) && matches.length >= minMatches);
}
", true);
Page.ClientScript.RegisterClientScriptInclude("jqueryui-tooltip", ResolveUrl("~/JavaScript/jquery.poshytip.min.js"));
}
}

View file

@ -1,38 +1,9 @@
// 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.
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

View file

@ -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>

File diff suppressed because one or more lines are too long

View file

@ -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>

View file

@ -366,10 +366,10 @@
<Target Name="WiXCreateRedistFileListBuild" DependsOnTargets="CreateFixDefaultPublicFolderMailboxBuild" >
<RemoveDir Directories="$(WiXInstallerBuild)\ComponentsFiles" />
<MakeDir Directories="$(WiXInstallerBuild)\ComponentsFiles" />
<Exec Command='"$(WIX)bin\heat.exe" dir $(EnterpriseServerBuild) -o $(WiXInstallerBuild)\ComponentsFiles\EnterpriseServerFiles.wxs -gg -sreg -srd -var wix.BUILDESPATH -cg EnterpriseServerFiles -dr INSTALLENTERPRISESERVERFOLDER' />
<Exec Command='"$(WIX)bin\heat.exe" dir $(ServerBuild) -o $(WiXInstallerBuild)\ComponentsFiles\ServerFiles.wxs -gg -sreg -srd -var wix.BUILDSPATH -cg ServerFiles -dr INSTALLSERVERFOLDER' />
<Exec Command='"$(WIX)bin\heat.exe" dir $(PortalBuild) -o $(WiXInstallerBuild)\ComponentsFiles\PortalFiles.wxs -gg -sreg -srd -var wix.BUILDPPATH -cg PortalFiles -dr INSTALLPORTALFOLDER' />
<Exec Command='"$(WIX)bin\heat.exe" dir $(WebDavPortalBuild) -o $(WiXInstallerBuild)\ComponentsFiles\WebDavPortalFiles.wxs -gg -sreg -srd -var wix.BUILDWDPPATH -cg WebDavPortalFiles -dr INSTALLWEBDAVPORTALFOLDER' />
<Exec Command='"$(WIX)bin\heat.exe" dir $(EnterpriseServerBuild) -o $(WiXInstallerBuild)\ComponentsFiles\EnterpriseServerFiles.wxs -gg -sreg -srd -var wix.BUILDESPATH -cg EnterpriseServerFiles -dr PI_ESERVER_INSTALL_DIR' />
<Exec Command='"$(WIX)bin\heat.exe" dir $(ServerBuild) -o $(WiXInstallerBuild)\ComponentsFiles\ServerFiles.wxs -gg -sreg -srd -var wix.BUILDSPATH -cg ServerFiles -dr PI_SERVER_INSTALL_DIR' />
<Exec Command='"$(WIX)bin\heat.exe" dir $(PortalBuild) -o $(WiXInstallerBuild)\ComponentsFiles\PortalFiles.wxs -gg -sreg -srd -var wix.BUILDPPATH -cg PortalFiles -dr PI_PORTAL_INSTALL_DIR' />
<Exec Command='"$(WIX)bin\heat.exe" dir $(WebDavPortalBuild) -o $(WiXInstallerBuild)\ComponentsFiles\WebDavPortalFiles.wxs -gg -sreg -srd -var wix.BUILDWDPPATH -cg WebDavPortalFiles -dr PI_WDPORTAL_INSTALL_DIR' />
</Target>
<Target Name="Build" DependsOnTargets="WiXCreateRedistFileListBuild">