From bee0abffff73804d816b90c7fd599e0a51c09d61 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Tue, 28 Aug 2018 02:01:35 -0500 Subject: Implement daily upload limit (#956) * Implement daily upload limit (ref #652) * remove duplicate code * review fixes * fix tests? * whitespace fixes, finish leftover todo * fix tests * added some new tests * use different config value for tests * remove todo --- server/controllers/api/config.ts | 7 +++++-- server/controllers/api/users/index.ts | 7 +++++-- server/controllers/api/users/me.ts | 4 +++- 3 files changed, 13 insertions(+), 5 deletions(-) (limited to 'server/controllers/api') diff --git a/server/controllers/api/config.ts b/server/controllers/api/config.ts index b25f739bb..3fd355e6d 100644 --- a/server/controllers/api/config.ts +++ b/server/controllers/api/config.ts @@ -103,7 +103,8 @@ async function getConfig (req: express.Request, res: express.Response, next: exp } }, user: { - videoQuota: CONFIG.USER.VIDEO_QUOTA + videoQuota: CONFIG.USER.VIDEO_QUOTA, + videoQuotaDaily: CONFIG.USER.VIDEO_QUOTA_DAILY } } @@ -154,6 +155,7 @@ async function updateCustomConfig (req: express.Request, res: express.Response, toUpdate.cache.captions.size = parseInt('' + toUpdate.cache.captions.size, 10) toUpdate.signup.limit = parseInt('' + toUpdate.signup.limit, 10) toUpdate.user.videoQuota = parseInt('' + toUpdate.user.videoQuota, 10) + toUpdate.user.videoQuotaDaily = parseInt('' + toUpdate.user.videoQuotaDaily, 10) toUpdate.transcoding.threads = parseInt('' + toUpdate.transcoding.threads, 10) // camelCase to snake_case key @@ -223,7 +225,8 @@ function customConfig (): CustomConfig { email: CONFIG.ADMIN.EMAIL }, user: { - videoQuota: CONFIG.USER.VIDEO_QUOTA + videoQuota: CONFIG.USER.VIDEO_QUOTA, + videoQuotaDaily: CONFIG.USER.VIDEO_QUOTA_DAILY }, transcoding: { enabled: CONFIG.TRANSCODING.ENABLED, diff --git a/server/controllers/api/users/index.ts b/server/controllers/api/users/index.ts index 608d439ac..25d51ae5e 100644 --- a/server/controllers/api/users/index.ts +++ b/server/controllers/api/users/index.ts @@ -134,7 +134,8 @@ async function createUser (req: express.Request, res: express.Response) { nsfwPolicy: CONFIG.INSTANCE.DEFAULT_NSFW_POLICY, autoPlayVideo: true, role: body.role, - videoQuota: body.videoQuota + videoQuota: body.videoQuota, + videoQuotaDaily: body.videoQuotaDaily }) const { user, account } = await createUserAccountAndChannel(userToCreate) @@ -163,7 +164,8 @@ async function registerUser (req: express.Request, res: express.Response) { nsfwPolicy: CONFIG.INSTANCE.DEFAULT_NSFW_POLICY, autoPlayVideo: true, role: UserRole.USER, - videoQuota: CONFIG.USER.VIDEO_QUOTA + videoQuota: CONFIG.USER.VIDEO_QUOTA, + videoQuotaDaily: CONFIG.USER.VIDEO_QUOTA_DAILY }) const { user } = await createUserAccountAndChannel(userToCreate) @@ -219,6 +221,7 @@ async function updateUser (req: express.Request, res: express.Response, next: ex if (body.email !== undefined) userToUpdate.email = body.email if (body.videoQuota !== undefined) userToUpdate.videoQuota = body.videoQuota + if (body.videoQuotaDaily !== undefined) userToUpdate.videoQuotaDaily = body.videoQuotaDaily if (body.role !== undefined) userToUpdate.role = body.role const user = await userToUpdate.save() diff --git a/server/controllers/api/users/me.ts b/server/controllers/api/users/me.ts index 000c706b5..0f18b42f9 100644 --- a/server/controllers/api/users/me.ts +++ b/server/controllers/api/users/me.ts @@ -283,9 +283,11 @@ async function getUserVideoQuotaUsed (req: express.Request, res: express.Respons // We did not load channels in res.locals.user const user = await UserModel.loadByUsernameAndPopulateChannels(res.locals.oauth.token.user.username) const videoQuotaUsed = await UserModel.getOriginalVideoFileTotalFromUser(user) + const videoQuotaUsedDaily = await UserModel.getOriginalVideoFileTotalDailyFromUser(user) const data: UserVideoQuota = { - videoQuotaUsed + videoQuotaUsed, + videoQuotaUsedDaily } return res.json(data) } -- cgit v1.2.3