@@ -2,13 +2,12 @@ module Superset
2
2
class GuestToken
3
3
include Credential ::EmbeddedUser
4
4
5
- attr_accessor :embedded_dashboard_id , :current_user , :current_user_sites , :current_user_programmes
5
+ attr_accessor :embedded_dashboard_id , :current_user , :rls_clause
6
6
7
- def initialize ( embedded_dashboard_id : , current_user : nil , current_user_sites : [ ] , current_user_programmes : [ ] )
7
+ def initialize ( embedded_dashboard_id : , current_user : nil , rls_clause : [ ] )
8
8
@embedded_dashboard_id = embedded_dashboard_id
9
9
@current_user = current_user
10
- @current_user_sites = current_user_sites
11
- @current_user_programmes = current_user_programmes
10
+ @rls_clause = rls_clause
12
11
end
13
12
14
13
def guest_token
@@ -22,11 +21,7 @@ def params
22
21
"id" : embedded_dashboard_id . to_s ,
23
22
"type" : "dashboard" }
24
23
] ,
25
- "rls" : [
26
- {
27
- "clause" : rls_filter_clause
28
- }
29
- ] ,
24
+ "rls" : rls_clause || [ ] , # Ex: [{ "clause": "publisher = 'Nintendo'" }]
30
25
"user" : current_user_params
31
26
}
32
27
end
@@ -71,18 +66,5 @@ def access_token
71
66
def authenticator
72
67
@authenticator ||= Superset ::Authenticator . new ( credentials )
73
68
end
74
-
75
- def rls_filter_clause
76
- "#{ site_clause } AND #{ programme_clause } "
77
- end
78
-
79
- def site_clause
80
- return true if current_user_sites . empty?
81
- "site_id = ANY(ARRAY[#{ current_user_sites } ])"
82
- end
83
-
84
- def programme_clause
85
- "programme = ANY(string_to_array(replace(trim(('#{ current_user_programmes . to_json } '), '[]'), '\" ', ''), ','))"
86
- end
87
69
end
88
70
end
0 commit comments