Skip to content

Commit 6767dd2

Browse files
authored
Deprecate hashed_pwd and relax testcase endpoint decoding limit (#85)
* relax max frame size for testcase endpoint * chore(backend)!: deprecated updating password using UserFullInfo
1 parent 4cc275f commit 6767dd2

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

backend/src/endpoint/user.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ impl<'a> From<WithAuth<'a, Model>> for UserFullInfo {
1313
let model = value.1;
1414
let writable = Entity::writable(&model, value.0);
1515
UserFullInfo {
16-
hashed_pwd: model.password.clone(),
1716
info: model.into(),
1817
writable,
1918
}

backend/src/server/mod.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use tonic_web::GrpcWebLayer;
2727
use tower_http::cors::{AllowOrigin, Any, CorsLayer};
2828
use tracing::Instrument;
2929

30-
const MAX_FRAME_SIZE: u32 = 1024 * 1024 * 8;
30+
const MAX_TESTCASE_CODEX_SIZE: usize = 1024 * 1024 * 16;
3131

3232
// from https://docs.rs/tonic-web/0.11.0/src/tonic_web/lib.rs.html#140
3333
const DEFAULT_EXPOSED_HEADERS: [&str; 3] =
@@ -143,13 +143,16 @@ impl Server {
143143
server
144144
.layer(cors)
145145
.layer(GrpcWebLayer::new())
146-
.max_frame_size(Some(MAX_FRAME_SIZE))
147146
.add_service(ProblemServer::new(self_.clone()))
148147
.add_service(EducationServer::new(self_.clone()))
149148
.add_service(UserServer::new(self_.clone()))
150149
.add_service(TokenServer::new(self_.clone()))
151150
.add_service(ContestServer::new(self_.clone()))
152-
.add_service(TestcaseServer::new(self_.clone()))
151+
.add_service(
152+
TestcaseServer::new(self_.clone())
153+
.max_decoding_message_size(MAX_TESTCASE_CODEX_SIZE)
154+
.max_encoding_message_size(MAX_TESTCASE_CODEX_SIZE),
155+
)
153156
.add_service(SubmitServer::new(self_.clone()))
154157
.add_service(ChatServer::new(self_.clone()))
155158
.add_service(AnnouncementServer::new(self_.clone()))

grpc/proto/backend.proto

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -609,6 +609,13 @@ message ListContestResponse {
609609
message CreateContestRequest {
610610
message Info {
611611
required string title = 1;
612+
// if begin is set, the contest will be open automatically even if contest is private
613+
//
614+
// try to close contest when it's open bacause of time reached will result in end being set to current time
615+
//
616+
// if contest was made public after end, both begin and end timer would be cancel and contest would be immediately visible to anyone
617+
//
618+
// if contest end before it begin, the contest would be public
612619
required google.protobuf.Timestamp begin = 2;
613620
required google.protobuf.Timestamp end = 3;
614621
required string tags = 6;
@@ -697,6 +704,7 @@ service Contest {
697704
rpc Update(UpdateContestRequest) returns (google.protobuf.Empty);
698705
rpc Remove(RemoveRequest) returns (google.protobuf.Empty);
699706

707+
// public means the contest itself is visible, it may be guarded by password or so
700708
rpc Publish(PublishRequest) returns (google.protobuf.Empty);
701709
rpc Unpublish(PublishRequest) returns (google.protobuf.Empty);
702710

@@ -711,8 +719,8 @@ message UserInfo {
711719

712720
message UserFullInfo {
713721
required UserInfo info = 1;
714-
required bytes hashed_pwd = 2;
715722
required bool writable = 3;
723+
// require string description = 4;
716724
}
717725

718726
message ListUserResponse {
@@ -726,6 +734,7 @@ message CreateUserRequest {
726734
required string username = 1;
727735
required string password = 2;
728736
required Role role = 4;
737+
// required string description = 5;
729738
}
730739
required Info info = 1;
731740
// can prevent duplicate request.
@@ -739,6 +748,7 @@ message UpdateUserRequest {
739748
optional string username = 1;
740749
optional string password = 2;
741750
optional Role role = 3;
751+
// optional string description = 4;
742752
}
743753
required Info info = 1;
744754
required int32 id = 2;

0 commit comments

Comments
 (0)