The way you are setting the rights to groups for a certain publication is ok.
You can use the Rights Enumeration to select the desired right to set, but from the list you are questioning there are some points to clarify:
Publish to Content Distributor right is the same as
Rights.PublishManagement in the Enumeration.
User Generated Content right is set and stored by means of the "AppData".
- The other ones of the list, that are part of the
Audience Manager & Outbound Email extension, are set in his own database, as @PeterKjaer comments.
If you need to stablish rights & permission for this applications, the
ApplicationData Object of the Core Service must be used, and it depends on the proper application wich defines the objects that can be set.
In the case of
User Generated Content security settings, we can take the code where the Publication Rights are set in the CME; we can use something similar to this:
public static void SetPublicationRightsAppData(SessionAwareCoreServiceClient coreClient, string publicationId, string appDataString = "<ugc><trustees></trustees></ugc>")
ApplicationData applicationData = new ApplicationData()
ApplicationId = "ugc:PublicationRights",
TypeId = "c:XmlDocument-CommunityBuilder",
Data = Encoding.Unicode.GetBytes(appDataString)
coreClient.SaveApplicationData(publicationId, new ApplicationData
Hope this helps