RDS Users fixes
This commit is contained in:
parent
2b51465900
commit
7a4301fbea
5 changed files with 69 additions and 17 deletions
|
@ -5853,6 +5853,9 @@
|
|||
<data name="ERROR.RDS_USERS_NOT_DELETED" xml:space="preserve">
|
||||
<value>Unable to remove the following user(s) since they are local admins or they were granted access to remote applications:</value>
|
||||
</data>
|
||||
<data name="ERROR.RDS_USERS_NOT_UPDATED" xml:space="preserve">
|
||||
<value>RDS Users updating error</value>
|
||||
</data>
|
||||
<data name="ERROR.REMOTE_DESKTOP_SERVICES_LOG_OFF_USER" xml:space="preserve">
|
||||
<value>RDS User logging off error</value>
|
||||
</data>
|
||||
|
|
|
@ -57,6 +57,17 @@ namespace WebsitePanel.Portal.RDS
|
|||
}
|
||||
|
||||
private void BindQuota()
|
||||
{
|
||||
var quota = GetQuota();
|
||||
|
||||
if (quota != null)
|
||||
{
|
||||
int rdsUsersCount = ES.Services.RDS.GetOrganizationRdsUsersCount(PanelRequest.ItemID);
|
||||
users.ButtonAddEnabled = (!(quota.QuotaAllocatedValue <= rdsUsersCount) || (quota.QuotaAllocatedValue == -1));
|
||||
}
|
||||
}
|
||||
|
||||
private QuotaValueInfo GetQuota()
|
||||
{
|
||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||
OrganizationStatistics stats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID);
|
||||
|
@ -71,9 +82,10 @@ namespace WebsitePanel.Portal.RDS
|
|||
|
||||
if (cntx.Quotas.ContainsKey(Quotas.RDS_USERS))
|
||||
{
|
||||
int rdsUsersCount = ES.Services.RDS.GetOrganizationRdsUsersCount(PanelRequest.ItemID);
|
||||
users.ButtonAddEnabled = (!(cntx.Quotas[Quotas.RDS_USERS].QuotaAllocatedValue <= rdsUsersCount) || (cntx.Quotas[Quotas.RDS_USERS].QuotaAllocatedValue == -1));
|
||||
return cntx.Quotas[Quotas.RDS_USERS];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void OnRefreshClicked(object sender, EventArgs e)
|
||||
|
@ -83,19 +95,36 @@ namespace WebsitePanel.Portal.RDS
|
|||
|
||||
if (users.Any())
|
||||
{
|
||||
messageBox.Visible = true;
|
||||
messageBox.ShowErrorMessage("RDS_USERS_NOT_DELETED", new Exception(string.Join(", ", users)));
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private bool SaveRdsUsers()
|
||||
{
|
||||
try
|
||||
{
|
||||
ES.Services.RDS.SetUsersToRdsCollection(PanelRequest.ItemID, PanelRequest.CollectionID, users.GetUsers());
|
||||
var quota = GetQuota();
|
||||
var rdsUsers = users.GetUsers();
|
||||
|
||||
if (quota.QuotaAllocatedValue == -1 || quota.QuotaAllocatedValue >= rdsUsers.Count())
|
||||
{
|
||||
messageBox.Visible = false;
|
||||
ES.Services.RDS.SetUsersToRdsCollection(PanelRequest.ItemID, PanelRequest.CollectionID, users.GetUsers());
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("Too many RDS users added");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
messageBox.ShowErrorMessage(ex.Message);
|
||||
messageBox.Visible = true;
|
||||
messageBox.ShowErrorMessage("RDS_USERS_NOT_UPDATED", ex);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -155,6 +155,13 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
|||
public List<string> CheckDeletedUsers()
|
||||
{
|
||||
var rdsUsers = GetGridViewUsers(SelectedState.Selected);
|
||||
var collectionUsers = ES.Services.RDS.GetRdsCollectionUsers(PanelRequest.CollectionID);
|
||||
|
||||
if (rdsUsers.All(r => !collectionUsers.Select(c => c.AccountName.ToLower()).Contains(r.AccountName.ToLower())))
|
||||
{
|
||||
return new List<string>();
|
||||
}
|
||||
|
||||
var localAdmins = ES.Services.RDS.GetRdsCollectionLocalAdmins(PanelRequest.CollectionID);
|
||||
var organizationUsers = ES.Services.Organizations.GetOrganizationUsersPaged(PanelRequest.ItemID, null, null, null, 0, Int32.MaxValue).PageUsers;
|
||||
var applicationUsers = ES.Services.RDS.GetApplicationUsers(PanelRequest.ItemID, PanelRequest.CollectionID, null);
|
||||
|
@ -219,14 +226,7 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
|||
}
|
||||
|
||||
accounts = accounts.Where(x => !GetUsers().Select(p => p.AccountName).Contains(x.AccountName)).ToArray();
|
||||
Array.Sort(accounts, CompareAccount);
|
||||
if (Direction == SortDirection.Ascending)
|
||||
{
|
||||
Array.Reverse(accounts);
|
||||
Direction = SortDirection.Descending;
|
||||
}
|
||||
else
|
||||
Direction = SortDirection.Ascending;
|
||||
Array.Sort(accounts, CompareAccount);
|
||||
|
||||
gvPopupAccounts.DataSource = accounts;
|
||||
gvPopupAccounts.DataBind();
|
||||
|
@ -262,7 +262,7 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
|||
}
|
||||
}
|
||||
|
||||
gvUsers.DataSource = users;
|
||||
gvUsers.DataSource = users.OrderBy(u => u.DisplayName);
|
||||
gvUsers.DataBind();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue