single-user-edit-page #992
@@ -115,7 +115,7 @@ test("Cox can start and finish trip", async ({ page }, testInfo) => {
 | 
				
			|||||||
  await page.getByPlaceholder("Passwort").press("Enter");
 | 
					  await page.getByPlaceholder("Passwort").press("Enter");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  await page.goto("/log/show");
 | 
					  await page.goto("/log/show");
 | 
				
			||||||
  await page.getByText('(cox2)').click();
 | 
					  await page.getByRole('link', { name: 'Joe' }).nth(1).click();
 | 
				
			||||||
  page.once("dialog", (dialog) => {
 | 
					  page.once("dialog", (dialog) => {
 | 
				
			||||||
    dialog.accept().catch(() => {});
 | 
					    dialog.accept().catch(() => {});
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
@@ -208,7 +208,6 @@ test("Kiosk can start and finish trip", async ({ page }, testInfo) => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  await page.getByRole('link', { name: 'Logbuch' }).click();
 | 
					  await page.getByRole('link', { name: 'Logbuch' }).click();
 | 
				
			||||||
  await expect(page.locator('body')).toContainText('Joe');
 | 
					  await expect(page.locator('body')).toContainText('Joe');
 | 
				
			||||||
  await expect(page.locator('body')).toContainText('(cox2)');
 | 
					 | 
				
			||||||
  await expect(page.locator('body')).toContainText('Ottensheim (25 km)');
 | 
					  await expect(page.locator('body')).toContainText('Ottensheim (25 km)');
 | 
				
			||||||
  await expect(page.locator('body')).toContainText('Ruderer: cox2, rower2');
 | 
					  await expect(page.locator('body')).toContainText('Ruderer: cox2, rower2');
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
@@ -225,7 +224,7 @@ test("Kiosk can start and finish trip", async ({ page }, testInfo) => {
 | 
				
			|||||||
  await page.getByPlaceholder("Passwort").press("Enter");
 | 
					  await page.getByPlaceholder("Passwort").press("Enter");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  await page.goto("/log/show");
 | 
					  await page.goto("/log/show");
 | 
				
			||||||
  await page.getByText('(cox2)').click();
 | 
					  await page.getByRole('link', { name: 'Joe' }).nth(1).click();
 | 
				
			||||||
  page.once("dialog", (dialog) => {
 | 
					  page.once("dialog", (dialog) => {
 | 
				
			||||||
    dialog.accept().catch(() => {});
 | 
					    dialog.accept().catch(() => {});
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
@@ -286,7 +285,6 @@ test("Cox can start and finish trip with cox steering only", async ({ page }, te
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  await page.goto('/log/show');
 | 
					  await page.goto('/log/show');
 | 
				
			||||||
  await expect(page.locator('body')).toContainText('cox_only_steering_boat');
 | 
					  await expect(page.locator('body')).toContainText('cox_only_steering_boat');
 | 
				
			||||||
  await expect(page.locator('body')).toContainText('(cox2 - handgesteuert)');
 | 
					 | 
				
			||||||
  await expect(page.locator('body')).toContainText('Ottensheim (25 km)');
 | 
					  await expect(page.locator('body')).toContainText('Ottensheim (25 km)');
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -302,7 +300,7 @@ test("Cox can start and finish trip with cox steering only", async ({ page }, te
 | 
				
			|||||||
  await page.getByPlaceholder("Passwort").press("Enter");
 | 
					  await page.getByPlaceholder("Passwort").press("Enter");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  await page.goto("/log/show");
 | 
					  await page.goto("/log/show");
 | 
				
			||||||
  await page.getByText('(cox2 - handgesteuert)').click();
 | 
					  await page.getByRole("link", { name: "cox_only_steering_boat" }).click();
 | 
				
			||||||
  page.once("dialog", (dialog) => {
 | 
					  page.once("dialog", (dialog) => {
 | 
				
			||||||
    dialog.accept().catch(() => {});
 | 
					    dialog.accept().catch(() => {});
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
@@ -371,7 +369,7 @@ test("Kiosk can start and finish trip in one stop", async ({ page }, testInfo) =
 | 
				
			|||||||
  await page.getByPlaceholder("Passwort").press("Enter");
 | 
					  await page.getByPlaceholder("Passwort").press("Enter");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  await page.goto("/log/show");
 | 
					  await page.goto("/log/show");
 | 
				
			||||||
  await page.getByText('(cox2)').click();
 | 
					  await page.getByRole('link', { name: 'Joe' }).nth(1).click();
 | 
				
			||||||
  page.once("dialog", (dialog) => {
 | 
					  page.once("dialog", (dialog) => {
 | 
				
			||||||
    dialog.accept().catch(() => {});
 | 
					    dialog.accept().catch(() => {});
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -577,10 +577,6 @@ ASKÖ Ruderverein Donau Linz", self.name),
 | 
				
			|||||||
        .execute(db)
 | 
					        .execute(db)
 | 
				
			||||||
        .await
 | 
					        .await
 | 
				
			||||||
        .unwrap(); //Okay, because we can only create a User of a valid id
 | 
					        .unwrap(); //Okay, because we can only create a User of a valid id
 | 
				
			||||||
        ActivityBuilder::new(&format!("User {self} hat sich eingeloggt."))
 | 
					 | 
				
			||||||
            .relevant_for_user(self)
 | 
					 | 
				
			||||||
            .save(db)
 | 
					 | 
				
			||||||
            .await;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pub async fn delete(&self, db: &SqlitePool, deleted_by: &ManageUserUser) {
 | 
					    pub async fn delete(&self, db: &SqlitePool, deleted_by: &ManageUserUser) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,4 @@
 | 
				
			|||||||
use rocket::{
 | 
					use rocket::{
 | 
				
			||||||
    FromForm, Request, Route, State,
 | 
					 | 
				
			||||||
    form::Form,
 | 
					    form::Form,
 | 
				
			||||||
    get,
 | 
					    get,
 | 
				
			||||||
    http::{Cookie, CookieJar},
 | 
					    http::{Cookie, CookieJar},
 | 
				
			||||||
@@ -9,11 +8,13 @@ use rocket::{
 | 
				
			|||||||
    response::{Flash, Redirect},
 | 
					    response::{Flash, Redirect},
 | 
				
			||||||
    routes,
 | 
					    routes,
 | 
				
			||||||
    time::{Duration, OffsetDateTime},
 | 
					    time::{Duration, OffsetDateTime},
 | 
				
			||||||
 | 
					    FromForm, Request, Route, State,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
use rocket_dyn_templates::{Template, context, tera};
 | 
					use rocket_dyn_templates::{context, tera, Template};
 | 
				
			||||||
use sqlx::SqlitePool;
 | 
					use sqlx::SqlitePool;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::model::{
 | 
					use crate::model::{
 | 
				
			||||||
 | 
					    activity::ActivityBuilder,
 | 
				
			||||||
    log::Log,
 | 
					    log::Log,
 | 
				
			||||||
    user::{LoginError, User},
 | 
					    user::{LoginError, User},
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -82,13 +83,12 @@ async fn login(
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    cookies.add_private(Cookie::new("loggedin_user", format!("{}", user.id)));
 | 
					    cookies.add_private(Cookie::new("loggedin_user", format!("{}", user.id)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Log::create(
 | 
					    ActivityBuilder::new(&format!(
 | 
				
			||||||
        db,
 | 
					        "{user} hat sich eingeloggt (User-Agent: {})",
 | 
				
			||||||
        format!(
 | 
					        agent.0
 | 
				
			||||||
            "Succ login of {} with this useragent: {}",
 | 
					    ))
 | 
				
			||||||
            login.name, agent.0
 | 
					    .relevant_for_user(&user)
 | 
				
			||||||
        ),
 | 
					    .save(db)
 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    .await;
 | 
					    .await;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Check for redirect_url cookie and redirect accordingly
 | 
					    // Check for redirect_url cookie and redirect accordingly
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,7 +26,7 @@
 | 
				
			|||||||
            {% for log in logs %}
 | 
					            {% for log in logs %}
 | 
				
			||||||
                {% set_global allowed_to_edit = false %}
 | 
					                {% set_global allowed_to_edit = false %}
 | 
				
			||||||
                {% if loggedin_user %}
 | 
					                {% if loggedin_user %}
 | 
				
			||||||
                    {% if "Vorstand" in loggedin_user.roles %}
 | 
					                    {% if "Vorstand" in loggedin_user.roles or "admin" in loggedin_user.roles %}
 | 
				
			||||||
                        {% set_global allowed_to_edit = true %}
 | 
					                        {% set_global allowed_to_edit = true %}
 | 
				
			||||||
                    {% endif %}
 | 
					                    {% endif %}
 | 
				
			||||||
                {% endif %}
 | 
					                {% endif %}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user