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_PASSWORD = -110;
public const int ERROR_INVALID_USER_NAME = -111;
public const int ERROR_USER_ACCOUNT_NOT_ENOUGH_PERMISSIONS = -112;
#endregion
#region Packages

View file

@ -38,6 +38,10 @@ namespace WebsitePanel.EnterpriseServer
NotDemo = 0x1,
IsActive = 0x2,
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,
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_RESELLER = "Reseller";
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";
@ -62,8 +66,26 @@ namespace WebsitePanel.EnterpriseServer
// set roles array
List<string> roles = new List<string>();
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)
roles.Add(SecurityContext.ROLE_RESELLER);
if (user.Role == UserRole.Administrator)
roles.Add(SecurityContext.ROLE_ADMINISTRATOR);
@ -152,9 +174,40 @@ namespace WebsitePanel.EnterpriseServer
{
// should make a check if the account has Admin role
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;
}

View file

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

View file

@ -9,25 +9,25 @@
</Content>
</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">
<Module moduleDefinitionID="LoggedUserDetails" title="LoggedUserDetails" icon="user_write_48.png" container="Edit.ascx" />
</Content>
</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">
<Module moduleDefinitionID="SearchUsers" title="SearchUsers" icon="user_zoom_48.png" container="Edit.ascx" />
</Content>
</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">
<Module moduleDefinitionID="SearchSpaces" title="SearchSpaces" icon="sphere_zoom_48.png" container="Edit.ascx" />
</Content>
</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">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
@ -35,27 +35,19 @@
</Content>
<Content id="ContentPane">
<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"/>
</Module>
<Module moduleDefinitionID="UserNotes" title="UserNotes" container="Browse.ascx" roles="Administrator,Reseller" 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-->
<Module moduleDefinitionID="UserNotes" title="UserNotes" container="Browse.ascx" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" icon="notes_48.png" />
</Content>
<Content id="RightPane">
<Module moduleDefinitionID="UserDetails" title="UserDetails" container="Clear.ascx" />
<Module moduleDefinitionID="UserResellerSettings" title="UserResellerSettings" container="Clear.ascx" roles="Administrator,Reseller" />
<!--Module moduleDefinitionID="UserTools" title="UserTools" container="Clear.ascx" /-->
</Content>
</Page>
<!-- 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">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
@ -66,62 +58,62 @@
</Content>
</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">
<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" />
<Module moduleDefinitionID="UserPeers" title="UserPeers" icon="motion_blur_48.png" readOnlyRoles="PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk"/>
</Content>
</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">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<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>
</Page>
<Page name="HostingPlans" roles="Administrator,Reseller" hidden="True">
<Page name="HostingAddons" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<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>
</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">
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
<ModuleData ref="UserMenu"/>
</Module>
</Content>
<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>
</Page>
<Page name="UserTasks" roles="Administrator,Reseller,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">
<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"/>
@ -133,7 +125,7 @@
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -141,18 +133,18 @@
</Content>
<Content id="ContentPane">
<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" />
</Content>
<Content id="RightPane">
<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" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<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">
<Module moduleDefinitionID="HostedSolutionMenu" title="HostedSolutionMenu" container="Clear.ascx">
<ModuleData ref="HostedSolutionMenu"/>
@ -176,18 +168,18 @@
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
</Module>
</Content>
<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>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -198,7 +190,7 @@
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -209,7 +201,7 @@
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -220,7 +212,7 @@
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -230,8 +222,10 @@
<Module moduleDefinitionID="FtpAccounts" title="FtpAccounts" icon="folder_up_48.png" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -241,7 +235,8 @@
<Module moduleDefinitionID="MailAccounts" title="MailAccounts" icon="accounting_mail_48.png" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -251,7 +246,8 @@
<Module moduleDefinitionID="MailForwardings" title="MailForwardings" icon="safe-mail_next_48.png" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -261,7 +257,8 @@
<Module moduleDefinitionID="MailGroups" title="MailGroups" icon="contacts_mail_48.png" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -271,7 +268,8 @@
<Module moduleDefinitionID="MailLists" title="MailLists" icon="discussion_group_48.png" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -281,8 +279,10 @@
<Module moduleDefinitionID="MailDomains" title="MailDomains" icon="web_mail_48.png" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -301,7 +301,8 @@
</Module>
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -321,7 +322,7 @@
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -341,7 +342,7 @@
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -361,7 +362,7 @@
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -380,7 +381,8 @@
</Module>
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -399,7 +401,8 @@
</Module>
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -409,7 +412,8 @@
<Module moduleDefinitionID="SharedSSL" title="SharedSSL" icon="world_lock_48.png" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -419,7 +423,8 @@
<Module moduleDefinitionID="AdvancedStatistics" title="AdvancedStatistics" icon="stadistics_48.png" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -429,7 +434,8 @@
<Module moduleDefinitionID="ODBC" title="ODBC" icon="export_db_back_48.png" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -439,7 +445,8 @@
<Module moduleDefinitionID="ScheduledTasks" title="ScheduledTasks" icon="calendar_month_2_clock_48.png" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -450,7 +457,7 @@
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -462,8 +469,9 @@
</Page>
<Page name="SpaceSharePoint" roles="Administrator,Reseller,User" hidden="True"/>
<Page name="SpaceSharePointSites" 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,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True">
<Content id="LeftPane">
<Module moduleDefinitionID="HostedSolutionMenu" title="HostedSolutionMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -473,7 +481,8 @@
<Module moduleDefinitionID="SharePointSites" title="SharePointSites" icon="colors_48.png" />
</Content>
</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">
<Module moduleDefinitionID="SpaceMenu" title="SpaceMenu" container="Clear.ascx">
<ModuleData ref="SpaceMenu"/>
@ -485,47 +494,47 @@
</Content>
</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 -->
</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">
<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>
</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">
<Module moduleDefinitionID="VPS" title="VirtualPrivateServers" icon="" container="VPS.ascx" admincontainer="VPS.ascx"/>
</Content>
</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">
<Module moduleDefinitionID="VPSForPC" title="VirtualPrivateServersForPrivateCloud" icon="" container="VPSForPC.ascx" admincontainer="VPSForPC.ascx"/>
</Content>
</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">
<Module moduleDefinitionID="OverusageReport" title="OverusageReport" container="Edit.ascx" icon="table_zoom_48.png" />
</Content>
</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">
<Module moduleDefinitionID="User" title="User" container="Clear.ascx" />
<Module moduleDefinitionID="HostingSpace" title="HostingSpace" container="Clear.ascx" />
</Content>
<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">
<Module moduleDefinitionID="DiskspaceReport" title="DiskspaceReport" container="Edit.ascx" icon="table_zoom_48.png" />
</Content>
</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">
<Module moduleDefinitionID="BandwidthReport" title="BandwidthReport" container="Edit.ascx" icon="table_zoom_48.png" />
</Content>

View file

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

View file

@ -343,6 +343,10 @@ namespace WebsitePanel.WebPortal
else
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)
module.EditRoles.Add("*");
else

View file

@ -112,10 +112,10 @@
<value>2.0</value>
</resheader>
<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 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>
<data name="btnAddItem.Text" xml:space="preserve">
<value>Create Peer Account</value>
@ -135,4 +135,7 @@
<data name="usersListUsername.Header" xml:space="preserve">
<value>Username</value>
</data>
<data name="usersListRole.Header" xml:space="preserve">
<value>Role</value>
</data>
</root>

View file

@ -112,10 +112,10 @@
<value>2.0</value>
</resheader>
<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 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>
<data name="btnCancel.Text" xml:space="preserve">
<value>Cancel</value>
@ -180,4 +180,7 @@
<data name="btnDelete.OnClientClick" xml:space="preserve">
<value>return confirm('Are you sure you want to delete this peer account?');</value>
</data>
<data name="lblRole.Text" xml:space="preserve">
<value>Role</value>
</data>
</root>

View file

@ -326,6 +326,9 @@ namespace WebsitePanel.Portal
// localize grid viewes
LocalizeGridViews(this);
//if (PanelSecurity.LoggedUser != null)
//if (PanelSecurity.LoggedUser.Role == UserRole.CSR) DisableControls = false;
// call base handler
base.OnLoad(e);
}
@ -335,6 +338,43 @@ namespace WebsitePanel.Portal
// localize all controls
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)
if (DisableControls)
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_RESELLER_ROLE = "WebsitePanel Resellers";
private const string DEFAULT_CSR_ROLE = "CSR";
private const string DEFAULT_USER_ROLE = "WebsitePanel Users";
#region Users ODS Methods (for Selected User)

View file

@ -10,11 +10,16 @@
<Columns>
<asp:TemplateField SortExpression="Username" HeaderText="usersListUsername">
<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") %>
</asp:hyperlink>
</ItemTemplate>
</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">
<ItemStyle Wrap="False" Width="50%" />
</asp:BoundField>

View file

@ -37,15 +37,16 @@ using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal
{
public partial class Peers : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
// set display preferences
usersList.PageSize = UsersHelper.GetDisplayItemsPerPage();
// set display preferences
usersList.PageSize = UsersHelper.GetDisplayItemsPerPage();
}
protected void odsUserPeers_Selected(object sender, ObjectDataSourceStatusEventArgs e)
@ -62,5 +63,28 @@ namespace WebsitePanel.Portal
{
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,18 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 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
// the code is regenerated.
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal {
public partial class Peers {
protected System.Web.UI.WebControls.Button btnAddItem;
protected System.Web.UI.WebControls.GridView usersList;
protected System.Web.UI.WebControls.ObjectDataSource odsUserPeers;
/// <summary>
/// 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>
<td class="Normal">&nbsp;</td>
</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>
<td class="SubHead">
<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>
</td>
<td class="Normal">
<uc2:EmailControl id="txtEmail" runat="server">
</uc2:EmailControl>
<uc2:EmailControl id="txtEmail" runat="server"></uc2:EmailControl>
</td>
</tr>
<tr>
@ -78,8 +86,7 @@
<asp:Label ID="lblSecondaryEmail" runat="server" meta:resourcekey="lblSecondaryEmail" Text="Secondary e-mail:"></asp:Label>
</td>
<td class="Normal">
<uc2:EmailControl id="txtSecondaryEmail" runat="server" RequiredEnabled="false">
</uc2:EmailControl>
<uc2:EmailControl id="txtSecondaryEmail" runat="server" RequiredEnabled="false"></uc2:EmailControl>
</td>
</tr>
<tr>
@ -105,8 +112,7 @@
</table>
<wsp:CollapsiblePanel id="headContact" runat="server" IsCollapsed="true"
TargetControlID="pnlContact" meta:resourcekey="secContact" Text="Contact">
</wsp:CollapsiblePanel>
TargetControlID="pnlContact" meta:resourcekey="secContact" Text="Contact"></wsp:CollapsiblePanel>
<asp:Panel ID="pnlContact" runat="server" Height="0" style="overflow:hidden;">
<dnc:usercontact id="contact" runat="server"></dnc:usercontact>
</asp:Panel>

View file

@ -1,4 +1,4 @@
// Copyright (c) 2012, Outercurve Foundation.
// Copyright (c) 2011, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
@ -60,15 +60,52 @@ namespace WebsitePanel.Portal
{
userPassword.SetUserPolicy(PanelSecurity.SelectedUserId, UserSettings.WEBSITEPANEL_POLICY, "PasswordPolicy");
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
}
if (PanelSecurity.LoggedUser.IsPeer && PanelSecurity.LoggedUserId == PanelRequest.PeerID)
btnDelete.Visible = false; // peer can't delete his own account
UserInfo user = UsersHelper.GetUser(PanelRequest.PeerID);
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.ValidationGroup = "NewPassword";
@ -82,8 +119,15 @@ namespace WebsitePanel.Portal
lblUsername.Text = user.Username;
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.CompanyName = user.CompanyName;
contact.CompanyName = user.CompanyName;
contact.Address = user.Address;
contact.City = user.City;
contact.Country = user.Country;
@ -111,8 +155,31 @@ namespace WebsitePanel.Portal
// gather data from form
UserInfo user = new UserInfo();
user.UserId = PanelRequest.PeerID;
user.RoleId = owner.RoleId;
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.StatusId = owner.StatusId;
user.OwnerId = owner.UserId;
user.IsDemo = owner.IsDemo;
user.IsPeer = true;
@ -128,7 +195,7 @@ namespace WebsitePanel.Portal
user.IsDemo = chkDemo.Checked;
// contact info
user.CompanyName = contact.CompanyName;
user.CompanyName = contact.CompanyName;
user.Address = contact.Address;
user.City = contact.City;
user.Country = contact.Country;
@ -147,7 +214,7 @@ namespace WebsitePanel.Portal
try
{
//int userId = UsersHelper.AddUser(log, PortalId, user);
int userId = PortalUtils.AddUserAccount(log, user, false);
int userId = PortalUtils.AddUserAccount(log, user, false);
if (userId < 0)
{
@ -177,7 +244,7 @@ namespace WebsitePanel.Portal
try
{
//int result = UsersHelper.UpdateUser(PortalId, user);
int result = PortalUtils.UpdateUserAccount(user);
int result = PortalUtils.UpdateUserAccount(user);
if (result < 0)
{
@ -202,7 +269,7 @@ namespace WebsitePanel.Portal
try
{
//int result = UsersHelper.DeleteUser(PortalId, PanelRequest.UserID);
int result = PortalUtils.DeleteUserAccount(PanelRequest.PeerID);
int result = PortalUtils.DeleteUserAccount(PanelRequest.PeerID);
if (result < 0)
{
@ -228,7 +295,7 @@ namespace WebsitePanel.Portal
try
{
//int result = UsersHelper.ChangeUserPassword(PortalId, PanelRequest.UserID, userPassword.Password);
int result = PortalUtils.ChangeUserPassword(PanelRequest.PeerID, userPassword.Password);
int result = PortalUtils.ChangeUserPassword(PanelRequest.PeerID, userPassword.Password);
if (result < 0)
{

View file

@ -1,10 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
@ -139,6 +138,33 @@ namespace WebsitePanel.Portal {
/// </remarks>
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>
/// lblFirstName control.
/// </summary>

View file

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

@ -64,18 +64,30 @@ namespace WebsitePanel.WebPortal
string[] roles = null;
switch (roleName)
{
case "Administrator":
roles = new string[] { "Administrator", "Reseller", "User" };
break;
case "Reseller":
roles = new string[] { "Reseller", "User" };
break;
default:
roles = new string[] { "User" };
break;
}
switch (roleName)
{
case "Administrator":
roles = new string[] { "Administrator", "PlatformHelpdesk", "PlatformCSR", "Reseller", "ResellerCSR", "ResellerHelpdesk", "User" };
break;
case "Reseller":
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;
default:
roles = new string[] { "User" };
break;
}
HttpContext.Current.User = new GenericPrincipal(HttpContext.Current.User.Identity, roles);
}