Gemini Community Support Site

This Gemini community support site can be used to find solutions to product issues. You can log in using Open Id, Google Profile and even Facebook. Feel free to ask a question or browse FAQs and documentation. Product tour videos are also available along with how-to videos demonstrating key Gemini capabilities.




Adding user to group via web service sdk.

web-app

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
manuboy
Replies (2)
helpful
0
not helpful

Which version of Gemini are you running?

With 3.5.1 you can use the groups service to add users (AddGlobalGroupMembership)


Saar Cohen
· 5000
Saar Cohen
helpful
0
not helpful

Hi

v3.1.2 (Build 2257)

So the Groups Service is 3.5.X?

I'll consult the client - it might be time for an upgrade.

Thanks


manuboy
· 1
manuboy