upgraded URLs pointing to our Gitea, generalized few validation functions...
This commit is contained in:
		
							parent
							
								
									037f3a9a5e
								
							
						
					
					
						commit
						8b801c7d84
					
				
					 5 changed files with 25 additions and 20 deletions
				
			
		
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							|  | @ -3,4 +3,5 @@ tmp/ | |||
| .idea/ | ||||
| .idea/ | ||||
| .mypy_cache/ | ||||
| config.py | ||||
| config.py | ||||
| __pycache__/ | ||||
|  |  | |||
							
								
								
									
										2
									
								
								Pipfile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Pipfile
									
									
									
									
									
								
							|  | @ -12,7 +12,7 @@ beautifulsoup4 = "*" | |||
| six = "*" | ||||
| termcolor = "*" | ||||
| lxml = "*" | ||||
| swagger_client = { git = "https://gitea-gimli.kam.mff.cuni.cz/vasek/gitea-swagger-client" } | ||||
| swagger_client = { git = "https://gitea.ks.matfyz.cz/vasek/gitea-swagger-client" } | ||||
| 
 | ||||
| [requires] | ||||
| python_version = "3" | ||||
|  |  | |||
							
								
								
									
										12
									
								
								Pipfile.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								Pipfile.lock
									
									
									
										generated
									
									
									
								
							|  | @ -1,7 +1,7 @@ | |||
| { | ||||
|     "_meta": { | ||||
|         "hash": { | ||||
|             "sha256": "ee32788aeebfec6cf37be58728aa8f66afdc8783d61e401722317295a45b5e03" | ||||
|             "sha256": "a5459836de6fd359bbfc6b9783a5c4f2e451a48bfefd7b633d48b3d55ab73c48" | ||||
|         }, | ||||
|         "pipfile-spec": 6, | ||||
|         "requires": { | ||||
|  | @ -104,14 +104,14 @@ | |||
|         }, | ||||
|         "soupsieve": { | ||||
|             "hashes": [ | ||||
|                 "sha256:afa56bf14907bb09403e5d15fbed6275caa4174d36b975226e3b67a3bb6e2c4b", | ||||
|                 "sha256:eaed742b48b1f3e2d45ba6f79401b2ed5dc33b2123dfe216adb90d4bfa0ade26" | ||||
|                 "sha256:3aef141566afd07201b525c17bfaadd07580a8066f82b57f7c9417f26adbd0a3", | ||||
|                 "sha256:e41a65e99bd125972d84221022beb1e4b5cfc68fa12c170c39834ce32d1b294c" | ||||
|             ], | ||||
|             "version": "==1.8" | ||||
|             "version": "==1.9" | ||||
|         }, | ||||
|         "swagger-client": { | ||||
|             "git": "https://gitea-gimli.kam.mff.cuni.cz/vasek/gitea-swagger-client", | ||||
|             "ref": "2a6ff3b1aaf0a2fe27453c8f4fdde23feb3a640f" | ||||
|             "git": "https://gitea.ks.matfyz.cz/vasek/gitea-swagger-client", | ||||
|             "ref": "ed03b192ca0ba6fa7fb9bfacd567b8fbfb306355" | ||||
|         }, | ||||
|         "termcolor": { | ||||
|             "hashes": [ | ||||
|  |  | |||
|  | @ -35,7 +35,7 @@ standardní vygenerovaný webový interface ke specifikaci. Specifikace samotná | |||
| `/swagger.v1.json`. | ||||
| 
 | ||||
| K tomuto API je vygenerován klient aktuálně se nacházející | ||||
|  [zde](https://gitea-gimli.kam.mff.cuni.cz/vasek/gitea-swagger-client). Kód je v podstatě čistě vygenerovaný nástrojem | ||||
|  [zde](https://gitea.ks.matfyz.cz/vasek/gitea-swagger-client). Kód je v podstatě čistě vygenerovaný nástrojem | ||||
|  `swagger-codegen` (link v repozitáři s klientem). Obsahuje akorát dva drobné patche, protože bez nich vůbec nejde | ||||
|  naimportovat. | ||||
|   | ||||
|  |  | |||
							
								
								
									
										26
									
								
								register.py
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								register.py
									
									
									
									
									
								
							|  | @ -14,6 +14,8 @@ import string | |||
| 
 | ||||
| 
 | ||||
| # load configuration | ||||
| from typing import List | ||||
| 
 | ||||
| try: | ||||
|     import config | ||||
| except ImportError: | ||||
|  | @ -63,20 +65,22 @@ def does_organization_exist(org_api: OrganizationApi, orgname: str) -> bool: | |||
|             raise e | ||||
| 
 | ||||
| 
 | ||||
| def does_organization_have_org_team(org_api: OrganizationApi, orgname: str) -> bool: | ||||
|     teams = org_api.org_list_teams(orgname) | ||||
|     for t in teams: | ||||
|         if 'org' == t.name: | ||||
|             return True | ||||
|     return False | ||||
| def does_organization_have_team_with_name(org_api: OrganizationApi, orgname: str, teamname: str) -> bool: | ||||
|     try: | ||||
|         get_team_id_by_name(org_api, orgname, teamname) | ||||
|         return True | ||||
|     except AssertionError: | ||||
|         return False | ||||
| 
 | ||||
| 
 | ||||
| def get_org_team_id(org_api: OrganizationApi, orgname: str) -> int: | ||||
| def get_team_id_by_name(org_api: OrganizationApi, orgname: str, teamname: str) -> int: | ||||
|     """Vraci bud ID teamu, nebo hazi AssertionError, pokud team neexistuje.""" | ||||
| 
 | ||||
|     teams = org_api.org_list_teams(orgname) | ||||
|     for t in teams: | ||||
|         if 'org' == t.name: | ||||
|         if teamname == t.name: | ||||
|             return t.id | ||||
|     raise AssertionError('Tento kod mel byt unreachable. Zmizel tym orgu za behu skriptu?') | ||||
|     raise AssertionError("Team se jmenem '{}' v organizaci '{}' neexistuje!".format(teamname, orgname)) | ||||
| 
 | ||||
| 
 | ||||
| def validate(func_check, message: str): | ||||
|  | @ -169,11 +173,11 @@ def register(username: str, seminar: str, fullname: str, email: str, host, admin | |||
|     # kontrola predpokladu o stavu systemu | ||||
|     validate(lambda: not does_user_exist(user_api, username), "Uzivatelske jmeno je volne...") | ||||
|     validate(lambda: does_organization_exist(org_api, seminar), "Organizace pro seminar existuje...") | ||||
|     validate(lambda: does_organization_have_org_team(org_api, seminar), "V danem seminari existuje team 'org'...") | ||||
|     validate(lambda: does_organization_have_team_with_name(org_api, seminar, 'org'), "V danem seminari existuje team 'org'...") | ||||
|     print(text_green('Zakladni predpoklady pro uspesne zalozeni uctu splneny!\n')) | ||||
| 
 | ||||
|     # nasbirame vsechny potrebne informace | ||||
|     org_team_id = get_org_team_id(org_api, seminar) | ||||
|     org_team_id = get_team_id_by_name(org_api, seminar, 'org') | ||||
| 
 | ||||
|     # pripravime si uzivatele na zalozeni | ||||
|     create_user_req = CreateUserOption(email=email, full_name=fullname, username=username, | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue