diff --git a/assets/layers/toilet/toilet.json b/assets/layers/toilet/toilet.json
index 70be176c4..3e386b052 100644
--- a/assets/layers/toilet/toilet.json
+++ b/assets/layers/toilet/toilet.json
@@ -51,6 +51,23 @@
{
"if": "opening_hours~*",
"then": "icons.isOpen"
+ },
+ {
+ "if": {
+ "or": [
+ "access=no",
+ "access=private"
+ ]
+ },
+ "then": "lock"
+ },
+ {
+ "if": "access=key",
+ "then": "key"
+ },
+ {
+ "if": "access=customers",
+ "then": "key:gray"
}
],
"location": [
@@ -203,6 +220,7 @@
},
{
"if": "access=no",
+ "alsoShowIf": "access=private",
"then": {
"en": "Not accessible",
"de": "Der Zugang ist nicht erlaubt oder nicht möglich",
diff --git a/src/Models/Constants.ts b/src/Models/Constants.ts
index e0fcc7a66..d1a22e5a1 100644
--- a/src/Models/Constants.ts
+++ b/src/Models/Constants.ts
@@ -141,12 +141,14 @@ export default class Constants {
"help",
"help",
"home",
+ "key",
"invalid",
"invalid",
"link",
"location",
"location_empty",
"location_locked",
+ "lock",
"mastodon",
"not_found",
"note",
diff --git a/src/UI/Map/Icon.svelte b/src/UI/Map/Icon.svelte
index 94a60f364..55b310647 100644
--- a/src/UI/Map/Icon.svelte
+++ b/src/UI/Map/Icon.svelte
@@ -39,6 +39,8 @@
import Gear from "../../assets/svg/Gear.svelte"
import { DesktopComputerIcon, UserCircleIcon } from "@rgossiaux/svelte-heroicons/solid"
import Relocation from "../../assets/svg/Relocation.svelte"
+ import LockClosed from "@babeard/svelte-heroicons/solid/LockClosed"
+ import Key from "@babeard/svelte-heroicons/solid/Key"
/**
* Renders a single icon.
@@ -146,6 +148,10 @@
{:else if icon === "user_circle"}
+ {:else if icon === "lock"}
+
+ {:else if icon === "key"}
+
{:else if Utils.isEmoji(icon)}
{icon}