@@ -10,19 +10,28 @@ def initialize(options, app)
10
10
@uuids = options [ :uuids ] || { }
11
11
options [ :channels ] = options [ :channels ] || { }
12
12
options [ :channel_groups ] = options [ :channel_groups ] || { }
13
+ @spaces_permissions = options [ :spaces_permissions ] || { }
14
+ @users_permissions = options [ :users_permissions ] || { }
13
15
super
14
16
end
15
17
16
18
def fire
17
19
Pubnub . logger . debug ( 'Pubnub::GrantToken' ) { "Fired event #{ self . class } " }
20
+ if @authorized_user_id != nil
21
+ uuid = @authorized_user_id
22
+ elsif @authorized_uuid != nil
23
+ uuid = @authorized_uuid
24
+ else
25
+ uuid = nil
26
+ end
18
27
19
28
raw_body = {
20
29
ttl : @ttl ,
21
30
permissions : {
22
31
meta : @meta ,
23
- uuid : @authorized_uuid ,
24
- resources : prepare_permissions ( :resource , @channels , @channel_groups , @uuids ) ,
25
- patterns : prepare_permissions ( :pattern , @channels , @channel_groups , @uuids )
32
+ uuid : uuid ,
33
+ resources : prepare_permissions ( :resource , @channels , @channel_groups , @uuids , @spaces_permissions , @users_permissions ) ,
34
+ patterns : prepare_permissions ( :pattern , @channels , @channel_groups , @uuids , @spaces_permissions , @users_permissions )
26
35
} . select { |_ , v | v }
27
36
}
28
37
body = Formatter . format_message ( raw_body , "" , false , false )
@@ -47,11 +56,11 @@ def current_operation
47
56
Pubnub ::Constants ::OPERATION_GRANT_TOKEN
48
57
end
49
58
50
- def prepare_permissions ( type , channels , groups , uuids )
59
+ def prepare_permissions ( type , channels , groups , uuids , spaces_permissions , users_permissions )
51
60
{
52
- channels : prepare_single_permissions ( type , channels ) ,
61
+ channels : prepare_single_permissions ( type , channels ) . merge! ( prepare_single_permissions ( type , spaces_permissions ) ) ,
53
62
groups : prepare_single_permissions ( type , groups ) ,
54
- uuids : prepare_single_permissions ( type , uuids )
63
+ uuids : prepare_single_permissions ( type , uuids ) . merge! ( prepare_single_permissions ( type , users_permissions ) )
55
64
}
56
65
end
57
66
0 commit comments