code: def sync(cls):
          
          try:
              settings_roles = set(settings.ARCTIC_ROLES.keys())
          except AttributeError:
              settings_roles = set()
  
          saved_roles = set(Role.objects.values_list("name", flat=True))
          unsaved_roles = settings_roles - saved_roles
          unused_roles = saved_roles - settings_roles - set([cls.ADMIN])
  
          # ensure that admin is not defined in settings
          if cls.ADMIN in settings_roles:
              raise ImproperlyConfigured(
                  '"' + cls.ADMIN + '" role is reserved '
                  "and cannot be defined in settings"
              )
  
          # ensure that admin exists in the database
          if cls.ADMIN not in saved_roles:
              Role(name=cls.ADMIN, is_active=True).save()
  
          # check if the role defined in settings already exists in the database
          # and if it does ensure it is enabled.
          for role in saved_roles:
              if role in settings_roles:
                  saved_role = Role.objects.get(name=role)
                  if not saved_role.is_active:
                      saved_role.is_active = True
                      saved_role.save()
  
          for role in unsaved_roles:
              Role(name=role).save()
  
          for role in unused_roles:
              unused_role = Role.objects.get(name=role)
              unused_role.is_active = False
              unused_role.save()
docs: Save all the roles defined in the settings that are not yet in the db
          this is needed to create a foreign key relation between a user and a
          role. Roles that are no longer specified in settings are set as
          inactive.