org.user, web.client: user update on zitadel working
This commit is contained in:
		
							parent
							
								
									7427370b5c
								
							
						
					
					
						commit
						3e43c25d84
					
				
					 2 changed files with 44 additions and 9 deletions
				
			
		|  | @ -50,12 +50,38 @@ class ExtUser: | |||
|             ), | ||||
|             organization=dict(orgId=params['organization_id']), | ||||
|         ) | ||||
|         if self.user.hashedPassword: | ||||
|             data['hashedPassword'] = self.user.hashedPassword | ||||
|         return data | ||||
| 
 | ||||
|     def send(self): | ||||
|     def create(self, updateIfExits=False): | ||||
|         clt = client.ApiClient(config.oidc_provider) | ||||
|         data = self.asDict() | ||||
|         res = clt.post(self.endpoints['users_human'], data) | ||||
|         if self.user.hashedPassword: | ||||
|             data['hashedPassword'] = self.user.hashedPassword | ||||
|         status, res = clt.post(self.endpoints['users_human'], data) | ||||
|         if status > 201: | ||||
|             if updateIfExits: | ||||
|                 return self.update() | ||||
|             else: | ||||
|                 return status, res | ||||
|         if self.user.grants: | ||||
|             return self.createGrants() | ||||
| 
 | ||||
|     def update(self, createIfMissing=False): | ||||
|         clt = client.ApiClient(config.oidc_provider) | ||||
|         data = self.asDict() | ||||
|         if self.user.hashedPassword: | ||||
|             data['password'] = dict(hashedPassword=self.user.hashedPassword) | ||||
|         status, res = clt.put(self.endpoints['users_human'], self.userId, data) | ||||
|         if status > 200: | ||||
|             if createIfMissing: | ||||
|                 return self.create() | ||||
|             else: | ||||
|                 return status, res | ||||
|         if self.user.grants: | ||||
|             return self.updateGrants() | ||||
| 
 | ||||
|     def createGrants(self): | ||||
|         pass | ||||
| 
 | ||||
|     def updateGrants(self): | ||||
|         pass | ||||
|  |  | |||
|  | @ -24,12 +24,21 @@ class ApiClient: | |||
| 
 | ||||
|     def post(self, endpoint, data): | ||||
|         headers = self.authentication() | ||||
|         headers['Content-Type'] = 'application/json' | ||||
|         # self.makeUrl(endpoint) | ||||
|         url = '/'.join((self.baseUrl, endpoint)) | ||||
|         resp = requests.post(url, json=data, headers=headers) | ||||
|         if resp.status_code != 200: | ||||
|             logger.error('post %s: %s', url, resp.text) | ||||
|             return resp.text | ||||
|         data = resp.json() | ||||
|         return data | ||||
|         if resp.status_code >= 400: | ||||
|             logger.error('post %s: %s %s', url, resp.status_code, resp.text) | ||||
|         return resp.status_code, resp.json() | ||||
| 
 | ||||
|     def put(self, endpoint, objId, data): | ||||
|         headers = self.authentication() | ||||
|         headers['Content-Type'] = 'application/json' | ||||
|         # self.makeUrl(endpoint) | ||||
|         url = '/'.join((self.baseUrl, endpoint, objId)) | ||||
|         resp = requests.put(url, json=data, headers=headers) | ||||
|         if resp.status_code >= 400: | ||||
|             logger.error('post %s: %s %s', url, resp.status_code, resp.text) | ||||
|         return resp.status_code, resp.json() | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue