Skip to content

Commit

Permalink
Fix regression: couldn't comment other users' media. Bump to 0.8.2
Browse files Browse the repository at this point in the history
  • Loading branch information
elonen committed Aug 19, 2024
1 parent cab061f commit 033ed5c
Show file tree
Hide file tree
Showing 13 changed files with 54 additions and 19 deletions.
2 changes: 1 addition & 1 deletion Dockerfile.server
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM rust:1.78-slim-bookworm AS rust-bookworm-slim
FROM rust:1.80-slim-bookworm AS rust-bookworm-slim

# ----------------------------------

Expand Down
6 changes: 6 additions & 0 deletions client/debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
clapshot-client (0.8.2) bookworm; urgency=low

* (No changes, follow server versioning)

-- Jarno Elonen <elonen@iki.fi> Mon, 19 Aug 2024 22:30:00 +0200

clapshot-client (0.8.1) bookworm; urgency=low

* New feature: configurable branding (logo and name)
Expand Down
4 changes: 2 additions & 2 deletions client/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions client/package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"name": "clapshot-client",
"private": true,
"version": "0.8.1",
"version": "0.8.2",
"clapshot_min_server_version": "0.8.1",
"clapshot_max_server_version": "0.8.1",
"clapshot_max_server_version": "0.8.2",
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
6 changes: 6 additions & 0 deletions organizer/basic_folders/debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
clapshot-organizer-basic-folders (0.8.2) bookworm; urgency=low

* (No changes, follow server versioning)

-- Jarno Elonen <elonen@iki.fi> Mon, 19 Aug 2024 22:30:00 +0200

clapshot-organizer-basic-folders (0.8.1) bookworm; urgency=low

* (Not many changes in organizer. Keep version in sync with client.)
Expand Down
2 changes: 1 addition & 1 deletion organizer/basic_folders/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def run(self):

setup(
name='clapshot_organizer_basic_folders',
version='0.8.1',
version='0.8.2',
packages=find_packages(),
include_package_data=True,

Expand Down
2 changes: 1 addition & 1 deletion protobuf/libs/rust/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lib-clapshot-grpc"
version = "0.8.1"
version = "0.8.2"
edition = "2021"

description = "Clapshot gRPC prototypes in Rust"
Expand Down
4 changes: 2 additions & 2 deletions server/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion server/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "clapshot-server"
version = "0.8.1"
version = "0.8.2"
edition = "2021"

description = "Clapshot video/media review tool (backend)"
Expand Down
6 changes: 6 additions & 0 deletions server/debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
clapshot-server (0.8.2) bookworm; urgency=low

* Fix regression: commenting on other users' videos failed

-- Jarno Elonen <elonen@iki.fi> Mon, 19 Aug 2024 22:30:00 +0200

clapshot-server (0.8.1) bookworm; urgency=low

* (Not many changes in server. Keep version in sync with client.)
Expand Down
21 changes: 19 additions & 2 deletions server/src/api_server/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,6 @@ async fn test_api_add_plain_comment()
let drw_data = "data:image/webp;charset=utf-8;base64,SU1BR0VfREFUQQ=="; // "IMAGE_DATA"

send_server_cmd!(ws, AddComment, AddComment{media_file_id: media.id.clone(), comment: "Test comment 2".into(), drawing: Some(drw_data.into()), ..Default::default()});

let c = expect_client_cmd!(&mut ws, AddComments);
assert_eq!(c.comments.len(), 1);
assert_eq!(c.comments[0].comment, "Test comment 2");
Expand All @@ -228,12 +227,30 @@ async fn test_api_add_plain_comment()

// Break the database
ts.db.break_db();
send_server_cmd!(ws, AddComment, AddComment{media_file_id: media.id.clone(), comment: "Test comment 4".into(), ..Default::default()});
send_server_cmd!(ws, AddComment, AddComment{media_file_id: media.id.clone(), comment: "Test comment 5".into(), ..Default::default()});
expect_user_msg(&mut ws, proto::user_message::Type::Error).await;
}
}


#[tokio::test]
#[traced_test]
async fn test_api_comment_other_users_video()
{
api_test! {[ws, ts]
let other_users_vid = &ts.media_files[1];
assert_ne!(other_users_vid.user_id, ts.media_files[0].user_id);

open_media_file(&mut ws, &other_users_vid.id).await;

// Add comment to someone else's media file
send_server_cmd!(ws, AddComment, AddComment{media_file_id: other_users_vid.id.clone(), comment: "Comment to other user's video".into(), ..Default::default()});
let c = expect_client_cmd!(&mut ws, AddComments);
assert_eq!(c.comments.len(), 1);
assert_eq!(c.comments[0].comment, "Comment to other user's video");
}
}

#[tokio::test]
#[traced_test]
async fn test_api_edit_comment()
Expand Down
6 changes: 3 additions & 3 deletions server/src/api_server/ws_handers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ pub async fn msg_add_comment(data: &proto::client::client_to_server_cmd::AddComm

let media_file_id = match get_media_file_or_send_error(Some(&data.media_file_id), &Some(ses), server).await? {
Some(v) => {
let default_perm = ses.user_id == (&v).user_id || ses.is_admin;
let default_perm = true; // anyone can comment on any media file
org_authz_with_default(&ses.org_session, "comment media file", true, server, &ses.organizer,
default_perm, AuthzTopic::MediaFile(&v, authz_req::media_file_op::Op::Comment)).await?;
v.id
Expand Down Expand Up @@ -490,7 +490,7 @@ pub async fn msg_edit_subtitle_info(data: &EditSubtitleInfo, ses: &mut UserSessi
let mut sub = models::Subtitle::get(conn, &id).map_err(|e| anyhow!("Failed to get subtitle: {:?}", e))?;
let mf = models::MediaFile::get(conn, &sub.media_file_id).map_err(|e| anyhow!("Failed to get media file: {:?}", e))?;

let default_perm = ses.user_id == (&sub).media_file_id || ses.is_admin;
let default_perm = ses.user_id == mf.user_id || ses.is_admin;
org_authz_with_default(&ses.org_session, "edit subtitle", true, server, &ses.organizer,
default_perm, AuthzTopic::MediaFile(&mf, authz_req::media_file_op::Op::Edit)).await?;

Expand Down Expand Up @@ -520,7 +520,7 @@ pub async fn msg_del_subtitle(data: &DelSubtitle, ses: &mut UserSession, server:
let sub = models::Subtitle::get(conn, &id).map_err(|e| anyhow!("Failed to get subtitle: {:?}", e))?;
let mf = models::MediaFile::get(conn, &sub.media_file_id).map_err(|e| anyhow!("Failed to get media file: {:?}", e))?;

let default_perm = ses.user_id == (&sub).media_file_id || ses.is_admin;
let default_perm = ses.user_id == mf.user_id || ses.is_admin;
org_authz_with_default(&ses.org_session, "delete subtitle", true, server, &ses.organizer,
default_perm, AuthzTopic::MediaFile(&mf, authz_req::media_file_op::Op::Edit)).await?;

Expand Down
8 changes: 4 additions & 4 deletions server/src/log.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ use tracing_subscriber::{fmt, EnvFilter, fmt::time::OffsetTime};
/// It supports transparent file reopen on SIGUSR1 (for `logrotate`),
/// and can be configured for JSON or plain text logging.
pub struct ClapshotLogger {
pub log_writer: Arc<Mutex<Option<ReopenableFileWriter>>>,
pub guard: tracing_appender::non_blocking::WorkerGuard,
pub _log_writer: Arc<Mutex<Option<ReopenableFileWriter>>>,
pub _guard: tracing_appender::non_blocking::WorkerGuard,
}

impl ClapshotLogger
Expand Down Expand Up @@ -95,7 +95,7 @@ impl ClapshotLogger
}
.expect("tracing::subscriber::set_global_default failed");

Ok(ClapshotLogger { log_writer, guard })
Ok(ClapshotLogger { _log_writer: log_writer, _guard: guard })
}
}

Expand Down Expand Up @@ -174,7 +174,7 @@ fn test_log_rotation_on_sigusr1() {

tracing::info!("Logging after rotation");
logger
.log_writer
._log_writer
.lock()
.expect("Failed to lock log writer")
.as_mut()
Expand Down

0 comments on commit 033ed5c

Please sign in to comment.