Compare commits
	
		
			1 Commits
		
	
	
		
			renovate/t
			...
			cfff25dc3e
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| cfff25dc3e | 
| @@ -14,7 +14,7 @@ steps: | ||||
|   - cargo test | ||||
|  | ||||
| - name: app_deploy | ||||
|   image: node:24 | ||||
|   image: node:23 | ||||
|   environment: | ||||
|     AWS_ACCESS_KEY_ID: | ||||
|       from_secret: AWS_ACCESS_KEY_ID | ||||
|   | ||||
							
								
								
									
										1125
									
								
								geneit_app/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1125
									
								
								geneit_app/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -12,45 +12,45 @@ | ||||
|   "dependencies": { | ||||
|     "@emotion/react": "^11.14.0", | ||||
|     "@emotion/styled": "^11.14.1", | ||||
|     "@fontsource/roboto": "^5.2.8", | ||||
|     "@fullcalendar/core": "^6.1.19", | ||||
|     "@fullcalendar/daygrid": "^6.1.19", | ||||
|     "@fullcalendar/interaction": "^6.1.19", | ||||
|     "@fullcalendar/list": "^6.1.19", | ||||
|     "@fullcalendar/react": "^6.1.19", | ||||
|     "@fontsource/roboto": "^5.2.6", | ||||
|     "@fullcalendar/core": "^6.1.17", | ||||
|     "@fullcalendar/daygrid": "^6.1.17", | ||||
|     "@fullcalendar/interaction": "^6.1.17", | ||||
|     "@fullcalendar/list": "^6.1.17", | ||||
|     "@fullcalendar/react": "^6.1.17", | ||||
|     "@mdi/js": "^7.4.47", | ||||
|     "@mdi/react": "^1.6.1", | ||||
|     "@mui/icons-material": "^7.2.0", | ||||
|     "@mui/lab": "^7.0.0-beta.17", | ||||
|     "@mui/material": "^7.2.0", | ||||
|     "@mui/x-data-grid": "^8.15.0", | ||||
|     "@mui/x-date-pickers": "^8.15.0", | ||||
|     "@mui/x-tree-view": "^8.15.0", | ||||
|     "@mui/icons-material": "^7.1.2", | ||||
|     "@mui/lab": "^7.0.0-beta.14", | ||||
|     "@mui/material": "^7.1.2", | ||||
|     "@mui/x-data-grid": "^7.29.8", | ||||
|     "@mui/x-date-pickers": "^7.29.4", | ||||
|     "@mui/x-tree-view": "^7.29.1", | ||||
|     "date-and-time": "^3.6.0", | ||||
|     "dayjs": "^1.11.18", | ||||
|     "dayjs": "^1.11.13", | ||||
|     "email-validator": "^2.0.4", | ||||
|     "filesize": "^11.0.13", | ||||
|     "jspdf": "^3.0.3", | ||||
|     "filesize": "^10.1.6", | ||||
|     "jspdf": "^3.0.1", | ||||
|     "mui-color-input": "^7.0.0", | ||||
|     "react": "^19.2.0", | ||||
|     "react-dom": "^19.2.0", | ||||
|     "react-easy-crop": "^5.5.3", | ||||
|     "react": "^19.0.0", | ||||
|     "react-dom": "^19.0.0", | ||||
|     "react-easy-crop": "^5.4.2", | ||||
|     "react-qr-code": "^2.0.18", | ||||
|     "react-router-dom": "^7.4.0", | ||||
|     "react-zoom-pan-pinch": "^3.7.0", | ||||
|     "svg2pdf.js": "^2.6.0" | ||||
|     "svg2pdf.js": "^2.5.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@eslint/js": "^9.38.0", | ||||
|     "@types/react": "^19.2.2", | ||||
|     "@types/react-dom": "^19.2.2", | ||||
|     "@vitejs/plugin-react": "^4.7.0", | ||||
|     "eslint": "^9.38.0", | ||||
|     "@eslint/js": "^9.29.0", | ||||
|     "@types/react": "^19.0.12", | ||||
|     "@types/react-dom": "^19.0.4", | ||||
|     "@vitejs/plugin-react": "^4.6.0", | ||||
|     "eslint": "^9.29.0", | ||||
|     "eslint-plugin-react-hooks": "^5.2.0", | ||||
|     "eslint-plugin-react-refresh": "^0.4.24", | ||||
|     "globals": "^16.4.0", | ||||
|     "typescript": "^5.9.3", | ||||
|     "typescript-eslint": "^8.46.2", | ||||
|     "vite": "^7.0.6" | ||||
|     "eslint-plugin-react-refresh": "^0.4.20", | ||||
|     "globals": "^16.0.0", | ||||
|     "typescript": "^5.8.3", | ||||
|     "typescript-eslint": "^8.24.1", | ||||
|     "vite": "^6.3.5" | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -137,10 +137,8 @@ function UsersTable(p: { | ||||
|             <GridActionsCellItem | ||||
|               icon={<SaveIcon />} | ||||
|               label="Save" | ||||
|               material={{ | ||||
|                 sx: { | ||||
|                   color: 'primary.main', | ||||
|                 }, | ||||
|               sx={{ | ||||
|                 color: "primary.main", | ||||
|               }} | ||||
|               onClick={handleSaveClick(id)} | ||||
|             />, | ||||
|   | ||||
							
								
								
									
										477
									
								
								geneit_backend/Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										477
									
								
								geneit_backend/Cargo.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -6,38 +6,38 @@ edition = "2024" | ||||
| # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||
|  | ||||
| [dependencies] | ||||
| log = "0.4.28" | ||||
| log = "0.4.27" | ||||
| env_logger = "0.11.8" | ||||
| clap = { version = "4.5.50", features = ["derive", "env"] } | ||||
| clap = { version = "4.5.40", features = ["derive", "env"] } | ||||
| lazy_static = "1.5.0" | ||||
| lazy-regex = "3.4.1" | ||||
| anyhow = "1.0.100" | ||||
| actix-web = "4.11.0" | ||||
| anyhow = "1.0.98" | ||||
| actix-web = "4.10.2" | ||||
| actix-cors = "0.7.1" | ||||
| actix-multipart = "0.7.2" | ||||
| actix-remote-ip = "0.1.0" | ||||
| futures-util = "0.3.31" | ||||
| diesel = { version = "2.2.12", features = ["postgres"] } | ||||
| diesel = { version = "2.2.11", features = ["postgres"] } | ||||
| diesel_migrations = "2.2.0" | ||||
| serde = { version = "1.0.228", features = ["derive"] } | ||||
| serde_json = "1.0.145" | ||||
| mailchecker = "6.0.19" | ||||
| redis = "0.32.7" | ||||
| lettre = "0.11.19" | ||||
| rand = "0.9.2" | ||||
| bcrypt = "0.17.1" | ||||
| serde = { version = "1.0.219", features = ["derive"] } | ||||
| serde_json = "1.0.140" | ||||
| mailchecker = "6.0.17" | ||||
| redis = "0.29.5" | ||||
| lettre = "0.11.17" | ||||
| rand = "0.9.1" | ||||
| bcrypt = "0.17.0" | ||||
| light-openid = "1.0.4" | ||||
| thiserror = "2.0.17" | ||||
| serde_with = "3.14.0" | ||||
| thiserror = "2.0.12" | ||||
| serde_with = "3.12.0" | ||||
| rust_iso3166 = "0.1.14" | ||||
| rust-s3 = "0.35.1" | ||||
| sha2 = "0.10.9" | ||||
| image = "0.25.8" | ||||
| uuid = { version = "1.17.0", features = ["v4"] } | ||||
| image = "0.25.6" | ||||
| uuid = { version = "1.16.0", features = ["v4"] } | ||||
| httpdate = "1.0.3" | ||||
| zip = "4.3.0" | ||||
| zip = "2.5.0" | ||||
| mime_guess = "2.0.5" | ||||
| tempfile = "3.20.0" | ||||
| tempfile = "3.19.1" | ||||
| base64 = "0.22.1" | ||||
| ical = { version = "0.11.0", features = ["generator", "ical", "vcard"] } | ||||
| chrono = "0.4.42" | ||||
| chrono = "0.4.41" | ||||
|   | ||||
| @@ -34,16 +34,18 @@ impl AccommodationRequest { | ||||
|         } | ||||
|         accommodation.name = self.name; | ||||
|  | ||||
|         if let Some(d) = &self.description | ||||
|             && !c.accommodation_description_len.validate(d) { | ||||
|         if let Some(d) = &self.description { | ||||
|             if !c.accommodation_description_len.validate(d) { | ||||
|                 return Err(AccommodationListControllerErr::InvalidDescriptionLength.into()); | ||||
|             } | ||||
|         } | ||||
|         accommodation.description.clone_from(&self.description); | ||||
|  | ||||
|         if let Some(c) = &self.color | ||||
|             && !lazy_regex::regex!("[a-fA-F0-9]{6}").is_match(c) { | ||||
|         if let Some(c) = &self.color { | ||||
|             if !lazy_regex::regex!("[a-fA-F0-9]{6}").is_match(c) { | ||||
|                 return Err(AccommodationListControllerErr::MalformedColor.into()); | ||||
|             } | ||||
|         } | ||||
|         accommodation.color.clone_from(&self.color); | ||||
|  | ||||
|         accommodation.need_validation = self.need_validation; | ||||
|   | ||||
| @@ -48,20 +48,23 @@ impl CoupleRequest { | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if let Some(husband) = self.husband | ||||
|             && !members_service::exists(couple.family_id(), husband).await? { | ||||
|         if let Some(husband) = self.husband { | ||||
|             if !members_service::exists(couple.family_id(), husband).await? { | ||||
|                 return Err(CoupleControllerErr::HusbandNotExisting.into()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if let Some(d) = &self.wedding | ||||
|             && !d.check() { | ||||
|         if let Some(d) = &self.wedding { | ||||
|             if !d.check() { | ||||
|                 return Err(CoupleControllerErr::MalformedDateOfWedding.into()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if let Some(d) = &self.divorce | ||||
|             && !d.check() { | ||||
|         if let Some(d) = &self.divorce { | ||||
|             if !d.check() { | ||||
|                 return Err(CoupleControllerErr::MalformedDateOfDivorce.into()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         couple.set_wife(self.wife); | ||||
|         couple.set_husband(self.husband); | ||||
|   | ||||
| @@ -95,10 +95,11 @@ fn check_opt_str_val( | ||||
|     c: SizeConstraint, | ||||
|     err: MemberControllerErr, | ||||
| ) -> anyhow::Result<()> { | ||||
|     if let Some(v) = val | ||||
|         && !c.validate(v) { | ||||
|     if let Some(v) = val { | ||||
|         if !c.validate(v) { | ||||
|             return Err(err.into()); | ||||
|         } | ||||
|     } | ||||
|     Ok(()) | ||||
| } | ||||
|  | ||||
| @@ -150,10 +151,11 @@ impl MemberRequest { | ||||
|             MemberControllerErr::MalformedEmailAddress, | ||||
|         )?; | ||||
|  | ||||
|         if let Some(mail) = &self.email | ||||
|             && !mailchecker::is_valid(mail) { | ||||
|         if let Some(mail) = &self.email { | ||||
|             if !mailchecker::is_valid(mail) { | ||||
|                 return Err(MemberControllerErr::InvalidEmailAddress.into()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         check_opt_str_val( | ||||
|             &self.phone, | ||||
| @@ -185,20 +187,23 @@ impl MemberRequest { | ||||
|             MemberControllerErr::MalformedCountry, | ||||
|         )?; | ||||
|  | ||||
|         if let Some(c) = &self.country | ||||
|             && !countries_utils::is_code_valid(c) { | ||||
|         if let Some(c) = &self.country { | ||||
|             if !countries_utils::is_code_valid(c) { | ||||
|                 return Err(MemberControllerErr::InvalidCountryCode.into()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if let Some(d) = &self.birth | ||||
|             && !d.check() { | ||||
|         if let Some(d) = &self.birth { | ||||
|             if !d.check() { | ||||
|                 return Err(MemberControllerErr::MalformedDateOfBirth.into()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if let Some(d) = &self.death | ||||
|             && !d.check() { | ||||
|         if let Some(d) = &self.death { | ||||
|             if !d.check() { | ||||
|                 return Err(MemberControllerErr::MalformedDateOfDeath.into()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         check_opt_str_val( | ||||
|             &self.note, | ||||
| @@ -216,10 +221,11 @@ impl MemberRequest { | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         if let Some(father) = self.father | ||||
|             && !members_service::exists(member.family_id(), father).await? { | ||||
|         if let Some(father) = self.father { | ||||
|             if !members_service::exists(member.family_id(), father).await? { | ||||
|                 return Err(MemberControllerErr::FatherNotExisting.into()); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         member.first_name = self.first_name; | ||||
|         member.last_name = self.last_name; | ||||
|   | ||||
| @@ -36,15 +36,16 @@ async fn get_photo(id: &PhotoIdPath, full_size: bool, req: HttpRequest) -> HttpR | ||||
|     }; | ||||
|  | ||||
|     // Check if an upload is un-necessary | ||||
|     if let Some(c) = req.headers().get(header::IF_NONE_MATCH) | ||||
|         && c.to_str().unwrap_or("") == hash { | ||||
|     if let Some(c) = req.headers().get(header::IF_NONE_MATCH) { | ||||
|         if c.to_str().unwrap_or("") == hash { | ||||
|             return Ok(HttpResponse::NotModified().finish()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if let Some(c) = req.headers().get(header::IF_MODIFIED_SINCE) { | ||||
|         let date_str = c.to_str().unwrap_or(""); | ||||
|         if let Ok(date) = httpdate::parse_http_date(date_str) | ||||
|             && date | ||||
|         if let Ok(date) = httpdate::parse_http_date(date_str) { | ||||
|             if date | ||||
|                 .add(Duration::from_secs(1)) | ||||
|                 .duration_since(UNIX_EPOCH) | ||||
|                 .unwrap() | ||||
| @@ -53,6 +54,7 @@ async fn get_photo(id: &PhotoIdPath, full_size: bool, req: HttpRequest) -> HttpR | ||||
|             { | ||||
|                 return Ok(HttpResponse::NotModified().finish()); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     let bytes = s3_connection::get_file(&match full_size { | ||||
|   | ||||
| @@ -149,10 +149,11 @@ pub mod loop_detection { | ||||
|  | ||||
|     impl LoopStack<'_> { | ||||
|         pub fn contains(&self, id: MemberID) -> bool { | ||||
|             if let Some(ls) = &self.prev | ||||
|                 && ls.contains(id) { | ||||
|             if let Some(ls) = &self.prev { | ||||
|                 if ls.contains(id) { | ||||
|                     return true; | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             self.curr == id | ||||
|         } | ||||
|   | ||||
| @@ -64,7 +64,7 @@ fn redis_key(state: &str) -> String { | ||||
|     format!("oidc-state-{state}") | ||||
| } | ||||
|  | ||||
| async fn load_provider_info(prov_id: &str) -> anyhow::Result<OpenIDClient<'_>> { | ||||
| async fn load_provider_info(prov_id: &str) -> anyhow::Result<OpenIDClient> { | ||||
|     let prov = AppConfig::get() | ||||
|         .openid_providers() | ||||
|         .into_iter() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user