def update(self, **kwargs):
        """
        Update existing user.

        https://www.keycloak.org/docs-api/2.5/rest-api/index.html#_userrepresentation

        :param str first_name: first_name for user
        :param str last_name: last_name for user
        :param str email: Email for user
        :param bool email_verified: User email verified
        :param Map attributes: Atributes in user
        :param string array realm_roles: Realm Roles
        :param Map client_roles: Client Roles
        :param string array groups: Groups for user
        """
        payload = {}
        for k, v in self.user.items():
            payload[k] = v
        for key in USER_KWARGS:
            if key in kwargs:
                payload[to_camel_case(key)] = kwargs[key]
        result = self._client.put(url=self._client.get_full_url(
            self.get_path('single',
                          realm=self._realm_name,
                          user_id=self._user_id)),
                                  data=json.dumps(payload, sort_keys=True))
        self.get()
        return result
Exemplo n.º 2
0
    def update(self, name, **kwargs):
        """
        Update existing role.

        http://www.keycloak.org/docs-api/3.4/rest-api/index.html#_roles_resource

        :param str name: Name for the role
        :param str description: (optional)
        :param str id: (optional)
        :param bool client_role: (optional)
        :param bool composite: (optional)
        :param object composites: (optional)
        :param str container_id: (optional)
        :param bool scope_param_required: (optional)
        """
        payload = OrderedDict(name=name)

        for key in ROLE_KWARGS:
            if key in kwargs:
                payload[to_camel_case(key)] = kwargs[key]

        return self._client.put(url=self._client.get_full_url(
            self.get_path('single',
                          realm=self._realm_name,
                          id=self._client_id,
                          role_name=self._role_name)),
                                data=json.dumps(payload, sort_keys=True))
Exemplo n.º 3
0
    def update(self, *args, **kwargs):
        payload = OrderedDict()
        for key in kwargs:
            _key = to_camel_case(key)
            if _key in CLIENTS_KWARGS:
                payload[_key] = kwargs[key]

        return self._client.put(url=self._client.get_full_url(
            self.get_path('single', realm=self._realm_name, id=self._id)),
                                data=json.dumps(payload))
    def create(self, username, **kwargs):
        """
        Create a user in Keycloak

        http://www.keycloak.org/docs-api/3.4/rest-api/index.html#_users_resource

        :param str username:
        :param object credentials: (optional)
        :param str first_name: (optional)
        :param str last_name: (optional)
        :param str email: (optional)
        :param boolean enabled: (optional)
        """
        payload = OrderedDict(username=username)

        for key in USER_KWARGS:
            if key in kwargs:
                payload[to_camel_case(key)] = kwargs[key]

        return self._client.post(url=self._client.get_full_url(
            self.get_path('collection', realm=self._realm_name)),
                                 data=json.dumps(payload, sort_keys=True))
    def create(self, name, **kwargs):
        """
        Create a group in Keycloak

        https://www.keycloak.org/docs-api/7.0/rest-api/index.html#_grouprepresentation

        :param name
        :param path
        :param access
        :param attributes
        :param client_roles
        :param realm_roles
        :param sub_groups
        """
        payload = OrderedDict(name=name)
        for key in GROUPS_KWARGS:
            if key in kwargs:
                payload[to_camel_case(key)] = kwargs[key]

        return self._client.post(url=self._client.get_full_url(
            self.get_path('collection', realm=self._realm_name)),
                                 data=json.dumps(payload))