Welcome to the Panopto Community

Please note: All new registrants to the Panopto Community Forum must be approved by a forum moderator or admin. As such, if you navigate to a feature that is members-only, you may receive an error page if your registration has not yet been approved. We apologize for any inconvenience and are approving new members as quickly as possible.

Copying LMS groups to internal ones

The problem I'm trying to solve is deleting courses from our LMS but maintaining the permissions on the course folder. Once a course is deleted, its permissions groups lose all their users, so I'd like to copy those users to an internal group with the same access rights.

First of all, is this not possible with the REST API? I do not see a way to get group membership. I can use /api/v1/folders/{id}/permissions to find the groups on a course folder but the Group API only contains a search endpoint which also does not show group membership. So even if I was able to find who was in a group, I could not create one.

Is copying a group possible with the SOAP API? Support pointed me to the Group type, but from its properties, I still do not see a way to access its membership. What SOAP classes would I need? Folder::GetAccessibleChildFolders, FolderAccessDetails, Group, GroupAccessDetails?

Lastly, I'm more familiar with REST APIs, and haven't worked with SOAP in a long time. If there are general pointers for how to use the Panopto SOAP APIs, I would appreciate them. I know there is a sample repo but it is smaller and less well-documented than the REST API examples. I prefer to work in Python but other languages are ok, too.


Best Answer

  • Kevin BaumKevin Baum Panopto Employee
    Answer ✓

    Hi Eric,

    You are correct that Panopto's REST API does not currently have an endpoint to get a list of users in a particular group. You can use our SOAP API to get group members and create a new group with those members.

    To get a list of members in a group, you can call the IUserManagement.GetUsersInGroup endpoint. Once you have the list of members, you can use the IUserManagement.CreateInternalGroup endpoint to create a new group, and add the users you previously retrieved using the IUserManagement.AddMembersToInternalGroup endpoint.

    Once all of the members have been added, you can call the IAccessManagement.GrantGroupAccessToFolder endpoint to allow the new group viewer or creator access to the folder.

    We do have another SOAP sample using Python on our public GitHub page that includes a wrapper for Panopto's SOAP API. Please look at the python-soap project to see if that can help you get started.

    I hope that this helps. Please let me know if you have any other questions.




Sign In or Register to comment.