Skip to content

Commit a3b2bdb

Browse files
committed
implement collection, org creation hard caps
1 parent a3a346c commit a3b2bdb

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

apps/labrinth/src/routes/v3/collections.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use crate::auth::checks::is_visible_collection;
22
use crate::auth::{filter_visible_collections, get_user_from_headers};
33
use crate::database::models::{
44
collection_item, generate_collection_id, project_item,
5+
user_limits::UserLimits,
56
};
67
use crate::database::redis::RedisPool;
78
use crate::file_hosting::{FileHost, FileHostPublicity};
@@ -76,6 +77,11 @@ pub async fn collection_create(
7677
.await?
7778
.1;
7879

80+
let limits = UserLimits::get(&current_user, &client).await?;
81+
if limits.current.collections + 1 >= limits.max.collections {
82+
return Err(CreateError::LimitReached);
83+
}
84+
7985
collection_create_data.validate().map_err(|err| {
8086
CreateError::InvalidInput(validation_errors_to_string(err, None))
8187
})?;

apps/labrinth/src/routes/v3/organizations.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use crate::auth::{filter_visible_projects, get_user_from_headers};
77
use crate::database::models::team_item::DBTeamMember;
88
use crate::database::models::{
99
DBOrganization, generate_organization_id, team_item,
10+
user_limits::UserLimits,
1011
};
1112
use crate::database::redis::RedisPool;
1213
use crate::file_hosting::{FileHost, FileHostPublicity};
@@ -136,6 +137,11 @@ pub async fn organization_create(
136137
.await?
137138
.1;
138139

140+
let limits = UserLimits::get(&current_user, &pool).await?;
141+
if limits.current.organizations + 1 >= limits.max.organizations {
142+
return Err(CreateError::LimitReached);
143+
}
144+
139145
new_organization.validate().map_err(|err| {
140146
CreateError::ValidationError(validation_errors_to_string(err, None))
141147
})?;

0 commit comments

Comments
 (0)