Adding user to group via web service sdk.
Hi,
I have added this code to the scheduler so that in some circumstances, users are added to Gemini. It works, although when i check the user profile, the user is not a member of the group with the title "Portal Mode User".
Any docs around how to add users to groups?
// Username becomes email prefix (all chars up to @) string userName = emailAddress.Substring(0, emailAddress.IndexOf("@"));
// Same for First Name
string firstName = userName;
// Surname is email address
string surName = emailAddress;
// Create user
UserEN geminiUser = new UserEN(userName, true, "");
geminiUser.Active = true;
//geminiUser.AuthenticationType
geminiUser.Firstname = firstName;
geminiUser.Surname = surName;
geminiUser.EmailAddress = emailAddress;
geminiUser.Password = "Password1";
ServiceHelper.LogMessage(EntryTitle, String.Format("Creating user {0} {1} (first name, surname)",
firstName, surName));
int userId;
try
{
userId = serviceManager.AuthorisationServices.CreateUser(geminiUser);
geminiUser.UserID = userId;
}
catch (SoapException sex)
{
return -1;
}
GlobalGroupMembershipEN globalGrpMembershipEN = new GlobalGroupMembershipEN();
globalGrpMembershipEN.GlobalGroupID = GetGroupId("Everyone");
globalGrpMembershipEN.UserID = userId;
GlobalGroupMembershipEN globalGrpMembershipEN2 = new GlobalGroupMembershipEN();
globalGrpMembershipEN2.GlobalGroupID = GetGroupId("Portal Mode Users");
globalGrpMembershipEN2.UserID = userId;
ServiceHelper.LogMessage(EntryTitle, string.Format("User {0} created. Adding group membership id(s) {1}, {2}",
userId,
globalGrpMembershipEN.GlobalGroupID,
globalGrpMembershipEN2.GlobalGroupID));
// Add Global memberships
GlobalGroupMembershipEN[] memberships = new GlobalGroupMembershipEN[] { globalGrpMembershipEN, globalGrpMembershipEN2 };
geminiUser.GlobalGroupMembership = memberships;
// Add settings that specify the ReceiveEmailAlerts?
UserSettingsEN receiveMailSetting = new UserSettingsEN(userId, "SettingReceiveEmailAlerts", "true");
geminiUser.UserSettings = new UserSettingsEN[] { receiveMailSetting };
ServiceHelper.LogMessage(EntryTitle, "Setting recieveMail to true");
// Update the user
serviceManager.AuthorisationServices.UpdateUser(geminiUser);
ServiceHelper.LogMessage(EntryTitle, "User successfully updated");
return userId;
}
/// <summary>
/// Get id
/// </summary>
/// <param name="groupName"></param>
/// <returns></returns>
private int? GetGroupId(string groupName)
{
GlobalGroupEN group = globalGroups.Find(x => x.GlobalGroupName == groupName);
if (group != null)
return group.GlobalGroupID;
return null;
}
manuboy
· 1 |
|
Tuesday, June 30, 2009, 5:35:27 AM |