let study admins invite other members - closes #8816
parent
cfe6376fa9
commit
0de491b0a0
|
@ -6,6 +6,7 @@ import lila.db.dsl._
|
|||
import lila.notify.{ InvitedToStudy, Notification, NotifyApi }
|
||||
import lila.pref.Pref
|
||||
import lila.relation.{ Block, Follow }
|
||||
import lila.security.Granter
|
||||
import lila.user.{ Holder, User }
|
||||
|
||||
final private class StudyInvite(
|
||||
|
@ -31,9 +32,11 @@ final private class StudyInvite(
|
|||
getIsPresent: User.ID => Fu[Boolean]
|
||||
): Fu[User] =
|
||||
for {
|
||||
_ <- !study.isOwner(byUserId) ?? fufail[Unit]("Only study owner can invite")
|
||||
_ <- (study.nbMembers >= maxMembers) ?? fufail[Unit](s"Max study members reached: $maxMembers")
|
||||
inviter <- userRepo.named(byUserId) orFail "No such inviter"
|
||||
inviter <- userRepo named byUserId orFail "No such inviter"
|
||||
_ <- (!study.isOwner(inviter.id) && !Granter(_.StudyAdmin)(inviter)) ?? fufail[Unit](
|
||||
"Only the study owner can invite"
|
||||
)
|
||||
invited <-
|
||||
userRepo
|
||||
.named(invitedUsername)
|
||||
|
|
Loading…
Reference in New Issue