also send a PM to managed accounts
This commit is contained in:
parent
4ecb615816
commit
ffe1a0f0c4
|
@ -105,7 +105,7 @@ final class Clas(
|
||||||
)
|
)
|
||||||
).fuccess,
|
).fuccess,
|
||||||
username =>
|
username =>
|
||||||
env.clas.api.student.create(clas, username, t.teacher) map {
|
env.clas.api.student.create(clas, username, t) map {
|
||||||
case (user, password) =>
|
case (user, password) =>
|
||||||
Redirect(routes.Clas.studentShow(clas.id.value, user.username))
|
Redirect(routes.Clas.studentShow(clas.id.value, user.username))
|
||||||
.flashing("password" -> password.value)
|
.flashing("password" -> password.value)
|
||||||
|
|
|
@ -4,12 +4,12 @@ import org.joda.time.DateTime
|
||||||
import reactivemongo.api._
|
import reactivemongo.api._
|
||||||
import scala.concurrent.duration._
|
import scala.concurrent.duration._
|
||||||
|
|
||||||
import lila.db.dsl._
|
|
||||||
import lila.user.{ Authenticator, User, UserRepo }
|
|
||||||
import lila.common.EmailAddress
|
|
||||||
import lila.common.config.{ BaseUrl, Secret }
|
import lila.common.config.{ BaseUrl, Secret }
|
||||||
|
import lila.common.EmailAddress
|
||||||
|
import lila.db.dsl._
|
||||||
import lila.message.MessageApi
|
import lila.message.MessageApi
|
||||||
import lila.security.StringToken
|
import lila.security.StringToken
|
||||||
|
import lila.user.{ Authenticator, User, UserRepo }
|
||||||
|
|
||||||
final class ClasApi(
|
final class ClasApi(
|
||||||
colls: ClasColls,
|
colls: ClasColls,
|
||||||
|
@ -108,10 +108,10 @@ final class ClasApi(
|
||||||
def isIn(clas: Clas, userId: User.ID): Fu[Boolean] =
|
def isIn(clas: Clas, userId: User.ID): Fu[Boolean] =
|
||||||
coll.exists($id(Student.id(userId, clas.id)))
|
coll.exists($id(Student.id(userId, clas.id)))
|
||||||
|
|
||||||
def create(clas: Clas, username: String, teacher: Teacher): Fu[(User, ClearPassword)] = {
|
def create(clas: Clas, username: String, teacher: Teacher.WithUser): Fu[(User, ClearPassword)] = {
|
||||||
val email = EmailAddress(s"noreply.class.${clas.id}.$username@lichess.org")
|
val email = EmailAddress(s"noreply.class.${clas.id}.$username@lichess.org")
|
||||||
val password = Student.password.generate
|
val password = Student.password.generate
|
||||||
lila.mon.clas.studentCreate(teacher.userId)
|
lila.mon.clas.studentCreate(teacher.user.id)
|
||||||
userRepo
|
userRepo
|
||||||
.create(
|
.create(
|
||||||
username = username,
|
username = username,
|
||||||
|
@ -124,7 +124,18 @@ final class ClasApi(
|
||||||
.orFail(s"No user could be created for $username")
|
.orFail(s"No user could be created for $username")
|
||||||
.flatMap { user =>
|
.flatMap { user =>
|
||||||
userRepo.setKid(user, true) >>
|
userRepo.setKid(user, true) >>
|
||||||
coll.insert.one(Student.make(user, clas, teacher.id, managed = true)) inject
|
coll.insert.one(Student.make(user, clas, teacher.teacher.id, managed = true)) >>
|
||||||
|
messageApi.sendOnBehalf(
|
||||||
|
sender = teacher.user,
|
||||||
|
dest = user,
|
||||||
|
subject = s"Invitation to ${clas.name}",
|
||||||
|
text = s"""
|
||||||
|
Please click this link to join the class ${clas.name}:
|
||||||
|
|
||||||
|
$baseUrl/class/${clas.id}
|
||||||
|
|
||||||
|
${clas.desc}"""
|
||||||
|
) inject
|
||||||
(user -> password)
|
(user -> password)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue