summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/reply/shr_set_map.erl31
1 files changed, 26 insertions, 5 deletions
diff --git a/src/shared/reply/shr_set_map.erl b/src/shared/reply/shr_set_map.erl
index 0096b52..2e10c2e 100644
--- a/src/shared/reply/shr_set_map.erl
+++ b/src/shared/reply/shr_set_map.erl
@@ -7,7 +7,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--export([generate/2]).
+-export([generate/3]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -18,11 +18,12 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-spec generate
(
+ ataxia_security:user(),
fun ((shr_tile_instance:trigger_name()) -> boolean()),
shr_map:type()
)
-> {list(any())}.
-generate (TriggerVisibilityFun, Map) ->
+generate (User, TriggerVisibilityFun, Map) ->
{
[
{<<"msg">>, <<"set_map">>},
@@ -32,11 +33,31 @@ generate (TriggerVisibilityFun, Map) ->
<<"t">>,
lists:map
(
- fun (E) ->
- shr_tile_instance:encode(TriggerVisibilityFun, E)
- end,
+ fun (E) -> shr_tile_instance:encode(TriggerVisibilityFun, E) end,
tuple_to_list(shr_map:get_tile_instances(Map))
)
+ },
+ {
+ <<"m">>,
+ lists:filtermap
+ (
+ fun ({Key, Value}) ->
+ case shr_map_marker:can_access(User, Value) of
+ true ->
+ {
+ true,
+ {
+ [
+ { Key, shr_map_marker:encode(Value) }
+ ]
+ }
+ };
+
+ false -> false
+ end
+ end,
+ shr_map:get_markers(Map)
+ )
}
]
}.