docs: def update_users(self, entries):
          """Update user properties on the roster """
          ws = IWorkspace(self.context)
          members = ws.members
  
          # check user permissions against join policy
          join_policy = self.context.join_policy
          if (join_policy == "admin"
              and not checkPermission(
                  "collective.workspace: Manage roster",
                  self.context)):
              raise Unauthorized("You are not allowed to add users here")
  
          for entry in entries:
              id = entry.get('id')
              is_member = bool(entry.get('member'))
              is_admin = bool(entry.get('admin'))
  
              # Existing members
              if id in members:
                  member = members[id]
                  if not is_member:
                      if checkPermission(
                              "ploneintranet.workspace: Manage workspace",
                              self.context):
                          ws.membership_factory(ws, member).remove_from_team()
                      else:
                          raise Unauthorized(
                              "Only team managers can remove members")
                  elif not is_admin:
                      ws.membership_factory(ws, member).groups -= {'Admins'}
                  else:
                      ws.membership_factory(ws, member).groups |= {'Admins'}
  
              # New members
              elif id not in members and (is_member or is_admin):
                  groups = set()
                  if is_admin:
                      groups.add('Admins')
                  ws.add_to_team(user=id, groups=groups)