Fix for Remote Application users
This commit is contained in:
parent
4ca584a5ca
commit
2726090c4f
5 changed files with 16 additions and 14 deletions
|
@ -1055,15 +1055,15 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
var usersInDb = GetRdsCollectionUsers(collectionId);
|
var usersInDb = GetRdsCollectionUsers(collectionId);
|
||||||
|
|
||||||
var usersAccountNames = users.Select(x => x.AccountName).ToList();
|
var accountNames = users.Select(x => x.AccountName).ToList();
|
||||||
|
|
||||||
//Set on server
|
//Set on server
|
||||||
rds.SetUsersInCollection(org.OrganizationId, collection.Name, users.Select(x => x.AccountName).ToArray());
|
rds.SetUsersInCollection(org.OrganizationId, collection.Name, users.Select(x => x.SamAccountName).ToArray());
|
||||||
|
|
||||||
//Remove from db
|
//Remove from db
|
||||||
foreach (var userInDb in usersInDb)
|
foreach (var userInDb in usersInDb)
|
||||||
{
|
{
|
||||||
if (!usersAccountNames.Contains(userInDb.AccountName))
|
if (!accountNames.Contains(userInDb.AccountName))
|
||||||
{
|
{
|
||||||
DataProvider.RemoveRDSUserFromRDSCollection(collectionId, userInDb.AccountId);
|
DataProvider.RemoveRDSUserFromRDSCollection(collectionId, userInDb.AccountId);
|
||||||
}
|
}
|
||||||
|
@ -1109,9 +1109,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
var rds = GetRemoteDesktopServices(GetRemoteDesktopServiceID(org.PackageId));
|
var rds = GetRemoteDesktopServices(GetRemoteDesktopServiceID(org.PackageId));
|
||||||
var collection = GetRdsCollection(collectionId);
|
var collection = ObjectUtils.FillObjectFromDataReader<RdsCollection>(DataProvider.GetRDSCollectionById(collectionId));
|
||||||
|
var users = rds.GetApplicationUsers(collection.Name, remoteApp.Alias);
|
||||||
result.AddRange(rds.GetApplicationUsers(collection.Name, remoteApp.Alias));
|
result.AddRange(users);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -986,13 +986,11 @@ namespace WebsitePanel.Providers.RemoteDesktopServices
|
||||||
//adding users to group
|
//adding users to group
|
||||||
foreach (var user in users)
|
foreach (var user in users)
|
||||||
{
|
{
|
||||||
var userPath = GetUserPath(organizationId, user);
|
var samName = user.Split('\\').Last();
|
||||||
|
var userPath = GetUserPath(organizationId, samName);
|
||||||
|
|
||||||
if (ActiveDirectoryUtils.AdObjectExists(userPath))
|
if (ActiveDirectoryUtils.AdObjectExists(userPath))
|
||||||
{
|
{
|
||||||
var userObject = ActiveDirectoryUtils.GetADObject(userPath);
|
|
||||||
var samName = (string)ActiveDirectoryUtils.GetADObjectProperty(userObject, "sAMAccountName");
|
|
||||||
|
|
||||||
if (!ActiveDirectoryUtils.IsUserInGroup(samName, usersGroupName))
|
if (!ActiveDirectoryUtils.IsUserInGroup(samName, usersGroupName))
|
||||||
{
|
{
|
||||||
ActiveDirectoryUtils.AddObjectToGroup(userPath, GetUsersGroupPath(organizationId, collectionName));
|
ActiveDirectoryUtils.AddObjectToGroup(userPath, GetUsersGroupPath(organizationId, collectionName));
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace WebsitePanel.Portal.RDS
|
||||||
|
|
||||||
litCollectionName.Text = collection.Name;
|
litCollectionName.Text = collection.Name;
|
||||||
txtApplicationName.Text = remoteApp.DisplayName;
|
txtApplicationName.Text = remoteApp.DisplayName;
|
||||||
var remoteAppUsers = organizationUsers.Where(x => applicationUsers.Contains(x.DomainUserName));
|
var remoteAppUsers = organizationUsers.Where(x => applicationUsers.Select(a => a.Split('\\').Last().ToLower()).Contains(x.SamAccountName.Split('\\').Last().ToLower()));
|
||||||
|
|
||||||
users.SetUsers(remoteAppUsers.ToArray());
|
users.SetUsers(remoteAppUsers.ToArray());
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ namespace WebsitePanel.Portal.RDS
|
||||||
var applications = ES.Services.RDS.GetCollectionRemoteApplications(PanelRequest.ItemID, collection.Name);
|
var applications = ES.Services.RDS.GetCollectionRemoteApplications(PanelRequest.ItemID, collection.Name);
|
||||||
var remoteApp = applications.Where(x => x.Alias.Equals(PanelRequest.ApplicationID, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
|
var remoteApp = applications.Where(x => x.Alias.Equals(PanelRequest.ApplicationID, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
|
||||||
remoteApp.DisplayName = txtApplicationName.Text;
|
remoteApp.DisplayName = txtApplicationName.Text;
|
||||||
ES.Services.RDS.SetApplicationUsers(PanelRequest.ItemID, PanelRequest.CollectionID, remoteApp, users.GetUsers().Select(x => x.AccountName).ToArray());
|
ES.Services.RDS.SetApplicationUsers(PanelRequest.ItemID, PanelRequest.CollectionID, remoteApp, users.GetUsers().Select(x => x.SamAccountName.Split('\\').Last()).ToArray());
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
</ItemStyle>
|
</ItemStyle>
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:Literal ID="litAccount" runat="server" Text='<%# Eval("DisplayName") %>'></asp:Literal>
|
<asp:Literal ID="litAccount" runat="server" Text='<%# Eval("DisplayName") %>'></asp:Literal>
|
||||||
|
<asp:HiddenField ID="hdnSamAccountName" runat="server" Value='<%# Eval("SamAccountName") %>' />
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
</Columns>
|
</Columns>
|
||||||
|
@ -79,6 +80,7 @@
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:Image ID="imgAccount" runat="server" ImageUrl='<%# GetAccountImage((int)Eval("AccountType")) %>' ImageAlign="AbsMiddle" />
|
<asp:Image ID="imgAccount" runat="server" ImageUrl='<%# GetAccountImage((int)Eval("AccountType")) %>' ImageAlign="AbsMiddle" />
|
||||||
<asp:Literal ID="litDisplayName" runat="server" Text='<%# Eval("DisplayName") %>'></asp:Literal>
|
<asp:Literal ID="litDisplayName" runat="server" Text='<%# Eval("DisplayName") %>'></asp:Literal>
|
||||||
|
<asp:HiddenField ID="hdnSamName" runat="server" Value='<%# Eval("SamAccountName") %>' />
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:TemplateField meta:resourcekey="gvAccountsEmail">
|
<asp:TemplateField meta:resourcekey="gvAccountsEmail">
|
||||||
|
|
|
@ -194,6 +194,7 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
||||||
OrganizationUser user = new OrganizationUser();
|
OrganizationUser user = new OrganizationUser();
|
||||||
user.AccountName = (string)gvUsers.DataKeys[i][0];
|
user.AccountName = (string)gvUsers.DataKeys[i][0];
|
||||||
user.DisplayName = ((Literal)row.FindControl("litAccount")).Text;
|
user.DisplayName = ((Literal)row.FindControl("litAccount")).Text;
|
||||||
|
user.SamAccountName = ((HiddenField)row.FindControl("hdnSamAccountName")).Value;
|
||||||
|
|
||||||
if (state == SelectedState.All ||
|
if (state == SelectedState.All ||
|
||||||
(state == SelectedState.Selected && chkSelect.Checked) ||
|
(state == SelectedState.Selected && chkSelect.Checked) ||
|
||||||
|
@ -219,7 +220,8 @@ namespace WebsitePanel.Portal.RDS.UserControls
|
||||||
accounts.Add(new OrganizationUser
|
accounts.Add(new OrganizationUser
|
||||||
{
|
{
|
||||||
AccountName = (string)gvPopupAccounts.DataKeys[i][0],
|
AccountName = (string)gvPopupAccounts.DataKeys[i][0],
|
||||||
DisplayName = ((Literal)row.FindControl("litDisplayName")).Text
|
DisplayName = ((Literal)row.FindControl("litDisplayName")).Text,
|
||||||
|
SamAccountName = ((HiddenField)row.FindControl("hdnSamName")).Value
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue