1
1
package services
2
2
3
- import javax .inject .{ Inject , Named , Singleton }
4
-
5
- import scala .annotation .implicitNotFound
6
- import scala .concurrent .{ ExecutionContext , Future }
3
+ import javax .inject .{ Inject , Provider , Singleton }
7
4
8
5
import akka .NotUsed
9
- import akka .actor .{ ActorRef , actorRef2Scala }
10
6
import akka .stream .scaladsl .Source
11
-
12
- import play .api .mvc .RequestHeader
13
-
14
- import org .elastic4play .AuthenticationError
7
+ import models .{ User , UserModel , UserStatus }
15
8
import org .elastic4play .controllers .Fields
16
9
import org .elastic4play .database .DBIndex
17
- import org .elastic4play .services .{ AuthContext , CreateSrv , DeleteSrv , FindSrv , GetSrv , QueryDef , Role , UpdateSrv }
10
+ import org .elastic4play .services ._
18
11
import org .elastic4play .utils .Instance
12
+ import org .elastic4play .{ AuthenticationError , AuthorizationError }
13
+ import play .api .mvc .RequestHeader
19
14
20
- import models .{ User , UserModel }
21
- import org .elastic4play .services .EventSrv
22
- import org .elastic4play .services .AuthSrv
23
- import javax .inject .Provider
15
+ import scala .concurrent .{ ExecutionContext , Future }
24
16
25
17
@ Singleton
26
18
class UserSrv @ Inject () (
@@ -42,7 +34,13 @@ class UserSrv @Inject() (
42
34
.flatMap { user ⇒ getFromUser(request, user) }
43
35
}
44
36
45
- override def getFromUser (request : RequestHeader , user : org.elastic4play.services.User ): Future [AuthContext ] = Future .successful(AuthContextImpl (user.id, user.getUserName, Instance .getRequestId(request), user.getRoles))
37
+ override def getFromUser (request : RequestHeader , user : org.elastic4play.services.User ): Future [AuthContext ] = {
38
+ user match {
39
+ case u : User if u.status() == UserStatus .Ok ⇒ Future .successful(AuthContextImpl (user.id, user.getUserName, Instance .getRequestId(request), user.getRoles))
40
+ case _ ⇒ Future .failed(AuthorizationError (" Your account is locked" ))
41
+ }
42
+
43
+ }
46
44
47
45
override def getInitialUser (request : RequestHeader ): Future [AuthContext ] =
48
46
dbIndex.getSize(userModel.name).map {
0 commit comments