fix/ci #1023
							
								
								
									
										34
									
								
								.gitea/workflows/update.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								.gitea/workflows/update.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| name: Update Cargo Dependencies | ||||
|  | ||||
| on: | ||||
|   schedule: | ||||
|     - cron: '0 2 * * 5'  # Run weekly on Friday at 2am | ||||
|   workflow_dispatch:  # Allow manual triggering | ||||
|  | ||||
| jobs: | ||||
|   update-dependencies: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: git.hofer.link/philipp/ci-images:rust-latest | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
|  | ||||
|       - name: Update dependencies | ||||
|         run: | | ||||
|           cargo upgrade | ||||
|           cargo update | ||||
|  | ||||
|       - name: Create Pull Request | ||||
|         uses: https://git.hofer.link/philipp/create-pull-request@18ef1fdad70eec569ab10292c1fa79c1b5296370 | ||||
|         with: | ||||
|           token: ${{ secrets.GITEATOKEN }} | ||||
|           commit-message: Update Cargo dependencies | ||||
|           title: Update Cargo dependencies | ||||
|           body: | | ||||
|             This PR updates Cargo dependencies to their latest versions. | ||||
|  | ||||
|             @philipp | ||||
|  | ||||
|             - Run `cargo upgrade` to update version requirements in Cargo.toml | ||||
|             - Run `cargo update` to update Cargo.lock | ||||
|           branch: update-cargo-dependencies | ||||
|           delete-branch: true | ||||
| @@ -17,11 +17,14 @@ pub struct Activity { | ||||
|     pub keep_until: Option<NaiveDateTime>, | ||||
| } | ||||
|  | ||||
| // TODO: add `reason` as additional db field, to be able to query and show this to the users | ||||
| pub enum Reason<'a> { | ||||
|     // `User` tried to login with `String` as UserAgent | ||||
|     SuccLogin(&'a User, String), | ||||
|     // `User` changed the data of `User`, explanation in `String` | ||||
|     UserDataChange(&'a ManageUserUser, &'a User, String), | ||||
|     // New Note for User | ||||
|     NewUserNote(&'a ManageUserUser, &'a User, String), | ||||
| } | ||||
|  | ||||
| impl From<Reason<'_>> for ActivityBuilder { | ||||
| @@ -36,6 +39,9 @@ impl From<Reason<'_>> for ActivityBuilder { | ||||
|                 "{changed_by} hat die Daten von {changed_user} aktualisiert: {explanation}" | ||||
|             )) | ||||
|             .relevant_for_user(changed_user), | ||||
|             Reason::NewUserNote(changed_by, user, explanation) => { | ||||
|                 Self::new(&format!("({changed_by}) {explanation}")).relevant_for_user(user) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -17,7 +17,6 @@ impl User { | ||||
|         &self, | ||||
|         db: &SqlitePool, | ||||
|         updated_by: &ManageUserUser, | ||||
|         user: &User, | ||||
|         note: &str, | ||||
|     ) -> Result<(), String> { | ||||
|         let note = note.trim(); | ||||
| @@ -25,7 +24,7 @@ impl User { | ||||
|         ActivityBuilder::from(activity::Reason::UserDataChange( | ||||
|             updated_by, | ||||
|             self, | ||||
|             format!("Neue Notizen: {note}"), | ||||
|             note.to_string(), | ||||
|         )) | ||||
|         .save(db) | ||||
|         .await; | ||||
|   | ||||
| @@ -919,7 +919,7 @@ impl UserWithMembershipPdf { | ||||
|  | ||||
| #[cfg(test)] | ||||
| mod test { | ||||
|     use crate::testdb; | ||||
|     use crate::{model::user::ManageUserUser, testdb}; | ||||
|  | ||||
|     use super::User; | ||||
|     use sqlx::SqlitePool; | ||||
| @@ -994,8 +994,9 @@ mod test { | ||||
|     fn reset() { | ||||
|         let pool = testdb!(); | ||||
|         let user = User::find_by_id(&pool, 1).await.unwrap(); | ||||
|         let changed_by = ManageUserUser::new(&pool, &user).await.unwrap(); | ||||
|  | ||||
|         user.reset_pw(&pool).await; | ||||
|         user.reset_pw(&pool, &changed_by).await; | ||||
|  | ||||
|         let user = User::find_by_id(&pool, 1).await.unwrap(); | ||||
|         assert_eq!(user.pw, None); | ||||
|   | ||||
| @@ -7,11 +7,11 @@ use crate::{ | ||||
|         mail::valid_mails, | ||||
|         role::Role, | ||||
|         user::{ | ||||
|             AdminUser, AllowedToEditPaymentStatusUser, ManageUserUser, User, UserWithDetails, | ||||
|             UserWithMembershipPdf, UserWithRolesAndMembershipPdf, VorstandUser, | ||||
|             clubmember::ClubMemberUser, foerdernd::FoerderndUser, member::Member, | ||||
|             regular::RegularUser, scheckbuch::ScheckbuchUser, schnupperant::SchnupperantUser, | ||||
|             schnupperinterest::SchnupperInterestUser, unterstuetzend::UnterstuetzendUser, | ||||
|             AdminUser, AllowedToEditPaymentStatusUser, ManageUserUser, User, UserWithDetails, | ||||
|             UserWithMembershipPdf, UserWithRolesAndMembershipPdf, VorstandUser, | ||||
|         }, | ||||
|     }, | ||||
|     tera::Config, | ||||
| @@ -19,7 +19,6 @@ use crate::{ | ||||
| use chrono::NaiveDate; | ||||
| use futures::future::join_all; | ||||
| use rocket::{ | ||||
|     FromForm, Request, Route, State, | ||||
|     form::Form, | ||||
|     fs::TempFile, | ||||
|     get, | ||||
| @@ -27,9 +26,9 @@ use rocket::{ | ||||
|     post, | ||||
|     request::{FlashMessage, FromRequest, Outcome}, | ||||
|     response::{Flash, Redirect}, | ||||
|     routes, | ||||
|     routes, FromForm, Request, Route, State, | ||||
| }; | ||||
| use rocket_dyn_templates::{Template, tera::Context}; | ||||
| use rocket_dyn_templates::{tera::Context, Template}; | ||||
| use sqlx::SqlitePool; | ||||
|  | ||||
| // Custom request guard to extract the Referer header | ||||
| @@ -350,7 +349,7 @@ async fn add_note( | ||||
|         ); | ||||
|     }; | ||||
|  | ||||
|     match user.add_note(db, &admin, &user, &data.note).await { | ||||
|     match user.add_note(db, &admin, &data.note).await { | ||||
|         Ok(_) => Flash::success( | ||||
|             Redirect::to(format!("/admin/user/{}", user.id)), | ||||
|             "Notiz hinzugefügt", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user