This commit is contained in:
me 2015-03-31 19:48:05 +04:00
commit b9adeb0e61
13 changed files with 214 additions and 31 deletions

View file

@ -586,7 +586,7 @@ namespace WebsitePanel.EnterpriseServer
var userGroups = OrganizationController.GetSecurityGroupsByMember(itemId, accountId);
foreach (var folder in es.GetFolders(org.OrganizationId, webDavSettings))
foreach (var folder in es.GetFoldersWithoutFrsm(org.OrganizationId, webDavSettings))
{
var permissions = ConvertToESPermission(itemId,folder.Rules);

View file

@ -39,6 +39,7 @@ namespace WebsitePanel.Providers.EnterpriseStorage
public interface IEnterpriseStorage
{
SystemFile[] GetFolders(string organizationId, WebDavSetting[] settings);
SystemFile[] GetFoldersWithoutFrsm(string organizationId, WebDavSetting[] settings);
SystemFile GetFolder(string organizationId, string folderName, WebDavSetting setting);
void CreateFolder(string organizationId, string folder, WebDavSetting setting);
SystemFile RenameFolder(string organizationId, string originalFolder, string newFolder, WebDavSetting setting);

View file

@ -38,7 +38,7 @@ namespace WebsitePanel.EnterpriseServer.Base.RDS
public const string CHANGE_DESKTOP_DISABLED_USERS = "ChangingDesktopDisabledUsers";
public const string SCREEN_SAVER_DISABLED_ADMINISTRATORS = "ScreenSaverDisabledAdministrators";
public const string SCREEN_SAVER_DISABLED_USERS = "ScreenSaverDisabledUsers";
public const string DRIVE_SPACE_THRESHOLD_VALUE = "DriveSpaceThresholdValue";
public const string DRIVE_SPACE_THRESHOLD_VALUE = "DriveSpaceThresholdValue";
public string SettingsName { get; set; }
public int ServerId { get; set; }
@ -58,5 +58,21 @@ namespace WebsitePanel.EnterpriseServer.Base.RDS
settings = value;
}
}
public static List<KeyValuePair<string, string>> ScreenSaverTimeOuts
{
get
{
return new List<KeyValuePair<string, string>> {
new KeyValuePair<string, string>("", "None"),
new KeyValuePair<string, string>("10", "10"),
new KeyValuePair<string, string>("20", "20"),
new KeyValuePair<string, string>("30", "30"),
new KeyValuePair<string, string>("40", "40"),
new KeyValuePair<string, string>("50", "50"),
new KeyValuePair<string, string>("60", "60")
};
}
}
}
}

View file

@ -122,6 +122,49 @@ namespace WebsitePanel.Providers.EnterpriseStorage
return (SystemFile[]) items.ToArray(typeof (SystemFile));
}
public SystemFile[] GetFoldersWithoutFrsm(string organizationId, WebDavSetting[] settings)
{
ArrayList items = new ArrayList();
var webDavSettings = GetWebDavSettings(settings);
foreach (var setting in webDavSettings)
{
string rootPath = string.Format("{0}:\\{1}\\{2}", setting.LocationDrive, setting.HomeFolder,
organizationId);
if (Directory.Exists(rootPath))
{
DirectoryInfo root = new DirectoryInfo(rootPath);
IWebDav webdav = new Web.WebDav(setting);
// get directories
DirectoryInfo[] dirs = root.GetDirectories();
foreach (DirectoryInfo dir in dirs)
{
SystemFile folder = new SystemFile();
folder.Name = dir.Name;
folder.FullName = dir.FullName;
folder.IsDirectory = true;
if (folder.Size == -1)
{
folder.Size = FileUtils.BytesToMb(FileUtils.CalculateFolderSize(dir.FullName));
}
folder.Url = string.Format("https://{0}/{1}/{2}", setting.Domain, organizationId, dir.Name);
folder.Rules = webdav.GetFolderWebDavRules(organizationId, dir.Name);
items.Add(folder);
}
}
}
return (SystemFile[])items.ToArray(typeof(SystemFile));
}
public SystemFile GetFolder(string organizationId, string folderName, WebDavSetting setting)
{
var webDavSetting = GetWebDavSetting(setting);

View file

@ -11,10 +11,6 @@
//
// This source code was auto-generated by wsdl, Version=2.0.50727.3038.
//
using WebsitePanel.Providers.OS;
using WebsitePanel.Providers.Web;
namespace WebsitePanel.Providers.EnterpriseStorage {
using System.Xml.Serialization;
using System.Web.Services;
@ -22,6 +18,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage {
using System.Web.Services.Protocols;
using System;
using System.Diagnostics;
using WebsitePanel.Providers.OS;
using WebsitePanel.Providers.Web;
/// <remarks/>
@ -36,6 +34,8 @@ namespace WebsitePanel.Providers.EnterpriseStorage {
private System.Threading.SendOrPostCallback GetFoldersOperationCompleted;
private System.Threading.SendOrPostCallback GetFoldersWithoutFrsmOperationCompleted;
private System.Threading.SendOrPostCallback GetFolderOperationCompleted;
private System.Threading.SendOrPostCallback CreateFolderOperationCompleted;
@ -60,6 +60,9 @@ namespace WebsitePanel.Providers.EnterpriseStorage {
/// <remarks/>
public event GetFoldersCompletedEventHandler GetFoldersCompleted;
/// <remarks/>
public event GetFoldersWithoutFrsmCompletedEventHandler GetFoldersWithoutFrsmCompleted;
/// <remarks/>
public event GetFolderCompletedEventHandler GetFolderCompleted;
@ -129,6 +132,51 @@ namespace WebsitePanel.Providers.EnterpriseStorage {
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFoldersWithoutFrsm", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public SystemFile[] GetFoldersWithoutFrsm(string organizationId, WebDavSetting[] settings) {
object[] results = this.Invoke("GetFoldersWithoutFrsm", new object[] {
organizationId,
settings});
return ((SystemFile[])(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginGetFoldersWithoutFrsm(string organizationId, WebDavSetting[] settings, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("GetFoldersWithoutFrsm", new object[] {
organizationId,
settings}, callback, asyncState);
}
/// <remarks/>
public SystemFile[] EndGetFoldersWithoutFrsm(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((SystemFile[])(results[0]));
}
/// <remarks/>
public void GetFoldersWithoutFrsmAsync(string organizationId, WebDavSetting[] settings) {
this.GetFoldersWithoutFrsmAsync(organizationId, settings, null);
}
/// <remarks/>
public void GetFoldersWithoutFrsmAsync(string organizationId, WebDavSetting[] settings, object userState) {
if ((this.GetFoldersWithoutFrsmOperationCompleted == null)) {
this.GetFoldersWithoutFrsmOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetFoldersWithoutFrsmOperationCompleted);
}
this.InvokeAsync("GetFoldersWithoutFrsm", new object[] {
organizationId,
settings}, this.GetFoldersWithoutFrsmOperationCompleted, userState);
}
private void OnGetFoldersWithoutFrsmOperationCompleted(object arg) {
if ((this.GetFoldersWithoutFrsmCompleted != null)) {
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
this.GetFoldersWithoutFrsmCompleted(this, new GetFoldersWithoutFrsmCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
}
}
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetFolder", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
@ -544,6 +592,32 @@ namespace WebsitePanel.Providers.EnterpriseStorage {
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void GetFoldersWithoutFrsmCompletedEventHandler(object sender, GetFoldersWithoutFrsmCompletedEventArgs e);
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
public partial class GetFoldersWithoutFrsmCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
private object[] results;
internal GetFoldersWithoutFrsmCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
base(exception, cancelled, userState) {
this.results = results;
}
/// <remarks/>
public SystemFile[] Result {
get {
this.RaiseExceptionIfNecessary();
return ((SystemFile[])(this.results[0]));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
public delegate void GetFolderCompletedEventHandler(object sender, GetFolderCompletedEventArgs e);

View file

@ -75,6 +75,23 @@ namespace WebsitePanel.Server
}
}
[WebMethod, SoapHeader("settings")]
public SystemFile[] GetFoldersWithoutFrsm(string organizationId, WebDavSetting[] settings)
{
try
{
Log.WriteStart("'{0}' GetFolders", ProviderSettings.ProviderName);
SystemFile[] result = EnterpriseStorageProvider.GetFoldersWithoutFrsm(organizationId, settings);
Log.WriteEnd("'{0}' GetFolders", ProviderSettings.ProviderName);
return result;
}
catch (Exception ex)
{
Log.WriteError(String.Format("'{0}' GetFolders", ProviderSettings.ProviderName), ex);
throw;
}
}
[WebMethod, SoapHeader("settings")]
public SystemFile GetFolder(string organizationId, string folder, WebDavSetting setting)
{

View file

@ -145,7 +145,7 @@
<value>Disable Task Manager</value>
</data>
<data name="secTimeout.Text" xml:space="preserve">
<value>Lock Screen Timeout</value>
<value>Lock Screen Timeout (sec.)</value>
</data>
<data name="sekChangeDesktop.Text" xml:space="preserve">
<value>Changing Desktop Disabled</value>

View file

@ -29,7 +29,7 @@
<table>
<tr>
<td colspan="2">
<asp:TextBox ID="txtTimeout" runat="server" CssClass="TextBox200" ></asp:TextBox>
<asp:DropDownList ID="ddTimeout" runat="server" CssClass="NormalTextBox"/>
</td>
</tr>
<tr>
@ -145,8 +145,18 @@
<asp:Panel ID="driveSpacePanel" runat="server" Height="0" style="overflow:hidden;">
<table>
<tr>
<td colspan="2">
<asp:TextBox ID="txtThreshold" runat="server" CssClass="TextBox200" ></asp:TextBox>
<td colspan="2">
<asp:DropDownList ID="ddTreshold" runat="server" CssClass="NormalTextBox">
<asp:ListItem Value="" Text="None" />
<asp:ListItem Value="5" Text="5%" />
<asp:ListItem Value="10" Text="10%" />
<asp:ListItem Value="15" Text="15%" />
<asp:ListItem Value="20" Text="20%" />
<asp:ListItem Value="25" Text="25%" />
<asp:ListItem Value="30" Text="30%" />
<asp:ListItem Value="35" Text="35%" />
<asp:ListItem Value="40" Text="40%" />
</asp:DropDownList>
</td>
</tr>
</table>

View file

@ -15,6 +15,12 @@ namespace WebsitePanel.Portal.RDS
{
if (!IsPostBack)
{
var timeouts = RdsServerSettings.ScreenSaverTimeOuts;
ddTimeout.DataSource = timeouts;
ddTimeout.DataTextField = "Value";
ddTimeout.DataValueField = "Key";
ddTimeout.DataBind();
var collection = ES.Services.RDS.GetRdsCollection(PanelRequest.CollectionID);
litCollectionName.Text = collection.DisplayName;
BindSettings();
@ -39,7 +45,7 @@ namespace WebsitePanel.Portal.RDS
private void BindSettings(RdsServerSettings settings)
{
var setting = GetServerSetting(settings, RdsServerSettings.LOCK_SCREEN_TIMEOUT);
txtTimeout.Text = setting.PropertyValue;
ddTimeout.SelectedValue = setting.PropertyValue;
cbTimeoutAdministrators.Checked = setting.ApplyAdministrators;
cbTimeoutUsers.Checked = setting.ApplyUsers;
@ -72,7 +78,7 @@ namespace WebsitePanel.Portal.RDS
cbScreenSaverUsers.Checked = setting.ApplyUsers;
setting = GetServerSetting(settings, RdsServerSettings.DRIVE_SPACE_THRESHOLD);
txtThreshold.Text = setting.PropertyValue;
ddTreshold.SelectedValue = setting.PropertyValue;
}
private RdsServerSetting GetServerSetting(RdsServerSettings settings, string propertyName)
@ -87,7 +93,7 @@ namespace WebsitePanel.Portal.RDS
settings.Settings.Add(new RdsServerSetting
{
PropertyName = RdsServerSettings.LOCK_SCREEN_TIMEOUT,
PropertyValue = txtTimeout.Text,
PropertyValue = ddTimeout.SelectedValue,
ApplyAdministrators = cbTimeoutAdministrators.Checked,
ApplyUsers = cbTimeoutUsers.Checked
});
@ -151,7 +157,7 @@ namespace WebsitePanel.Portal.RDS
settings.Settings.Add(new RdsServerSetting
{
PropertyName = RdsServerSettings.DRIVE_SPACE_THRESHOLD,
PropertyValue = txtThreshold.Text,
PropertyValue = ddTreshold.SelectedValue,
ApplyAdministrators = true,
ApplyUsers = true
});
@ -161,7 +167,7 @@ namespace WebsitePanel.Portal.RDS
private void BindDefaultSettings(UserSettings settings)
{
txtTimeout.Text = settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_VALUE];
ddTimeout.SelectedValue = settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_VALUE];
cbTimeoutAdministrators.Checked = Convert.ToBoolean(settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_ADMINISTRATORS]);
cbTimeoutUsers.Checked = Convert.ToBoolean(settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_USERS]);
@ -186,7 +192,7 @@ namespace WebsitePanel.Portal.RDS
cbScreenSaverAdministrators.Checked = Convert.ToBoolean(settings[RdsServerSettings.SCREEN_SAVER_DISABLED_ADMINISTRATORS]);
cbScreenSaverUsers.Checked = Convert.ToBoolean(settings[RdsServerSettings.SCREEN_SAVER_DISABLED_USERS]);
txtThreshold.Text = settings[RdsServerSettings.DRIVE_SPACE_THRESHOLD_VALUE];
ddTreshold.SelectedValue = settings[RdsServerSettings.DRIVE_SPACE_THRESHOLD_VALUE];
}
private bool SaveServerSettings()

View file

@ -85,13 +85,13 @@ namespace WebsitePanel.Portal.RDS {
protected global::System.Web.UI.WebControls.Panel timeoutPanel;
/// <summary>
/// txtTimeout control.
/// ddTimeout 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.TextBox txtTimeout;
protected global::System.Web.UI.WebControls.DropDownList ddTimeout;
/// <summary>
/// cbTimeoutUsers control.
@ -382,13 +382,13 @@ namespace WebsitePanel.Portal.RDS {
protected global::System.Web.UI.WebControls.Panel driveSpacePanel;
/// <summary>
/// txtThreshold control.
/// ddTreshold 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.TextBox txtThreshold;
protected global::System.Web.UI.WebControls.DropDownList ddTreshold;
/// <summary>
/// buttonPanel control.

View file

@ -6,7 +6,7 @@
<table>
<tr>
<td colspan="2">
<asp:TextBox ID="txtTimeout" runat="server" CssClass="TextBox200" ></asp:TextBox>
<asp:DropDownList ID="ddTimeout" runat="server" CssClass="NormalTextBox"/>
</td>
</tr>
<tr>
@ -122,8 +122,18 @@
<asp:Panel ID="driveSpacePanel" runat="server" Height="0" style="overflow:hidden;">
<table>
<tr>
<td colspan="2">
<asp:TextBox ID="txtThreshold" runat="server" CssClass="TextBox200" ></asp:TextBox>
<td colspan="2">
<asp:DropDownList ID="ddTreshold" runat="server" CssClass="NormalTextBox">
<asp:ListItem Value="" Text="None" />
<asp:ListItem Value="5" Text="5%" />
<asp:ListItem Value="10" Text="10%" />
<asp:ListItem Value="15" Text="15%" />
<asp:ListItem Value="20" Text="20%" />
<asp:ListItem Value="25" Text="25%" />
<asp:ListItem Value="30" Text="30%" />
<asp:ListItem Value="35" Text="35%" />
<asp:ListItem Value="40" Text="40%" />
</asp:DropDownList>
</td>
</tr>
</table>

View file

@ -13,7 +13,13 @@ namespace WebsitePanel.Portal
{
public void BindSettings(UserSettings settings)
{
txtTimeout.Text = settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_VALUE];
var timeouts = RdsServerSettings.ScreenSaverTimeOuts;
ddTimeout.DataSource = timeouts;
ddTimeout.DataTextField = "Value";
ddTimeout.DataValueField = "Key";
ddTimeout.DataBind();
ddTimeout.SelectedValue = settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_VALUE];
cbTimeoutAdministrators.Checked = Convert.ToBoolean(settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_ADMINISTRATORS]);
cbTimeoutUsers.Checked = Convert.ToBoolean(settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_USERS]);
@ -38,12 +44,12 @@ namespace WebsitePanel.Portal
cbScreenSaverAdministrators.Checked = Convert.ToBoolean(settings[RdsServerSettings.SCREEN_SAVER_DISABLED_ADMINISTRATORS]);
cbScreenSaverUsers.Checked = Convert.ToBoolean(settings[RdsServerSettings.SCREEN_SAVER_DISABLED_USERS]);
txtThreshold.Text = settings[RdsServerSettings.DRIVE_SPACE_THRESHOLD_VALUE];
ddTreshold.SelectedValue = settings[RdsServerSettings.DRIVE_SPACE_THRESHOLD_VALUE];
}
public void SaveSettings(UserSettings settings)
{
settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_VALUE] = txtTimeout.Text;
settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_VALUE] = ddTimeout.SelectedValue;
settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_ADMINISTRATORS] = cbTimeoutAdministrators.Checked.ToString();
settings[RdsServerSettings.LOCK_SCREEN_TIMEOUT_USERS] = cbTimeoutUsers.Checked.ToString();
settings[RdsServerSettings.REMOVE_RUN_COMMAND_ADMINISTRATORS] = cbRunCommandAdministrators.Checked.ToString();
@ -60,7 +66,7 @@ namespace WebsitePanel.Portal
settings[RdsServerSettings.CHANGE_DESKTOP_DISABLED_USERS] = cbDesktopUsers.Checked.ToString();
settings[RdsServerSettings.SCREEN_SAVER_DISABLED_ADMINISTRATORS] = cbScreenSaverAdministrators.Checked.ToString();
settings[RdsServerSettings.SCREEN_SAVER_DISABLED_USERS] = cbScreenSaverUsers.Checked.ToString();
settings[RdsServerSettings.DRIVE_SPACE_THRESHOLD_VALUE] = txtThreshold.Text;
settings[RdsServerSettings.DRIVE_SPACE_THRESHOLD_VALUE] = ddTreshold.SelectedValue;
}
}
}

View file

@ -31,13 +31,13 @@ namespace WebsitePanel.Portal {
protected global::System.Web.UI.WebControls.Panel timeoutPanel;
/// <summary>
/// txtTimeout control.
/// ddTimeout 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.TextBox txtTimeout;
protected global::System.Web.UI.WebControls.DropDownList ddTimeout;
/// <summary>
/// cbTimeoutUsers control.
@ -328,12 +328,12 @@ namespace WebsitePanel.Portal {
protected global::System.Web.UI.WebControls.Panel driveSpacePanel;
/// <summary>
/// txtThreshold control.
/// ddTreshold 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.TextBox txtThreshold;
protected global::System.Web.UI.WebControls.DropDownList ddTreshold;
}
}