More granularity to the available roles:

Available roles now in the platform: Administrator, Reseller, User, PlatformCSR,
PlatformHelpdesk, ResellerCSR, ResellerHelpdesk.

The platform CSR and Helpdesk are peer accounts on platform root level.

The names can be used within the  websitepanel_pages.config on Page and Module
level. On module level the roles can be specified on the viewRoles attribute and
readOnlyRoles attribute. When specifying the later all controls will be disabled
within the Modile, the viewRoles just show the page or not. When nothing
specified the page is just shown
This commit is contained in:
robvde 2012-07-11 18:18:13 +04:00
parent da0966657b
commit 37af5eceac
21 changed files with 423 additions and 127 deletions

View file

@ -62,6 +62,7 @@ namespace WebsitePanel.EnterpriseServer
public const int ERROR_USER_WRONG_USERNAME = -109; public const int ERROR_USER_WRONG_USERNAME = -109;
public const int ERROR_USER_WRONG_PASSWORD = -110; public const int ERROR_USER_WRONG_PASSWORD = -110;
public const int ERROR_INVALID_USER_NAME = -111; public const int ERROR_INVALID_USER_NAME = -111;
public const int ERROR_USER_ACCOUNT_NOT_ENOUGH_PERMISSIONS = -112;
#endregion #endregion
#region Packages #region Packages

View file

@ -38,6 +38,10 @@ namespace WebsitePanel.EnterpriseServer
NotDemo = 0x1, NotDemo = 0x1,
IsActive = 0x2, IsActive = 0x2,
IsAdmin = 0x4, IsAdmin = 0x4,
IsReseller = 0x8 IsReseller = 0x8,
IsPlatformCSR = 0x10,
IsPlatformHelpdesk = 0x20,
IsResellerCSR = 0x40,
IsResellerHelpdesk = 0x80,
} }
} }

View file

@ -37,6 +37,10 @@ namespace WebsitePanel.EnterpriseServer
{ {
Administrator = 1, Administrator = 1,
Reseller = 2, Reseller = 2,
User = 3 User = 3,
ResellerCSR = 4,
PlatformCSR = 5,
ResellerHelpdesk = 6,
PlatformHelpdesk = 7
} }
} }

View file

@ -45,6 +45,10 @@ namespace WebsitePanel.EnterpriseServer
public const string ROLE_ADMINISTRATOR = "Administrator"; public const string ROLE_ADMINISTRATOR = "Administrator";
public const string ROLE_RESELLER = "Reseller"; public const string ROLE_RESELLER = "Reseller";
public const string ROLE_USER = "User"; public const string ROLE_USER = "User";
public const string ROLE_PLATFORMCSR = "PlatformCSR";
public const string ROLE_PLATFORMHELPDESK = "PlatformHelpdesk";
public const string ROLE_RESELLERCSR = "ResellerCSR";
public const string ROLE_RESELLERHELPDESK = "ResellerHelpdesk";
public const string CONTEXT_USER_INFO = "CONTEXT_USER_INFO"; public const string CONTEXT_USER_INFO = "CONTEXT_USER_INFO";
@ -62,8 +66,26 @@ namespace WebsitePanel.EnterpriseServer
// set roles array // set roles array
List<string> roles = new List<string>(); List<string> roles = new List<string>();
roles.Add(SecurityContext.ROLE_USER); roles.Add(SecurityContext.ROLE_USER);
if (user.Role == UserRole.Reseller || user.Role == UserRole.Administrator ||
user.Role == UserRole.PlatformHelpdesk || user.Role == UserRole.ResellerHelpdesk)
roles.Add(SecurityContext.ROLE_RESELLERHELPDESK);
if (user.Role == UserRole.Reseller || user.Role == UserRole.Administrator ||
user.Role == UserRole.PlatformCSR || user.Role == UserRole.ResellerCSR)
roles.Add(SecurityContext.ROLE_RESELLERCSR);
if (user.Role == UserRole.Reseller || user.Role == UserRole.Administrator ||
user.Role == UserRole.PlatformHelpdesk)
roles.Add(SecurityContext.ROLE_PLATFORMHELPDESK);
if (user.Role == UserRole.Reseller || user.Role == UserRole.Administrator ||
user.Role == UserRole.PlatformCSR)
roles.Add(SecurityContext.ROLE_PLATFORMCSR);
if (user.Role == UserRole.Reseller || user.Role == UserRole.Administrator) if (user.Role == UserRole.Reseller || user.Role == UserRole.Administrator)
roles.Add(SecurityContext.ROLE_RESELLER); roles.Add(SecurityContext.ROLE_RESELLER);
if (user.Role == UserRole.Administrator) if (user.Role == UserRole.Administrator)
roles.Add(SecurityContext.ROLE_ADMINISTRATOR); roles.Add(SecurityContext.ROLE_ADMINISTRATOR);
@ -152,9 +174,40 @@ namespace WebsitePanel.EnterpriseServer
{ {
// should make a check if the account has Admin role // should make a check if the account has Admin role
if (!User.IsInRole(ROLE_RESELLER)) if (!User.IsInRole(ROLE_RESELLER))
return BusinessErrorCodes.ERROR_USER_ACCOUNT_SHOULD_BE_RESELLER; return BusinessErrorCodes.ERROR_USER_ACCOUNT_NOT_ENOUGH_PERMISSIONS;
} }
if ((demand & DemandAccount.IsPlatformCSR) == DemandAccount.IsPlatformCSR)
{
// should make a check if the account has Admin role
if (!User.IsInRole(ROLE_PLATFORMCSR))
return BusinessErrorCodes.ERROR_USER_ACCOUNT_NOT_ENOUGH_PERMISSIONS;
}
if ((demand & DemandAccount.IsPlatformHelpdesk) == DemandAccount.IsPlatformHelpdesk)
{
// should make a check if the account has Admin role
if (!User.IsInRole(ROLE_PLATFORMHELPDESK))
return BusinessErrorCodes.ERROR_USER_ACCOUNT_NOT_ENOUGH_PERMISSIONS;
}
if ((demand & DemandAccount.IsResellerHelpdesk) == DemandAccount.IsResellerHelpdesk)
{
// should make a check if the account has Admin role
if (!User.IsInRole(ROLE_RESELLERHELPDESK))
return BusinessErrorCodes.ERROR_USER_ACCOUNT_NOT_ENOUGH_PERMISSIONS;
}
if ((demand & DemandAccount.IsResellerCSR) == DemandAccount.IsResellerCSR)
{
// should make a check if the account has Admin role
if (!User.IsInRole(ROLE_RESELLERCSR))
return BusinessErrorCodes.ERROR_USER_ACCOUNT_NOT_ENOUGH_PERMISSIONS;
}
return 0; return 0;
} }

View file

@ -399,7 +399,7 @@ namespace WebsitePanel.EnterpriseServer
// check account // check account
result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive
| DemandAccount.IsReseller); | DemandAccount.IsResellerCSR);
if (result.Result < 0) return result; if (result.Result < 0) return result;
// check if domain exists // check if domain exists
@ -652,7 +652,7 @@ namespace WebsitePanel.EnterpriseServer
{ {
// check account // check account
result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive result.Result = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive
| DemandAccount.IsReseller); | DemandAccount.IsResellerCSR);
if (result.Result < 0) return result; if (result.Result < 0) return result;
int packageId = -1; int packageId = -1;

View file

@ -9,25 +9,25 @@
</Content> </Content>
</Page> </Page>
<Page name="LoggedUserDetails" roles="Administrator,Reseller,User" hidden="True" skin="Edit.ascx"> <Page name="LoggedUserDetails" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="Edit.ascx">
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="LoggedUserDetails" title="LoggedUserDetails" icon="user_write_48.png" container="Edit.ascx" /> <Module moduleDefinitionID="LoggedUserDetails" title="LoggedUserDetails" icon="user_write_48.png" container="Edit.ascx" />
</Content> </Content>
</Page> </Page>
<Page name="SearchUsers" roles="Administrator,Reseller,User" hidden="True" skin="Browse1.ascx"> <Page name="SearchUsers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="Browse1.ascx">
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="SearchUsers" title="SearchUsers" icon="user_zoom_48.png" container="Edit.ascx" /> <Module moduleDefinitionID="SearchUsers" title="SearchUsers" icon="user_zoom_48.png" container="Edit.ascx" />
</Content> </Content>
</Page> </Page>
<Page name="SearchSpaces" roles="Administrator,Reseller,User" hidden="True" skin="Browse1.ascx"> <Page name="SearchSpaces" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="Browse1.ascx">
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="SearchSpaces" title="SearchSpaces" icon="sphere_zoom_48.png" container="Edit.ascx" /> <Module moduleDefinitionID="SearchSpaces" title="SearchSpaces" icon="sphere_zoom_48.png" container="Edit.ascx" />
</Content> </Content>
</Page> </Page>
<Page name="Home" roles="Administrator,Reseller,User" skin="Browse3.ascx"> <Page name="Home" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" skin="Browse3.ascx">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx"> <Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/> <ModuleData ref="UserMenu"/>
@ -35,27 +35,19 @@
</Content> </Content>
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="UserCustomersSummary" title="UserCustomersSummary" container="Browse.ascx" icon="group_48.png"/> <Module moduleDefinitionID="UserCustomersSummary" title="UserCustomersSummary" container="Browse.ascx" icon="group_48.png"/>
<Module moduleDefinitionID="UserSpaces" title="UserSpaces" container="Browse.ascx" roles="Administrator,Reseller" icon="sphere_48.png"> <Module moduleDefinitionID="UserSpaces" title="UserSpaces" container="Browse.ascx" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" icon="sphere_48.png">
<ModuleData ref="SpaceIcons"/> <ModuleData ref="SpaceIcons"/>
</Module> </Module>
<Module moduleDefinitionID="UserNotes" title="UserNotes" container="Browse.ascx" roles="Administrator,Reseller" icon="notes_48.png" /> <Module moduleDefinitionID="UserNotes" title="UserNotes" container="Browse.ascx" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" icon="notes_48.png" />
<!--Module moduleDefinitionID="TextHTML" title="Test Text Module" container="Clear.ascx" roles="Administrator,Reseller">
<ModuleData>
<Content resourcekey="" template="true">
<![CDATA[<div class="Normal">Hello #user.FirstName#!</div>]]>
</Content>
</ModuleData>
</Module-->
</Content> </Content>
<Content id="RightPane"> <Content id="RightPane">
<Module moduleDefinitionID="UserDetails" title="UserDetails" container="Clear.ascx" /> <Module moduleDefinitionID="UserDetails" title="UserDetails" container="Clear.ascx" />
<Module moduleDefinitionID="UserResellerSettings" title="UserResellerSettings" container="Clear.ascx" roles="Administrator,Reseller" /> <Module moduleDefinitionID="UserResellerSettings" title="UserResellerSettings" container="Clear.ascx" roles="Administrator,Reseller" />
<!--Module moduleDefinitionID="UserTools" title="UserTools" container="Clear.ascx" /-->
</Content> </Content>
</Page> </Page>
<!-- User Account Menu Pages --> <!-- User Account Menu Pages -->
<Page name="UserCustomers" roles="Administrator,Reseller" hidden="True"> <Page name="UserCustomers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx"> <Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/> <ModuleData ref="UserMenu"/>
@ -66,62 +58,62 @@
</Content> </Content>
</Page> </Page>
<Page name="UserSpaces" roles="Administrator,Reseller,User" hidden="True"> <Page name="UserSpaces" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx" >
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="UserSpaces" title="UserSpaces" icon="sphere_48.png" readOnlyRoles="PlatformHelpdesk,ResellerHelpdesk,User" />
</Content>
</Page>
<Page name="UserPeers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx"> <Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/> <ModuleData ref="UserMenu"/>
</Module> </Module>
</Content> </Content>
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="UserSpaces" title="UserSpaces" icon="sphere_48.png" /> <Module moduleDefinitionID="UserPeers" title="UserPeers" icon="motion_blur_48.png" readOnlyRoles="PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk"/>
</Content> </Content>
</Page> </Page>
<Page name="UserPeers" roles="Administrator,Reseller,User" hidden="True"> <Page name="HostingPlans" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx"> <Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/> <ModuleData ref="UserMenu"/>
</Module> </Module>
</Content> </Content>
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="UserPeers" title="UserPeers" icon="motion_blur_48.png" /> <Module moduleDefinitionID="HostingPlans" title="HostingPlans" icon="inventory_48.png" readOnlyRoles="PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk"/>
</Content> </Content>
</Page> </Page>
<Page name="HostingPlans" roles="Administrator,Reseller" hidden="True"> <Page name="HostingAddons" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx"> <Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/> <ModuleData ref="UserMenu"/>
</Module> </Module>
</Content> </Content>
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="HostingPlans" title="HostingPlans" icon="inventory_48.png" /> <Module moduleDefinitionID="HostingAddons" title="HostingAddons" icon="inventory_add_48.png" readOnlyRoles="PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk"/>
</Content> </Content>
</Page> </Page>
<Page name="HostingAddons" roles="Administrator,Reseller" hidden="True"> <Page name="UserTasks" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx"> <Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/> <ModuleData ref="UserMenu"/>
</Module> </Module>
</Content> </Content>
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="HostingAddons" title="HostingAddons" icon="inventory_add_48.png" /> <Module moduleDefinitionID="Tasks" title="Tasks" icon="hourglass_48.png" readOnlyRoles="PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk"/>
</Content> </Content>
</Page> </Page>
<Page name="UserTasks" roles="Administrator,Reseller,User" hidden="True"> <Page name="AuditLog" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<Content id="ContentPane">
<Module moduleDefinitionID="Tasks" title="Tasks" icon="hourglass_48.png" />
</Content>
</Page>
<Page name="AuditLog" roles="Administrator,Reseller,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx"> <Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/> <ModuleData ref="UserMenu"/>
@ -133,7 +125,7 @@
</Page> </Page>
<!-- Space Home Page --> <!-- Space Home Page -->
<Page name="SpaceHome" roles="Administrator,Reseller,User" hidden="True" skin="Browse3.ascx"> <Page name="SpaceHome" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="Browse3.ascx">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -141,18 +133,18 @@
</Content> </Content>
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="SpaceQuotas" title="SpaceQuotas" container="Browse.ascx" icon="stadistics_48.png" /> <Module moduleDefinitionID="SpaceQuotas" title="SpaceQuotas" container="Browse.ascx" icon="stadistics_48.png" />
<Module moduleDefinitionID="SpaceNestedSpacesSummary" title="SpaceNestedSpacesSummary" container="Browse.ascx" roles="Administrator,Reseller" icon="sphere_down_48.png" /> <Module moduleDefinitionID="SpaceNestedSpacesSummary" title="SpaceNestedSpacesSummary" container="Browse.ascx" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" icon="sphere_down_48.png" />
<Module moduleDefinitionID="SpaceNotes" title="SpaceNotes" container="Browse.ascx" roles="Administrator,Reseller" icon="notes_48.png" /> <Module moduleDefinitionID="SpaceNotes" title="SpaceNotes" container="Browse.ascx" roles="Administrator,Reseller" icon="notes_48.png" />
</Content> </Content>
<Content id="RightPane"> <Content id="RightPane">
<Module moduleDefinitionID="SpaceDetails" title="SpaceDetails" container="Clear.ascx" /> <Module moduleDefinitionID="SpaceDetails" title="SpaceDetails" container="Clear.ascx" />
<Module moduleDefinitionID="SpaceSettings" title="SpaceSettings" container="Clear.ascx" roles="Administrator,Reseller" /> <Module moduleDefinitionID="SpaceSettings" title="SpaceSettings" container="Clear.ascx" roles="Administrator,Reseller"/>
<Module moduleDefinitionID="SpaceTools" title="SpaceTools" container="Clear.ascx" /> <Module moduleDefinitionID="SpaceTools" title="SpaceTools" container="Clear.ascx" />
</Content> </Content>
</Page> </Page>
<!-- Nested Spaces Page --> <!-- Nested Spaces Page -->
<Page name="NestedSpaces" roles="Administrator,Reseller,User" hidden="True"> <Page name="NestedSpaces" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -165,7 +157,7 @@
<Page name="SpaceOrganizationHostedSharePoint" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceOrganizationHostedSharePoint" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="HostedSolutionMenu" title="HostedSolutionMenu" container="Clear.ascx"> <Module moduleDefinitionID="HostedSolutionMenu" title="HostedSolutionMenu" container="Clear.ascx">
<ModuleData ref="HostedSolutionMenu"/> <ModuleData ref="HostedSolutionMenu"/>
@ -176,18 +168,18 @@
</Content> </Content>
</Page> </Page>
<Page name="SpaceDomains" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceDomains" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
</Module> </Module>
</Content> </Content>
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="Domains" title="Domains" icon="world_48.png" /> <Module moduleDefinitionID="Domains" title="Domains" icon="world_48.png" readOnlyRoles="PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User"/>
</Content> </Content>
</Page> </Page>
<Page name="SpaceWeb" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceWeb" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -198,7 +190,7 @@
</Content> </Content>
</Page> </Page>
<Page name="SpaceWebSites" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceWebSites" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -209,7 +201,7 @@
</Content> </Content>
</Page> </Page>
<Page name="SpaceWebIPAddresses" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceWebIPAddresses" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -220,7 +212,7 @@
</Content> </Content>
</Page> </Page>
<Page name="SpaceFtpAccounts" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceFtpAccounts" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -230,8 +222,10 @@
<Module moduleDefinitionID="FtpAccounts" title="FtpAccounts" icon="folder_up_48.png" /> <Module moduleDefinitionID="FtpAccounts" title="FtpAccounts" icon="folder_up_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="SpaceMail" roles="*" hidden="True"/>
<Page name="SpaceMailAccounts" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceMail" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True"/>
<Page name="SpaceMailAccounts" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -241,7 +235,8 @@
<Module moduleDefinitionID="MailAccounts" title="MailAccounts" icon="accounting_mail_48.png" /> <Module moduleDefinitionID="MailAccounts" title="MailAccounts" icon="accounting_mail_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="SpaceMailForwardings" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceMailForwardings" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -251,7 +246,8 @@
<Module moduleDefinitionID="MailForwardings" title="MailForwardings" icon="safe-mail_next_48.png" /> <Module moduleDefinitionID="MailForwardings" title="MailForwardings" icon="safe-mail_next_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="SpaceMailGroups" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceMailGroups" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -261,7 +257,8 @@
<Module moduleDefinitionID="MailGroups" title="MailGroups" icon="contacts_mail_48.png" /> <Module moduleDefinitionID="MailGroups" title="MailGroups" icon="contacts_mail_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="SpaceMailLists" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceMailLists" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -271,7 +268,8 @@
<Module moduleDefinitionID="MailLists" title="MailLists" icon="discussion_group_48.png" /> <Module moduleDefinitionID="MailLists" title="MailLists" icon="discussion_group_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="SpaceMailDomains" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceMailDomains" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -281,8 +279,10 @@
<Module moduleDefinitionID="MailDomains" title="MailDomains" icon="web_mail_48.png" /> <Module moduleDefinitionID="MailDomains" title="MailDomains" icon="web_mail_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="SpaceDatabases" roles="*" hidden="True"/>
<Page name="SpaceMsSql2000" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceDatabases" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True"/>
<Page name="SpaceMsSql2000" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -301,7 +301,8 @@
</Module> </Module>
</Content> </Content>
</Page> </Page>
<Page name="SpaceMsSql2005" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceMsSql2005" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -321,7 +322,7 @@
</Content> </Content>
</Page> </Page>
<Page name="SpaceMsSql2008" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceMsSql2008" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -341,7 +342,7 @@
</Content> </Content>
</Page> </Page>
<Page name="SpaceMsSql2012" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceMsSql2012" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -361,7 +362,7 @@
</Content> </Content>
</Page> </Page>
<Page name="SpaceMySql4" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceMySql4" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -380,7 +381,8 @@
</Module> </Module>
</Content> </Content>
</Page> </Page>
<Page name="SpaceMySql5" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceMySql5" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -399,7 +401,8 @@
</Module> </Module>
</Content> </Content>
</Page> </Page>
<Page name="SpaceSharedSSL" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceSharedSSL" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -409,7 +412,8 @@
<Module moduleDefinitionID="SharedSSL" title="SharedSSL" icon="world_lock_48.png" /> <Module moduleDefinitionID="SharedSSL" title="SharedSSL" icon="world_lock_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="SpaceAdvancedStatistics" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceAdvancedStatistics" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -419,7 +423,8 @@
<Module moduleDefinitionID="AdvancedStatistics" title="AdvancedStatistics" icon="stadistics_48.png" /> <Module moduleDefinitionID="AdvancedStatistics" title="AdvancedStatistics" icon="stadistics_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="SpaceOdbc" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceOdbc" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -429,7 +434,8 @@
<Module moduleDefinitionID="ODBC" title="ODBC" icon="export_db_back_48.png" /> <Module moduleDefinitionID="ODBC" title="ODBC" icon="export_db_back_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="SpaceScheduledTasks" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceScheduledTasks" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -439,7 +445,8 @@
<Module moduleDefinitionID="ScheduledTasks" title="ScheduledTasks" icon="calendar_month_2_clock_48.png" /> <Module moduleDefinitionID="ScheduledTasks" title="ScheduledTasks" icon="calendar_month_2_clock_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="SpaceFileManager" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceFileManager" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -450,7 +457,7 @@
</Content> </Content>
</Page> </Page>
<Page name="SpaceWebApplicationsGallery" roles="Administrator,Reseller,User" hidden="True"> <Page name="SpaceWebApplicationsGallery" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -462,8 +469,9 @@
</Page> </Page>
<Page name="SpaceSharePoint" roles="Administrator,Reseller,User" hidden="True"/> <Page name="SpaceSharePoint" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True"/>
<Page name="SpaceSharePointSites" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceSharePointSites" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="HostedSolutionMenu" title="HostedSolutionMenu" container="Clear.ascx"> <Module moduleDefinitionID="HostedSolutionMenu" title="HostedSolutionMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -473,7 +481,8 @@
<Module moduleDefinitionID="SharePointSites" title="SharePointSites" icon="colors_48.png" /> <Module moduleDefinitionID="SharePointSites" title="SharePointSites" icon="colors_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="SpaceSharePointUsers" roles="Administrator,Reseller,User" hidden="True">
<Page name="SpaceSharePointUsers" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx"> <Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/> <ModuleData ref="SpaceMenu"/>
@ -485,47 +494,47 @@
</Content> </Content>
</Page> </Page>
<Page name="Backup" roles="Administrator,Reseller,User" hidden="True"> <Page name="Backup" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<!-- Do not remove this stub page --> <!-- Do not remove this stub page -->
</Page> </Page>
<Page name="SpaceExchangeServer" roles="Administrator,Reseller,User" hidden="True" skin="Exchange.ascx" adminskin="Exchange.ascx"> <Page name="SpaceExchangeServer" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="Exchange.ascx" adminskin="Exchange.ascx">
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="ExchangeServer" title="ExchangeServer" icon="" container="Exchange.ascx" admincontainer="Exchange.ascx"/> <Module moduleDefinitionID="ExchangeServer" title="ExchangeServer" icon="" container="Exchange.ascx" admincontainer="Exchange.ascx" readOnlyRoles="ResellerCSR"/>
</Content> </Content>
</Page> </Page>
<Page name="SpaceVPS" roles="Administrator,Reseller,User" hidden="True" skin="VPS.ascx" adminskin="VPS.ascx"> <Page name="SpaceVPS" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="VPS.ascx" adminskin="VPS.ascx">
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="VPS" title="VirtualPrivateServers" icon="" container="VPS.ascx" admincontainer="VPS.ascx"/> <Module moduleDefinitionID="VPS" title="VirtualPrivateServers" icon="" container="VPS.ascx" admincontainer="VPS.ascx"/>
</Content> </Content>
</Page> </Page>
<Page name="SpaceVPSForPC" roles="Administrator,Reseller,User" hidden="True" skin="VPS.ascx" adminskin="VPS.ascx"> <Page name="SpaceVPSForPC" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="VPS.ascx" adminskin="VPS.ascx">
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="VPSForPC" title="VirtualPrivateServersForPrivateCloud" icon="" container="VPSForPC.ascx" admincontainer="VPSForPC.ascx"/> <Module moduleDefinitionID="VPSForPC" title="VirtualPrivateServersForPrivateCloud" icon="" container="VPSForPC.ascx" admincontainer="VPSForPC.ascx"/>
</Content> </Content>
</Page> </Page>
<Page name="OverusageReport" roles="Administrator,Reseller" hidden="True" skin="Browse1.ascx"> <Page name="OverusageReport" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" hidden="True" skin="Browse1.ascx">
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="OverusageReport" title="OverusageReport" container="Edit.ascx" icon="table_zoom_48.png" /> <Module moduleDefinitionID="OverusageReport" title="OverusageReport" container="Edit.ascx" icon="table_zoom_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="Reporting" roles="Administrator,Reseller,User" enabled="false"> <Page name="Reporting" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" enabled="false">
<Content id="LeftPane"> <Content id="LeftPane">
<Module moduleDefinitionID="User" title="User" container="Clear.ascx" /> <Module moduleDefinitionID="User" title="User" container="Clear.ascx" />
<Module moduleDefinitionID="HostingSpace" title="HostingSpace" container="Clear.ascx" /> <Module moduleDefinitionID="HostingSpace" title="HostingSpace" container="Clear.ascx" />
</Content> </Content>
<Pages> <Pages>
<Page name="DiskspaceReport" roles="Administrator,Reseller,User" skin="Browse1.ascx"> <Page name="DiskspaceReport" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" skin="Browse1.ascx">
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="DiskspaceReport" title="DiskspaceReport" container="Edit.ascx" icon="table_zoom_48.png" /> <Module moduleDefinitionID="DiskspaceReport" title="DiskspaceReport" container="Edit.ascx" icon="table_zoom_48.png" />
</Content> </Content>
</Page> </Page>
<Page name="BandwidthReport" roles="Administrator,Reseller,User" skin="Browse1.ascx"> <Page name="BandwidthReport" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" skin="Browse1.ascx">
<Content id="ContentPane"> <Content id="ContentPane">
<Module moduleDefinitionID="BandwidthReport" title="BandwidthReport" container="Edit.ascx" icon="table_zoom_48.png" /> <Module moduleDefinitionID="BandwidthReport" title="BandwidthReport" container="Edit.ascx" icon="table_zoom_48.png" />
</Content> </Content>

View file

@ -44,6 +44,7 @@ namespace WebsitePanel.WebPortal
private string adminContainerSrc; private string adminContainerSrc;
private List<string> viewRoles = new List<string>(); private List<string> viewRoles = new List<string>();
private List<string> editRoles = new List<string>(); private List<string> editRoles = new List<string>();
private List<string> readOnlyRoles = new List<string>();
private Hashtable settings = new Hashtable(); private Hashtable settings = new Hashtable();
private XmlDocument xmlModuleData = new XmlDocument(); private XmlDocument xmlModuleData = new XmlDocument();
private PortalPage page; private PortalPage page;
@ -82,6 +83,12 @@ namespace WebsitePanel.WebPortal
get { return this.editRoles; } get { return this.editRoles; }
} }
public List<string> ReadOnlyRoles
{
get { return this.readOnlyRoles; }
}
public Hashtable Settings public Hashtable Settings
{ {
get { return this.settings; } get { return this.settings; }

View file

@ -343,6 +343,10 @@ namespace WebsitePanel.WebPortal
else else
module.ViewRoles.AddRange(xmlModule.Attributes["viewRoles"].Value.Split(ROLES_DELIMITERS.ToCharArray())); module.ViewRoles.AddRange(xmlModule.Attributes["viewRoles"].Value.Split(ROLES_DELIMITERS.ToCharArray()));
if (xmlModule.Attributes["readOnlyRoles"] != null)
module.ReadOnlyRoles.AddRange(xmlModule.Attributes["readOnlyRoles"].Value.Split(ROLES_DELIMITERS.ToCharArray()));
if (xmlModule.Attributes["editRoles"] == null) if (xmlModule.Attributes["editRoles"] == null)
module.EditRoles.Add("*"); module.EditRoles.Add("*");
else else

View file

@ -112,10 +112,10 @@
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="btnAddItem.Text" xml:space="preserve"> <data name="btnAddItem.Text" xml:space="preserve">
<value>Create Peer Account</value> <value>Create Peer Account</value>
@ -135,4 +135,7 @@
<data name="usersListUsername.Header" xml:space="preserve"> <data name="usersListUsername.Header" xml:space="preserve">
<value>Username</value> <value>Username</value>
</data> </data>
<data name="usersListRole.Header" xml:space="preserve">
<value>Role</value>
</data>
</root> </root>

View file

@ -112,10 +112,10 @@
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<data name="btnCancel.Text" xml:space="preserve"> <data name="btnCancel.Text" xml:space="preserve">
<value>Cancel</value> <value>Cancel</value>
@ -180,4 +180,7 @@
<data name="btnDelete.OnClientClick" xml:space="preserve"> <data name="btnDelete.OnClientClick" xml:space="preserve">
<value>return confirm('Are you sure you want to delete this peer account?');</value> <value>return confirm('Are you sure you want to delete this peer account?');</value>
</data> </data>
<data name="lblRole.Text" xml:space="preserve">
<value>Role</value>
</data>
</root> </root>

View file

@ -326,6 +326,9 @@ namespace WebsitePanel.Portal
// localize grid viewes // localize grid viewes
LocalizeGridViews(this); LocalizeGridViews(this);
//if (PanelSecurity.LoggedUser != null)
//if (PanelSecurity.LoggedUser.Role == UserRole.CSR) DisableControls = false;
// call base handler // call base handler
base.OnLoad(e); base.OnLoad(e);
} }
@ -335,6 +338,43 @@ namespace WebsitePanel.Portal
// localize all controls // localize all controls
LocalizeModuleControls(this); LocalizeModuleControls(this);
string role = string.Empty;
if (PanelSecurity.LoggedUser != null)
{
switch (PanelSecurity.LoggedUser.Role)
{
case UserRole.Administrator:
role = "Administrator";
break;
case UserRole.Reseller:
role = "Reseller";
break;
case UserRole.User:
role = "User";
break;
case UserRole.PlatformCSR:
role = "PlatformCSR";
break;
case UserRole.PlatformHelpdesk:
role = "PlatformHelpdesk";
break;
case UserRole.ResellerCSR:
role = "ResellerCSR";
break;
case UserRole.ResellerHelpdesk:
role = "ResellerHelpdesk";
break;
}
}
if (Module != null)
{
if (Module.ReadOnlyRoles != null)
if (Module.ReadOnlyRoles.Contains(role))
DisableControls = true;
}
// disable controls (if required) // disable controls (if required)
if (DisableControls) if (DisableControls)
DisableFormControls(this, ExcludeDisableControls.ToArray()); DisableFormControls(this, ExcludeDisableControls.ToArray());

View file

@ -46,6 +46,7 @@ namespace WebsitePanel.Portal
private const string DEFAULT_ADMIN_ROLE = "WebsitePanel Administrators"; private const string DEFAULT_ADMIN_ROLE = "WebsitePanel Administrators";
private const string DEFAULT_RESELLER_ROLE = "WebsitePanel Resellers"; private const string DEFAULT_RESELLER_ROLE = "WebsitePanel Resellers";
private const string DEFAULT_CSR_ROLE = "CSR";
private const string DEFAULT_USER_ROLE = "WebsitePanel Users"; private const string DEFAULT_USER_ROLE = "WebsitePanel Users";
#region Users ODS Methods (for Selected User) #region Users ODS Methods (for Selected User)

View file

@ -10,11 +10,16 @@
<Columns> <Columns>
<asp:TemplateField SortExpression="Username" HeaderText="usersListUsername"> <asp:TemplateField SortExpression="Username" HeaderText="usersListUsername">
<ItemTemplate> <ItemTemplate>
<asp:hyperlink id=lnkEdit runat="server" NavigateUrl='<%# EditUrl("PeerID", Eval("UserID").ToString(), "edit_peer", "UserID=" + PanelSecurity.SelectedUserId.ToString()) %>'> <asp:hyperlink id="lnkEdit" runat="server" NavigateUrl='<%# EditUrl("PeerID", Eval("UserID").ToString(), "edit_peer", "UserID=" + PanelSecurity.SelectedUserId.ToString()) %>'>
<%# Eval("Username") %> <%# Eval("Username") %>
</asp:hyperlink> </asp:hyperlink>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="usersListRole" SortExpression="RoleID">
<ItemTemplate>
<asp:Label runat="server" ID="lblRole" Text='<%# GetRoleName((int) Eval("RoleID")) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="FullName" SortExpression="FullName" HeaderText="usersListName"> <asp:BoundField DataField="FullName" SortExpression="FullName" HeaderText="usersListName">
<ItemStyle Wrap="False" Width="50%" /> <ItemStyle Wrap="False" Width="50%" />
</asp:BoundField> </asp:BoundField>

View file

@ -37,6 +37,8 @@ using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls; using System.Web.UI.HtmlControls;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal namespace WebsitePanel.Portal
{ {
public partial class Peers : WebsitePanelModuleBase public partial class Peers : WebsitePanelModuleBase
@ -45,7 +47,6 @@ namespace WebsitePanel.Portal
{ {
// set display preferences // set display preferences
usersList.PageSize = UsersHelper.GetDisplayItemsPerPage(); usersList.PageSize = UsersHelper.GetDisplayItemsPerPage();
} }
protected void odsUserPeers_Selected(object sender, ObjectDataSourceStatusEventArgs e) protected void odsUserPeers_Selected(object sender, ObjectDataSourceStatusEventArgs e)
@ -62,5 +63,28 @@ namespace WebsitePanel.Portal
{ {
Response.Redirect(EditUrl("UserID", PanelSecurity.SelectedUserId.ToString(), "edit_peer")); Response.Redirect(EditUrl("UserID", PanelSecurity.SelectedUserId.ToString(), "edit_peer"));
} }
protected string GetRoleName(int roleID)
{
switch (roleID)
{
case 1:
return "Administrator";
case 2:
return "Reseller";
case 3:
return "User";
case 4:
return "CSR";
case 5:
return "CSR";
case 6:
return "Helpdesk";
case 7:
return "Helpdesk";
default:
return "Unknown";
}
}
} }
} }

View file

@ -1,7 +1,6 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.
// Runtime Version:2.0.50727.42
// //
// Changes to this file may cause incorrect behavior and will be lost if // Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. // the code is regenerated.
@ -10,9 +9,34 @@
namespace WebsitePanel.Portal { namespace WebsitePanel.Portal {
public partial class Peers { public partial class Peers {
protected System.Web.UI.WebControls.Button btnAddItem;
protected System.Web.UI.WebControls.GridView usersList; /// <summary>
protected System.Web.UI.WebControls.ObjectDataSource odsUserPeers; /// btnAddItem 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.Button btnAddItem;
/// <summary>
/// usersList 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.GridView usersList;
/// <summary>
/// odsUserPeers 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.ObjectDataSource odsUserPeers;
} }
} }

View file

@ -44,6 +44,15 @@
<tr> <tr>
<td class="Normal">&nbsp;</td> <td class="Normal">&nbsp;</td>
</tr> </tr>
<tr id="rowRole" runat="server">
<td class="SubHead" valign="top">
<asp:Label ID="lblRole" runat="server" meta:resourcekey="lblRole" Text="Role:"></asp:Label>
</td>
<td class="NormalBold" valign="top">
<asp:DropDownList id="role" runat="server" resourcekey="role" AutoPostBack="true" CssClass="NormalTextBox">
</asp:DropDownList>
</td>
</tr>
<tr> <tr>
<td class="SubHead"> <td class="SubHead">
<asp:Label ID="lblFirstName" runat="server" meta:resourcekey="lblFirstName" Text="First name:"></asp:Label> <asp:Label ID="lblFirstName" runat="server" meta:resourcekey="lblFirstName" Text="First name:"></asp:Label>
@ -69,8 +78,7 @@
<asp:Label ID="lblEmail" runat="server" meta:resourcekey="lblEmail" Text="E-mail:"></asp:Label> <asp:Label ID="lblEmail" runat="server" meta:resourcekey="lblEmail" Text="E-mail:"></asp:Label>
</td> </td>
<td class="Normal"> <td class="Normal">
<uc2:EmailControl id="txtEmail" runat="server"> <uc2:EmailControl id="txtEmail" runat="server"></uc2:EmailControl>
</uc2:EmailControl>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -78,8 +86,7 @@
<asp:Label ID="lblSecondaryEmail" runat="server" meta:resourcekey="lblSecondaryEmail" Text="Secondary e-mail:"></asp:Label> <asp:Label ID="lblSecondaryEmail" runat="server" meta:resourcekey="lblSecondaryEmail" Text="Secondary e-mail:"></asp:Label>
</td> </td>
<td class="Normal"> <td class="Normal">
<uc2:EmailControl id="txtSecondaryEmail" runat="server" RequiredEnabled="false"> <uc2:EmailControl id="txtSecondaryEmail" runat="server" RequiredEnabled="false"></uc2:EmailControl>
</uc2:EmailControl>
</td> </td>
</tr> </tr>
<tr> <tr>
@ -105,8 +112,7 @@
</table> </table>
<wsp:CollapsiblePanel id="headContact" runat="server" IsCollapsed="true" <wsp:CollapsiblePanel id="headContact" runat="server" IsCollapsed="true"
TargetControlID="pnlContact" meta:resourcekey="secContact" Text="Contact"> TargetControlID="pnlContact" meta:resourcekey="secContact" Text="Contact"></wsp:CollapsiblePanel>
</wsp:CollapsiblePanel>
<asp:Panel ID="pnlContact" runat="server" Height="0" style="overflow:hidden;"> <asp:Panel ID="pnlContact" runat="server" Height="0" style="overflow:hidden;">
<dnc:usercontact id="contact" runat="server"></dnc:usercontact> <dnc:usercontact id="contact" runat="server"></dnc:usercontact>
</asp:Panel> </asp:Panel>

View file

@ -1,4 +1,4 @@
// Copyright (c) 2012, Outercurve Foundation. // Copyright (c) 2011, Outercurve Foundation.
// All rights reserved. // All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without modification, // Redistribution and use in source and binary forms, with or without modification,
@ -60,6 +60,23 @@ namespace WebsitePanel.Portal
{ {
userPassword.SetUserPolicy(PanelSecurity.SelectedUserId, UserSettings.WEBSITEPANEL_POLICY, "PasswordPolicy"); userPassword.SetUserPolicy(PanelSecurity.SelectedUserId, UserSettings.WEBSITEPANEL_POLICY, "PasswordPolicy");
userPassword.ValidationGroup = ""; userPassword.ValidationGroup = "";
if (PanelSecurity.SelectedUser.RoleId == (int)UserRole.Administrator)
{
role.Items.Add("CSR");
role.Items.Add("Helpdesk");
role.Items.Add("Administrator");
}
else
if (PanelSecurity.SelectedUser.RoleId == (int)UserRole.Reseller)
{
role.Items.Add("CSR");
role.Items.Add("Helpdesk");
role.Items.Add("Reseller");
}
else
rowRole.Visible = false;
return; // it's a new user return; // it's a new user
} }
@ -69,6 +86,26 @@ namespace WebsitePanel.Portal
UserInfo user = UsersHelper.GetUser(PanelRequest.PeerID); UserInfo user = UsersHelper.GetUser(PanelRequest.PeerID);
if (user != null) if (user != null)
{ {
if ((PanelSecurity.SelectedUser.RoleId == (int)UserRole.Administrator)|
(PanelSecurity.SelectedUser.RoleId == (int)UserRole.PlatformCSR)|
(PanelSecurity.SelectedUser.RoleId == (int)UserRole.PlatformHelpdesk))
{
role.Items.Add("CSR");
role.Items.Add("Helpdesk");
role.Items.Add("Administrator");
}
else
if ((PanelSecurity.SelectedUser.RoleId == (int)UserRole.Reseller)|
(PanelSecurity.SelectedUser.RoleId == (int)UserRole.ResellerCSR)|
(PanelSecurity.SelectedUser.RoleId == (int)UserRole.ResellerHelpdesk))
{
role.Items.Add("CSR");
role.Items.Add("Helpdesk");
role.Items.Add("Reseller");
}
else
rowRole.Visible = false;
userPassword.SetUserPolicy(PanelSecurity.SelectedUserId, UserSettings.WEBSITEPANEL_POLICY, "PasswordPolicy"); userPassword.SetUserPolicy(PanelSecurity.SelectedUserId, UserSettings.WEBSITEPANEL_POLICY, "PasswordPolicy");
userPassword.ValidationGroup = "NewPassword"; userPassword.ValidationGroup = "NewPassword";
@ -82,6 +119,13 @@ namespace WebsitePanel.Portal
lblUsername.Text = user.Username; lblUsername.Text = user.Username;
chkDemo.Checked = user.IsDemo; chkDemo.Checked = user.IsDemo;
if (user.RoleId == (int)UserRole.ResellerCSR) role.SelectedIndex = 0;
if (user.RoleId == (int)UserRole.PlatformCSR) role.SelectedIndex = 0;
if (user.RoleId == (int)UserRole.PlatformHelpdesk) role.SelectedIndex = 1;
if (user.RoleId == (int)UserRole.ResellerHelpdesk) role.SelectedIndex = 1;
if (user.RoleId == (int)UserRole.Reseller) role.SelectedIndex = 2;
if (user.RoleId == (int)UserRole.Administrator) role.SelectedIndex = 2;
// contact info // contact info
contact.CompanyName = user.CompanyName; contact.CompanyName = user.CompanyName;
contact.Address = user.Address; contact.Address = user.Address;
@ -111,8 +155,31 @@ namespace WebsitePanel.Portal
// gather data from form // gather data from form
UserInfo user = new UserInfo(); UserInfo user = new UserInfo();
user.UserId = PanelRequest.PeerID; user.UserId = PanelRequest.PeerID;
if (PanelSecurity.SelectedUser.RoleId == (int)UserRole.Administrator)
{
if (role.SelectedIndex == 0)
user.RoleId = (int)UserRole.PlatformCSR;
if (role.SelectedIndex == 1)
user.RoleId = (int)UserRole.PlatformHelpdesk;
if (role.SelectedIndex == 2)
user.RoleId = (int)UserRole.Administrator;
}
else
if (PanelSecurity.SelectedUser.RoleId == (int)UserRole.Reseller)
{
if (role.SelectedIndex == 0)
user.RoleId = (int)UserRole.ResellerCSR;
if (role.SelectedIndex == 1)
user.RoleId = (int)UserRole.ResellerHelpdesk;
if (role.SelectedIndex == 2)
user.RoleId = (int)UserRole.Reseller;
}
else
user.RoleId = owner.RoleId; user.RoleId = owner.RoleId;
user.StatusId = owner.StatusId; user.StatusId = owner.StatusId;
user.OwnerId = owner.UserId; user.OwnerId = owner.UserId;
user.IsDemo = owner.IsDemo; user.IsDemo = owner.IsDemo;
user.IsPeer = true; user.IsPeer = true;

View file

@ -1,7 +1,6 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // 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 // Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. // the code is regenerated.
@ -139,6 +138,33 @@ namespace WebsitePanel.Portal {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Button cmdChangePassword; protected global::System.Web.UI.WebControls.Button cmdChangePassword;
/// <summary>
/// rowRole control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlTableRow rowRole;
/// <summary>
/// lblRole 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.Label lblRole;
/// <summary>
/// role 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.DropDownList role;
/// <summary> /// <summary>
/// lblFirstName control. /// lblFirstName control.
/// </summary> /// </summary>

View file

@ -88,8 +88,10 @@ namespace WebsitePanel.Portal
lnkEditSpaceDetails.Visible = (PanelSecurity.PackageId > 1 && !ownSpace); lnkEditSpaceDetails.Visible = (PanelSecurity.PackageId > 1 && !ownSpace);
lnkDelete.NavigateUrl = EditUrl(PortalUtils.SPACE_ID_PARAM, PanelSecurity.PackageId.ToString(), "delete"); lnkDelete.NavigateUrl = EditUrl(PortalUtils.SPACE_ID_PARAM, PanelSecurity.PackageId.ToString(), "delete");
lnkDelete.Visible = ((PanelSecurity.SelectedUserId != PanelSecurity.EffectiveUserId) if (PanelSecurity.LoggedUser.Role != UserRole.Reseller)
&& (PanelSecurity.PackageId > 1)); lnkDelete.Visible = false;
else
lnkDelete.Visible = ((PanelSecurity.SelectedUserId != PanelSecurity.EffectiveUserId) && (PanelSecurity.PackageId > 1));
} }
} }

View file

@ -97,7 +97,8 @@ namespace WebsitePanel.Portal
lnkChangePassword.Visible = !((PanelSecurity.SelectedUserId == PanelSecurity.EffectiveUserId) && PanelSecurity.LoggedUser.IsPeer); lnkChangePassword.Visible = !((PanelSecurity.SelectedUserId == PanelSecurity.EffectiveUserId) && PanelSecurity.LoggedUser.IsPeer);
lnkDelete.NavigateUrl = EditUrl("UserID", PanelSecurity.SelectedUserId.ToString(), "delete"); lnkDelete.NavigateUrl = EditUrl("UserID", PanelSecurity.SelectedUserId.ToString(), "delete");
lnkDelete.Visible = (PanelSecurity.SelectedUserId != PanelSecurity.EffectiveUserId); if (PanelSecurity.LoggedUser.Role != UserRole.Reseller) lnkDelete.Visible = false;
else lnkDelete.Visible = (PanelSecurity.SelectedUserId != PanelSecurity.EffectiveUserId);
} }
} }

View file

@ -67,10 +67,22 @@ namespace WebsitePanel.WebPortal
switch (roleName) switch (roleName)
{ {
case "Administrator": case "Administrator":
roles = new string[] { "Administrator", "Reseller", "User" }; roles = new string[] { "Administrator", "PlatformHelpdesk", "PlatformCSR", "Reseller", "ResellerCSR", "ResellerHelpdesk", "User" };
break; break;
case "Reseller": case "Reseller":
roles = new string[] { "Reseller", "User" }; roles = new string[] { "Reseller", "ResellerCSR", "ResellerHelpdesk", "User" };
break;
case "PlatformCSR":
roles = new string[] { "PlatformCSR", "ResellerCSR", "ResellerHelpdesk", "User" };
break;
case "PlatformHelpdesk":
roles = new string[] { "PlatformHelpdesk", "ResellerHelpdesk", "User" };
break;
case "ResellerCSR":
roles = new string[] { "ResellerCSR", "User" };
break;
case "ResellerHelpdesk":
roles = new string[] { "ResellerHelpdesk", "User" };
break; break;
default: default:
roles = new string[] { "User" }; roles = new string[] { "User" };