Fix for Remote Application users

This commit is contained in:
vfedosevich 2015-02-10 06:41:00 -08:00
parent 4ca584a5ca
commit 2726090c4f
5 changed files with 16 additions and 14 deletions

View file

@ -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;
} }

View file

@ -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));

View file

@ -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)
{ {

View file

@ -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">

View file

@ -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
}); });
} }
} }