mirror of
https://github.com/ente-io/ente.git
synced 2025-08-08 07:28:26 +00:00
fix: allow modification for invited user
fix: adds bonus + storage to get total storage fix: var name changes, use NewBadRequestWithmessage
This commit is contained in:
parent
3b3ba721a2
commit
a407b1baad
@ -191,32 +191,34 @@ func (c *Controller) CloseFamily(ctx context.Context, adminID int64) error {
|
||||
}
|
||||
|
||||
// ModifyMemberStorage allows admin user to update the storageLimit for a member in the family
|
||||
func (c *Controller) ModifyMemberStorage(ctx context.Context, adminID int64, id uuid.UUID, storageLimit *int64) error {
|
||||
func (c *Controller) ModifyMemberStorage(ctx context.Context, actorUserID int64, id uuid.UUID, storageLimit *int64) error {
|
||||
member, err := c.FamilyRepo.GetMemberById(ctx, id)
|
||||
if err != nil {
|
||||
return stacktrace.Propagate(err, "Couldn't fetch Family Member")
|
||||
}
|
||||
|
||||
if member.AdminUserID != adminID {
|
||||
if member.AdminUserID != actorUserID {
|
||||
return stacktrace.Propagate(ente.ErrBadRequest, "you do not have sufficient permission")
|
||||
}
|
||||
|
||||
if member.IsAdmin {
|
||||
return stacktrace.Propagate(ente.ErrCannotModifyAdminStoragLimit, "cannot modify admin storage limit")
|
||||
return stacktrace.Propagate(ente.NewBadRequestWithMessage("failed to modify storage"), "cannot modify admin storage limit")
|
||||
}
|
||||
|
||||
if member.Status != ente.ACCEPTED {
|
||||
if member.Status != ente.ACCEPTED && member.Status != ente.INVITED {
|
||||
return stacktrace.Propagate(ente.ErrBadRequest, "user is not a part of family")
|
||||
}
|
||||
|
||||
// gets admin subscription in order to get the size of total storage quota (including bonus)
|
||||
activeSub, err := c.FetchMembersForAdminID(ctx, member.AdminUserID)
|
||||
if err != nil {
|
||||
return stacktrace.Propagate(ente.ErrNoActiveSubscription, "couldn't get active subscription")
|
||||
}
|
||||
|
||||
if storageLimit != nil && *storageLimit > activeSub.Storage {
|
||||
return stacktrace.Propagate(ente.ErrStorageLimitExceeded, "potential storage limit is more than subscription storage")
|
||||
if storageLimit != nil {
|
||||
familyMembersData, err := c.FetchMembersForAdminID(ctx, member.AdminUserID)
|
||||
if err != nil {
|
||||
return stacktrace.Propagate(ente.ErrBadRequest, "couldn't get active subscription")
|
||||
}
|
||||
totalFamilyStorage := familyMembersData.Storage + familyMembersData.AdminBonus
|
||||
if *storageLimit > totalFamilyStorage {
|
||||
return stacktrace.Propagate(ente.ErrStorageLimitExceeded, "potential storage limit is more than subscription storage")
|
||||
}
|
||||
}
|
||||
|
||||
// Handle if the admin user tries reducing the storage Limit
|
||||
@ -227,12 +229,12 @@ func (c *Controller) ModifyMemberStorage(ctx context.Context, adminID int64, id
|
||||
}
|
||||
|
||||
if memberUsage > *storageLimit {
|
||||
return stacktrace.Propagate(ente.ErrFailedReducingStorageLimit, "Cannot reduce storage, current usage is more.")
|
||||
return stacktrace.Propagate(ente.NewBadRequestWithMessage("Failed to reduce storage"), "User's current usage is more")
|
||||
}
|
||||
|
||||
modifyStorageErr := c.FamilyRepo.ModifyMemberStorage(ctx, adminID, member.ID, storageLimit)
|
||||
modifyStorageErr := c.FamilyRepo.ModifyMemberStorage(ctx, actorUserID, member.ID, storageLimit)
|
||||
if modifyStorageErr != nil {
|
||||
return stacktrace.Propagate(modifyStorageErr, "Cannot Modify Members Storage")
|
||||
return stacktrace.Propagate(modifyStorageErr, "Failed to modify members storage")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user