diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Packages/PackageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Packages/PackageController.cs
index 24b440d5..7e6a729a 100644
--- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Packages/PackageController.cs
+++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/Code/Packages/PackageController.cs
@@ -719,6 +719,15 @@ namespace WebsitePanel.EnterpriseServer
// check account
result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive
| DemandAccount.IsReseller);
+
+ if (result.Result < 0)
+ result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive
+ | DemandAccount.IsPlatformCSR);
+
+ if (result.Result < 0)
+ result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive
+ | DemandAccount.IsResellerCSR);
+
if (result.Result < 0) return result;
// load package
@@ -979,6 +988,15 @@ namespace WebsitePanel.EnterpriseServer
// check account
result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive
| DemandAccount.IsReseller);
+
+ if (result.Result < 0)
+ result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive
+ | DemandAccount.IsPlatformCSR);
+
+ if (result.Result < 0)
+ result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive
+ | DemandAccount.IsResellerCSR);
+
if (result.Result < 0) return result;
int addonId = 0;
@@ -1004,6 +1022,15 @@ namespace WebsitePanel.EnterpriseServer
// check account
result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive
| DemandAccount.IsReseller);
+
+ if (result.Result < 0)
+ result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive
+ | DemandAccount.IsPlatformCSR);
+
+ if (result.Result < 0)
+ result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive
+ | DemandAccount.IsResellerCSR);
+
if (result.Result < 0) return result;
result.ExceedingQuotas = DataProvider.UpdatePackageAddon(SecurityContext.User.UserId, addon.PackageAddonId,
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/SiteSettings.config b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/SiteSettings.config
index 0a99be01..36e107ed 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/SiteSettings.config
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/SiteSettings.config
@@ -37,4 +37,5 @@
Edit.ascx
false
+ true
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config
index 0dce0ea2..9143f106 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config
@@ -197,7 +197,7 @@
-
+
@@ -289,12 +289,12 @@
-
+
-
+
@@ -309,12 +309,12 @@
-
+
-
+
@@ -329,12 +329,12 @@
-
+
-
+
@@ -349,12 +349,12 @@
-
+
-
+
@@ -369,12 +369,12 @@
-
+
-
+
@@ -389,12 +389,12 @@
-
+
-
+
@@ -409,7 +409,7 @@
-
+
@@ -420,7 +420,7 @@
-
+
@@ -431,7 +431,7 @@
-
+
@@ -442,7 +442,7 @@
-
+
@@ -453,7 +453,7 @@
-
+
@@ -464,7 +464,7 @@
-
+
@@ -478,7 +478,7 @@
-
+
@@ -489,8 +489,8 @@
-
-
+
+
@@ -500,19 +500,19 @@
-
+
-
+
-
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx
index 45518d8f..89300fac 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_SharedResources.ascx.resx
@@ -975,6 +975,9 @@
You should have Reseller priviledges to perform this operation
+
+ You have not enough priviledges to perform this operation
+
Web Site does not exist
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs
index 7e6bc2fb..45099e45 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs
@@ -404,6 +404,21 @@ namespace WebsitePanel.Portal
return bResult;
}
+ public static bool GetHideDemoCheckbox()
+ {
+ bool bResult = false;
+
+ try
+ {
+ bResult = Convert.ToBoolean(PortalConfiguration.SiteSettings["HideDemoCheckbox"]);
+ }
+ catch (Exception)
+ {
+
+ }
+
+ return bResult;
+ }
private static int GetAuthenticationFormsTimeout()
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeDomainNames.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeDomainNames.ascx.cs
index 6a2caaed..f950f5b9 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeDomainNames.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/ExchangeServer/ExchangeDomainNames.ascx.cs
@@ -51,10 +51,11 @@ namespace WebsitePanel.Portal.ExchangeServer
private void BindStats()
{
// set quotas
- OrganizationStatistics stats =
- ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID);
+ OrganizationStatistics stats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID);
+ OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID);
domainsQuota.QuotaUsedValue = stats.CreatedDomains;
domainsQuota.QuotaValue = stats.AllocatedDomains;
+ if (stats.AllocatedDomains != -1) domainsQuota.QuotaAvailable = tenantStats.AllocatedDomains - tenantStats.CreatedDomains;
}
public string GetDomainRecordsEditUrl(string domainId)
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceEditDetails.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceEditDetails.ascx.cs
index a6aa62dc..6fdb3eeb 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceEditDetails.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceEditDetails.ascx.cs
@@ -40,9 +40,27 @@ namespace WebsitePanel.Portal
{
BindSpace();
BindSpaceAddons();
+ BindRoles(PanelSecurity.EffectiveUserId);
}
}
+ private void BindRoles(int userId)
+ {
+ // load selected user
+ UserInfo user = UsersHelper.GetUser(userId);
+
+ if (user != null)
+ {
+ if ((user.Role == UserRole.User) |
+ (PanelSecurity.LoggedUser.Role == UserRole.ResellerCSR) |
+ (PanelSecurity.LoggedUser.Role == UserRole.ResellerHelpdesk) |
+ (PanelSecurity.LoggedUser.Role == UserRole.PlatformCSR) |
+ (PanelSecurity.LoggedUser.Role == UserRole.PlatformHelpdesk))
+ this.rbPackageQuotas.Enabled = this.rbPlanQuotas.Enabled = false;
+ }
+ }
+
+
private void BindSpace()
{
PackageInfo package = ES.Services.Packages.GetPackage(PanelSecurity.PackageId);
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx
index fcb26d65..dd82036b 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx
@@ -19,7 +19,8 @@
+ QuotaValue='<%# Eval("QuotaValue") %>'
+ QuotaAvailable='<%# Eval("QuotaAvailable") %>'/>
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx.cs
index 036b2613..4abe68d6 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx.cs
@@ -54,6 +54,9 @@ namespace WebsitePanel.Portal
try
{
dsQuotas = ES.Services.Packages.GetPackageQuotas(packageId);
+ dsQuotas.Tables[1].Columns.Add("QuotaAvailable", typeof(int));
+ foreach (DataRow r in dsQuotas.Tables[1].Rows) r["QuotaAvailable"] = -1;
+
dlGroups.DataSource = dsQuotas.Tables[0];
dlGroups.DataBind();
}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx.designer.cs
index 4389d0db..78fb2cc0 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx.designer.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SpaceQuotasControl.ascx.designer.cs
@@ -1,10 +1,9 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:2.0.50727.3074
//
// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
+// the code is regenerated.
//
//------------------------------------------------------------------------------
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountEditDetails.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountEditDetails.ascx.cs
index 07c4bbb5..43906bb2 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountEditDetails.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserAccountEditDetails.ascx.cs
@@ -191,7 +191,8 @@ namespace WebsitePanel.Portal
{
if (user.Role == UserRole.Reseller || user.Role == UserRole.User)
role.Items.Remove("Administrator");
- if (user.Role == UserRole.User)
+ if ((user.Role == UserRole.User) |(PanelSecurity.LoggedUser.Role == UserRole.ResellerCSR) |
+ (PanelSecurity.LoggedUser.Role == UserRole.ResellerHelpdesk))
role.Items.Remove("Reseller");
}
}
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/Quota.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/Quota.ascx.cs
index a4e8fb7e..0931504d 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/Quota.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/Quota.ascx.cs
@@ -77,6 +77,7 @@ namespace WebsitePanel.Portal
quotaViewer.QuotaTypeId = quota.QuotaTypeId;
quotaViewer.QuotaUsedValue = quota.QuotaUsedValue;
quotaViewer.QuotaValue = quota.QuotaAllocatedValue;
+ quotaViewer.QuotaAvailable = -1;
//this.Visible = quota.QuotaAllocatedValue != 0;
}
else
@@ -85,6 +86,7 @@ namespace WebsitePanel.Portal
quotaViewer.QuotaTypeId = 1; // bool
quotaViewer.QuotaUsedValue = 0;
quotaViewer.QuotaValue = 0;
+ quotaViewer.QuotaAvailable = -1;
}
}
catch
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCreateSpace.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCreateSpace.ascx.cs
index 38026cac..cda7fe79 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCreateSpace.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCreateSpace.ascx.cs
@@ -74,6 +74,10 @@ namespace WebsitePanel.Portal
if (!createResources)
return;
+ if ((PanelSecurity.LoggedUser.Role == UserRole.ResellerCSR) |
+ (PanelSecurity.LoggedUser.Role == UserRole.ResellerHelpdesk))
+ this.chkCreateResources.Enabled = this.chkIntegratedOUProvisioning.Enabled = false;
+
bool systemEnabled = false;
bool webEnabled = false;
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCreateUserAccount.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCreateUserAccount.ascx.cs
index 229ae889..32eab9cb 100644
--- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCreateUserAccount.ascx.cs
+++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCreateUserAccount.ascx.cs
@@ -62,6 +62,7 @@ namespace WebsitePanel.Portal
bool accountSummaryEmailEnabled = !String.IsNullOrEmpty(settings["EnableLetter"]) && Utils.ParseBool(settings["EnableLetter"], false);
this.chkAccountLetter.Enabled = accountSummaryEmailEnabled;
this.pnlDisabledSummaryLetterHint.Visible = !accountSummaryEmailEnabled;
+ if (PortalUtils.GetHideDemoCheckbox()) this.lblDemoAccount.Visible = this.chkDemo.Checked = this.chkDemo.Visible = false;
//reseller.UserId = PanelSecurity.SelectedUserId;
userPassword.SetUserPolicy(PanelSecurity.SelectedUserId, UserSettings.WEBSITEPANEL_POLICY, "PasswordPolicy");
@@ -71,6 +72,10 @@ namespace WebsitePanel.Portal
{
if (user.Role == UserRole.User)
role.Items.Remove("Reseller");
+
+ if ((PanelSecurity.LoggedUser.Role == UserRole.ResellerCSR) |
+ (PanelSecurity.LoggedUser.Role == UserRole.ResellerHelpdesk))
+ role.Items.Remove("Reseller");
}
private void SaveUser()