Access refactor

Access is now done through a list of access lists, instead of the necessary/sufficient system that was extremely confusing.

Added a "deny" list so you can screw over sec.

Cleaned the API up so it all uses sets and such.

PDA now relays access read-only to fix edge cases.
This commit is contained in:
Pieter-Jan Briers
2020-06-03 11:46:59 +02:00
parent 49d96e3575
commit 0f43e5e6ad
11 changed files with 424 additions and 151 deletions

View File

@@ -5,7 +5,7 @@
suffix: Service, Locked
components:
- type: AccessReader
necessary: ["Service"]
access: [["Service"]]
- type: entity
parent: AirlockExternal
@@ -13,7 +13,7 @@
suffix: External, Locked
components:
- type: AccessReader
necessary: ["External"]
access: [["External"]]
- type: entity
parent: AirlockEngineering
@@ -21,7 +21,7 @@
suffix: Engineering, Locked
components:
- type: AccessReader
necessary: ["Engineering"]
access: [["Engineering"]]
- type: entity
parent: AirlockCargo
@@ -29,7 +29,7 @@
suffix: Cargo, Locked
components:
- type: AccessReader
necessary: ["Cargo"]
access: [["Cargo"]]
- type: entity
parent: AirlockMedical
@@ -37,7 +37,7 @@
suffix: Medical, Locked
components:
- type: AccessReader
necessary: ["Medical"]
access: [["Medical"]]
- type: entity
parent: AirlockScience
@@ -45,7 +45,7 @@
suffix: Science, Locked
components:
- type: AccessReader
necessary: ["Research"]
access: [["Research"]]
- type: entity
parent: AirlockCommand
@@ -53,7 +53,7 @@
suffix: Command, Locked
components:
- type: AccessReader
necessary: ["Command"]
access: [["Command"]]
- type: entity
parent: AirlockSecurity
@@ -61,7 +61,7 @@
suffix: Security, Locked
components:
- type: AccessReader
necessary: ["Security"]
access: [["Security"]]
- type: entity
parent: AirlockSecurity
@@ -69,7 +69,7 @@
suffix: Vault, Locked
components:
- type: AccessReader
necessary: ["Security", "Command"]
access: [["Security", "Command"]]
- type: entity
parent: AirlockCommand
@@ -77,7 +77,7 @@
suffix: EVA, Locked
components:
- type: AccessReader
necessary: ["External"]
access: [["External"]]
# Glass Airlocks
- type: entity
@@ -86,7 +86,7 @@
suffix: Service, Locked
components:
- type: AccessReader
necessary: ["Service"]
access: [["Service"]]
- type: entity
parent: AirlockEngineeringGlass
@@ -94,7 +94,7 @@
suffix: Glass, Locked
components:
- type: AccessReader
necessary: ["Engineering"]
access: [["Engineering"]]
- type: entity
parent: AirlockCargoGlass
@@ -102,7 +102,7 @@
suffix: Cargo, Locked
components:
- type: AccessReader
necessary: ["Cargo"]
access: [["Cargo"]]
- type: entity
parent: AirlockMedicalGlass
@@ -110,7 +110,7 @@
suffix: Medical, Locked
components:
- type: AccessReader
necessary: ["Medical"]
access: [["Medical"]]
- type: entity
parent: AirlockScienceGlass
@@ -118,7 +118,7 @@
suffix: Science, Locked
components:
- type: AccessReader
necessary: ["Research"]
access: [["Research"]]
- type: entity
parent: AirlockCommandGlass
@@ -126,7 +126,7 @@
suffix: Command, Locked
components:
- type: AccessReader
necessary: ["Command"]
access: [["Command"]]
- type: entity
parent: AirlockSecurityGlass
@@ -134,7 +134,7 @@
suffix: Security, Locked
components:
- type: AccessReader
necessary: ["Security"]
access: [["Security"]]
# Maintenance Hatchs
- type: entity
@@ -143,7 +143,7 @@
suffix: Locked
components:
- type: AccessReader
necessary: ["Maintenance"]
access: [["Maintenance"]]
- type: entity
parent: AirlockMaintCargo
@@ -151,7 +151,7 @@
suffix: Cargo, Locked
components:
- type: AccessReader
necessary: ["Cargo", "Maintenance"]
access: [["Cargo"]]
- type: entity
parent: AirlockMaintCommand
@@ -159,7 +159,7 @@
suffix: Command, Locked
components:
- type: AccessReader
necessary: ["Command", "Maintenance"]
access: [["Command"]]
- type: entity
parent: AirlockMaintCommon
@@ -167,7 +167,7 @@
suffix: Common, Locked
components:
- type: AccessReader
necessary: ["Maintenance"]
access: [["Maintenance"]]
- type: entity
parent: AirlockMaintEngi
@@ -175,15 +175,15 @@
suffix: Engineering, Locked
components:
- type: AccessReader
necessary: ["Engineering", "Maintenance"]
access: [["Engineering"]]
- type: entity
parent: AirlockMaintInt
id: AirlockMaintIntLocked
suffix: Interior, Locked
components:
- type: AccessReader
necessary: ["Maintenance"]
access: [["Maintenance"]]
- type: entity
parent: AirlockMaintMed
@@ -191,7 +191,7 @@
suffix: Medical, Locked
components:
- type: AccessReader
necessary: ["Medical", "Maintenance"]
access: [["Medical"]]
- type: entity
parent: AirlockMaintRnD
@@ -199,7 +199,7 @@
suffix: RnD, Locked
components:
- type: AccessReader
necessary: ["Research", "Maintenance"]
access: [["Research"]]
- type: entity
parent: AirlockMaintSec
@@ -207,4 +207,4 @@
suffix: Security, Locked
components:
- type: AccessReader
necessary: ["Security", "Maintenance"]
access: [["Security"]]

View File

@@ -158,7 +158,7 @@
name: ID Card Computer
components:
- type: AccessReader
necessary: ["HeadOfPersonnel"]
access: [["HeadOfPersonnel"]]
- type: IdCardConsole
- type: UserInterface
interfaces: