summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/reply/shr_set_map.erl | 31 |
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) + ) } ] }. |