mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 09:35:49 +02:00
Simplified the available permissions
This commit is contained in:
parent
59ddf91527
commit
f8aee65d9e
2 changed files with 31 additions and 286 deletions
|
@ -13,9 +13,7 @@ doctrine:
|
||||||
class: App\Helpers\UTCDateTimeType
|
class: App\Helpers\UTCDateTimeType
|
||||||
big_decimal:
|
big_decimal:
|
||||||
class: App\Helpers\BigDecimalType
|
class: App\Helpers\BigDecimalType
|
||||||
permission_data:
|
|
||||||
class: App\Doctrine\Types\PermissionDataType
|
|
||||||
|
|
||||||
schema_filter: ~^(?!internal)~
|
schema_filter: ~^(?!internal)~
|
||||||
# Only enable this when needed
|
# Only enable this when needed
|
||||||
profiling_collect_backtrace: false
|
profiling_collect_backtrace: false
|
||||||
|
|
|
@ -20,216 +20,42 @@ perms: # Here comes a list with all Permission names (they have a perm_[name] co
|
||||||
operations: # Here are all possible operations are listed => the op name is mapped to bit value
|
operations: # Here are all possible operations are listed => the op name is mapped to bit value
|
||||||
read:
|
read:
|
||||||
label: "perm.read"
|
label: "perm.read"
|
||||||
bit: 0
|
|
||||||
edit:
|
edit:
|
||||||
label: "perm.edit"
|
label: "perm.edit"
|
||||||
bit: 2
|
|
||||||
alsoSet: 'read'
|
alsoSet: 'read'
|
||||||
create:
|
create:
|
||||||
label: "perm.create"
|
label: "perm.create"
|
||||||
bit: 4
|
|
||||||
alsoSet: ['read', 'edit']
|
alsoSet: ['read', 'edit']
|
||||||
#move:
|
|
||||||
# label: "perm.part.move"
|
|
||||||
# bit: 6
|
|
||||||
# alsoSet: 'read'
|
|
||||||
delete:
|
delete:
|
||||||
label: "perm.delete"
|
label: "perm.delete"
|
||||||
bit: 8
|
|
||||||
alsoSet: ['read', 'edit']
|
alsoSet: ['read', 'edit']
|
||||||
search:
|
|
||||||
label: "perm.part.search"
|
|
||||||
bit: 10
|
|
||||||
all_parts:
|
|
||||||
label: "perm.part.all_parts"
|
|
||||||
bit: 12
|
|
||||||
no_price_parts:
|
|
||||||
label: "perm.part.no_price_parts"
|
|
||||||
bit: 14
|
|
||||||
obsolete_parts:
|
|
||||||
label: "perm.part.obsolete_parts"
|
|
||||||
bit: 16
|
|
||||||
unknown_instock_parts:
|
|
||||||
label: "perm.part.unknown_instock_parts"
|
|
||||||
bit: 18
|
|
||||||
change_favorite:
|
change_favorite:
|
||||||
label: "perm.part.change_favorite"
|
label: "perm.part.change_favorite"
|
||||||
bit: 20
|
|
||||||
show_favorite_parts:
|
|
||||||
label: "perm.part.show_favorite"
|
|
||||||
bit: 24
|
|
||||||
show_last_edit_parts:
|
|
||||||
label: "perm.part.show_last_edit_parts"
|
|
||||||
bit: 26
|
|
||||||
show_users:
|
|
||||||
label: "perm.part.show_users"
|
|
||||||
bit: 28
|
|
||||||
show_history:
|
show_history:
|
||||||
label: "perm.part.show_history"
|
label: "perm.part.show_history"
|
||||||
bit: 30
|
|
||||||
revert_element:
|
revert_element:
|
||||||
label: "perm.revert_elements"
|
label: "perm.revert_elements"
|
||||||
bit: 32
|
|
||||||
alsoSet: ["read", "edit", "create", "delete", "show_history"]
|
alsoSet: ["read", "edit", "create", "delete", "show_history"]
|
||||||
|
|
||||||
parts_name: &PART_ATTRIBUTE # We define a template here, that we can use for all part attributes.
|
|
||||||
label: "perm.part.name"
|
|
||||||
group: "parts"
|
|
||||||
operations:
|
|
||||||
read:
|
|
||||||
label: "perm.read"
|
|
||||||
bit: 0
|
|
||||||
edit:
|
|
||||||
label: "perm.edit"
|
|
||||||
bit: 2
|
|
||||||
alsoSet: 'read'
|
|
||||||
|
|
||||||
parts_category:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.category"
|
|
||||||
|
|
||||||
parts_description:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.description"
|
|
||||||
|
|
||||||
parts_minamount:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.minamount"
|
|
||||||
|
|
||||||
parts_footprint:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.footprint"
|
|
||||||
|
|
||||||
parts_comment:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.comment"
|
|
||||||
|
|
||||||
parts_manufacturer:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.manufacturer"
|
|
||||||
|
|
||||||
parts_mpn:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.mpn"
|
|
||||||
|
|
||||||
parts_status:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.status"
|
|
||||||
|
|
||||||
parts_tags:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.tags"
|
|
||||||
|
|
||||||
parts_unit:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.unit"
|
|
||||||
|
|
||||||
parts_mass:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.mass"
|
|
||||||
|
|
||||||
parts_orderdetails: &PART_MULTI_ATTRIBUTE
|
|
||||||
label: "perm.part.orderdetails"
|
|
||||||
group: "parts"
|
|
||||||
operations:
|
|
||||||
read:
|
|
||||||
label: "perm.read"
|
|
||||||
bit: 0
|
|
||||||
edit:
|
|
||||||
label: "perm.edit"
|
|
||||||
bit: 2
|
|
||||||
alsoSet: 'read'
|
|
||||||
create:
|
|
||||||
label: "perm.create"
|
|
||||||
bit: 4
|
|
||||||
alsoSet: ['read', 'edit']
|
|
||||||
delete:
|
|
||||||
label: "perm.delete"
|
|
||||||
bit: 6
|
|
||||||
alsoSet: ['read']
|
|
||||||
|
|
||||||
|
|
||||||
parts_prices:
|
|
||||||
<<: *PART_MULTI_ATTRIBUTE
|
|
||||||
label: "perm.part.prices"
|
|
||||||
|
|
||||||
parts_parameters:
|
|
||||||
<<: *PART_MULTI_ATTRIBUTE
|
|
||||||
label: "perm.part.parameters"
|
|
||||||
|
|
||||||
parts_lots:
|
|
||||||
<<: *PART_MULTI_ATTRIBUTE
|
|
||||||
label: "perm.part.lots"
|
|
||||||
|
|
||||||
parts_attachments:
|
|
||||||
group: "structures"
|
|
||||||
label: "perm.part.attachments"
|
|
||||||
operations:
|
|
||||||
read:
|
|
||||||
label: "perm.read"
|
|
||||||
bit: 0
|
|
||||||
edit:
|
|
||||||
label: "perm.edit"
|
|
||||||
bit: 2
|
|
||||||
alsoSet: 'read'
|
|
||||||
create:
|
|
||||||
label: "perm.create"
|
|
||||||
bit: 4
|
|
||||||
alsoSet: ['read', 'edit']
|
|
||||||
delete:
|
|
||||||
label: "perm.delete"
|
|
||||||
bit: 6
|
|
||||||
alsoSet: ['read']
|
|
||||||
show_history:
|
|
||||||
label: "perm.show_history"
|
|
||||||
bit: 8
|
|
||||||
revert_element:
|
|
||||||
label: "perm.revert_elements"
|
|
||||||
bit: 10
|
|
||||||
alsoSet: ["read", "edit", "create", "delete", "show_history"]
|
|
||||||
show_private:
|
|
||||||
label: "perm.attachment_show_private"
|
|
||||||
bit: 12
|
|
||||||
alsoSet: ["read"]
|
|
||||||
|
|
||||||
parts_order:
|
|
||||||
<<: *PART_ATTRIBUTE
|
|
||||||
label: "perm.part.order"
|
|
||||||
|
|
||||||
storelocations: &PART_CONTAINING
|
storelocations: &PART_CONTAINING
|
||||||
label: "perm.storelocations"
|
label: "perm.storelocations"
|
||||||
group: "structures"
|
group: "structures"
|
||||||
operations:
|
operations:
|
||||||
read:
|
read:
|
||||||
label: "perm.read"
|
label: "perm.read"
|
||||||
bit: 0
|
|
||||||
edit:
|
edit:
|
||||||
label: "perm.edit"
|
label: "perm.edit"
|
||||||
bit: 2
|
|
||||||
alsoSet: 'read'
|
alsoSet: 'read'
|
||||||
create:
|
create:
|
||||||
label: "perm.create"
|
label: "perm.create"
|
||||||
bit: 4
|
|
||||||
alsoSet: ['read', 'edit']
|
alsoSet: ['read', 'edit']
|
||||||
move:
|
|
||||||
label: "perm.move"
|
|
||||||
bit: 6
|
|
||||||
delete:
|
delete:
|
||||||
label: "perm.delete"
|
label: "perm.delete"
|
||||||
bit: 8
|
|
||||||
alsoSet: ['read', 'edit']
|
alsoSet: ['read', 'edit']
|
||||||
list_parts:
|
|
||||||
label: "perm.list_parts"
|
|
||||||
bit: 10
|
|
||||||
show_users:
|
|
||||||
label: "perm.show_users"
|
|
||||||
bit: 12
|
|
||||||
show_history:
|
show_history:
|
||||||
label: "perm.show_history"
|
label: "perm.show_history"
|
||||||
bit: 14
|
|
||||||
revert_element:
|
revert_element:
|
||||||
label: "perm.revert_elements"
|
label: "perm.revert_elements"
|
||||||
bit: 16
|
|
||||||
alsoSet: ["read", "edit", "create", "delete", "show_history"]
|
alsoSet: ["read", "edit", "create", "delete", "show_history"]
|
||||||
|
|
||||||
footprints:
|
footprints:
|
||||||
|
@ -267,36 +93,26 @@ perms: # Here comes a list with all Permission names (they have a perm_[name] co
|
||||||
tools:
|
tools:
|
||||||
label: "perm.part.tools"
|
label: "perm.part.tools"
|
||||||
operations:
|
operations:
|
||||||
import:
|
#import:
|
||||||
label: "perm.tools.import"
|
# label: "perm.tools.import"
|
||||||
bit: 0
|
#labels:
|
||||||
labels:
|
# label: "perm.tools.labels"
|
||||||
label: "perm.tools.labels"
|
|
||||||
bit: 2
|
|
||||||
#calculator:
|
#calculator:
|
||||||
# label: "perm.tools.calculator"
|
# label: "perm.tools.calculator"
|
||||||
# bit: 4
|
|
||||||
#footprints:
|
#footprints:
|
||||||
# label: "perm.tools.footprints"
|
# label: "perm.tools.footprints"
|
||||||
# bit: 6
|
|
||||||
#ic_logos:
|
#ic_logos:
|
||||||
# label: "perm.tools.ic_logos"
|
# label: "perm.tools.ic_logos"
|
||||||
# bit: 8
|
|
||||||
statistics:
|
statistics:
|
||||||
label: "perm.tools.statistics"
|
label: "perm.tools.statistics"
|
||||||
bit: 10
|
|
||||||
lastActivity:
|
lastActivity:
|
||||||
label: "perm.tools.lastActivity"
|
label: "perm.tools.lastActivity"
|
||||||
bit: 12
|
|
||||||
timetravel:
|
timetravel:
|
||||||
label: "perm.tools.timeTravel"
|
label: "perm.tools.timeTravel"
|
||||||
bit: 14
|
|
||||||
label_scanner:
|
label_scanner:
|
||||||
label: "perm.tools.label_scanner"
|
label: "perm.tools.label_scanner"
|
||||||
bit: 16
|
|
||||||
reel_calculator:
|
reel_calculator:
|
||||||
label: "perm.tools.reel_calculator"
|
label: "perm.tools.reel_calculator"
|
||||||
bit: 18
|
|
||||||
|
|
||||||
groups:
|
groups:
|
||||||
label: "perm.groups"
|
label: "perm.groups"
|
||||||
|
@ -304,33 +120,23 @@ perms: # Here comes a list with all Permission names (they have a perm_[name] co
|
||||||
operations:
|
operations:
|
||||||
read:
|
read:
|
||||||
label: "perm.read"
|
label: "perm.read"
|
||||||
bit: 0
|
|
||||||
edit:
|
edit:
|
||||||
label: "perm.edit"
|
label: "perm.edit"
|
||||||
bit: 2
|
|
||||||
alsoSet: 'read'
|
alsoSet: 'read'
|
||||||
create:
|
create:
|
||||||
label: "perm.create"
|
label: "perm.create"
|
||||||
bit: 4
|
|
||||||
alsoSet: ['read', 'edit']
|
alsoSet: ['read', 'edit']
|
||||||
move:
|
|
||||||
label: "perm.move"
|
|
||||||
bit: 6
|
|
||||||
delete:
|
delete:
|
||||||
label: "perm.delete"
|
label: "perm.delete"
|
||||||
bit: 8
|
|
||||||
alsoSet: ['read', 'delete']
|
alsoSet: ['read', 'delete']
|
||||||
edit_permissions:
|
edit_permissions:
|
||||||
label: "perm.edit_permissions"
|
label: "perm.edit_permissions"
|
||||||
alsoSet: ['read', 'edit']
|
alsoSet: ['read', 'edit']
|
||||||
bit: 10
|
|
||||||
show_history:
|
show_history:
|
||||||
label: "perm.show_history"
|
label: "perm.show_history"
|
||||||
bit: 12
|
|
||||||
revert_element:
|
revert_element:
|
||||||
label: "perm.revert_elements"
|
label: "perm.revert_elements"
|
||||||
bit: 14
|
alsoSet: ["read", "edit", "create", "delete", "edit_permissions", "show_history"]
|
||||||
alsoSet: ["read", "edit", "create", "delete", "move", "edit_permissions", "show_history"]
|
|
||||||
|
|
||||||
users:
|
users:
|
||||||
label: "perm.users"
|
label: "perm.users"
|
||||||
|
@ -338,167 +144,108 @@ perms: # Here comes a list with all Permission names (they have a perm_[name] co
|
||||||
operations:
|
operations:
|
||||||
read:
|
read:
|
||||||
label: "perm.read"
|
label: "perm.read"
|
||||||
bit: 0
|
|
||||||
create:
|
create:
|
||||||
label: "perm.create"
|
label: "perm.create"
|
||||||
alsoSet: ['read', 'edit_username', 'edit_infos']
|
alsoSet: ['read', 'edit_username', 'edit_infos']
|
||||||
bit: 4
|
|
||||||
delete:
|
delete:
|
||||||
label: "perm.delete"
|
label: "perm.delete"
|
||||||
alsoSet: ['read', 'edit_username', 'edit_infos']
|
alsoSet: ['read', 'edit_username', 'edit_infos']
|
||||||
bit: 8
|
|
||||||
edit_username:
|
edit_username:
|
||||||
label: "perm.users.edit_user_name"
|
label: "perm.users.edit_user_name"
|
||||||
alsoSet: ['read']
|
alsoSet: ['read']
|
||||||
bit: 2
|
|
||||||
change_group:
|
|
||||||
label: "perm.users.edit_change_group"
|
|
||||||
alsoSet: 'read'
|
|
||||||
bit: 6
|
|
||||||
edit_infos:
|
edit_infos:
|
||||||
label: "perm.users.edit_infos"
|
label: "perm.users.edit_infos"
|
||||||
alsoSet: 'read'
|
alsoSet: 'read'
|
||||||
bit: 10
|
|
||||||
edit_permissions:
|
edit_permissions:
|
||||||
label: "perm.users.edit_permissions"
|
label: "perm.users.edit_permissions"
|
||||||
alsoSet: 'read'
|
alsoSet: 'read'
|
||||||
bit: 12
|
|
||||||
set_password:
|
set_password:
|
||||||
label: "perm.users.set_password"
|
label: "perm.users.set_password"
|
||||||
alsoSet: 'read'
|
alsoSet: 'read'
|
||||||
bit: 14
|
|
||||||
change_user_settings:
|
change_user_settings:
|
||||||
label: "perm.users.change_user_settings"
|
label: "perm.users.change_user_settings"
|
||||||
bit: 16
|
|
||||||
show_history:
|
show_history:
|
||||||
label: "perm.show_history"
|
label: "perm.show_history"
|
||||||
bit: 18
|
|
||||||
revert_element:
|
revert_element:
|
||||||
label: "perm.revert_elements"
|
label: "perm.revert_elements"
|
||||||
bit: 20
|
|
||||||
alsoSet: ["read", "create", "delete", "edit_permissions", "show_history", "edit_infos", "change_group", "edit_username"]
|
alsoSet: ["read", "create", "delete", "edit_permissions", "show_history", "edit_infos", "change_group", "edit_username"]
|
||||||
|
|
||||||
database:
|
#database:
|
||||||
label: "perm.database"
|
# label: "perm.database"
|
||||||
group: "system"
|
# group: "system"
|
||||||
operations:
|
# operations:
|
||||||
see_status:
|
# see_status:
|
||||||
label: "perm.database.see_status"
|
# label: "perm.database.see_status"
|
||||||
bit: 0
|
# update_db:
|
||||||
update_db:
|
# label: "perm.database.update_db"
|
||||||
label: "perm.database.update_db"
|
# alsoSet: 'see_status'
|
||||||
bit: 2
|
# read_db_settings:
|
||||||
alsoSet: 'see_status'
|
# label: "perm.database.read_db_settings"
|
||||||
read_db_settings:
|
# write_db_settings:
|
||||||
label: "perm.database.read_db_settings"
|
# label: "perm.database.write_db_settings"
|
||||||
bit: 4
|
# alsoSet: ['read_db_settings', 'see_status']
|
||||||
write_db_settings:
|
|
||||||
label: "perm.database.write_db_settings"
|
|
||||||
alsoSet: ['read_db_settings', 'see_status']
|
|
||||||
bit: 2
|
|
||||||
|
|
||||||
config:
|
#config:
|
||||||
label: "perm.config"
|
# label: "perm.config"
|
||||||
group: "system"
|
# group: "system"
|
||||||
operations:
|
# operations:
|
||||||
read_config:
|
# read_config:
|
||||||
label: "perm.config.read_config"
|
# label: "perm.config.read_config"
|
||||||
bit: 0
|
# edit_config:
|
||||||
edit_config:
|
# label: "perm.config.edit_config"
|
||||||
label: "perm.config.edit_config"
|
# alsoSet: 'read_config'
|
||||||
alsoSet: 'read_config'
|
# server_info:
|
||||||
bit: 2
|
# label: "perm.config.server_info"
|
||||||
server_info:
|
|
||||||
label: "perm.config.server_info"
|
|
||||||
bit: 6
|
|
||||||
|
|
||||||
system:
|
system:
|
||||||
label: "perm.system"
|
label: "perm.system"
|
||||||
group: "system"
|
group: "system"
|
||||||
operations:
|
operations:
|
||||||
use_debug:
|
|
||||||
label: "perm.config.use_debug"
|
|
||||||
bit: 0
|
|
||||||
show_logs:
|
show_logs:
|
||||||
label: "perm.show_logs"
|
label: "perm.show_logs"
|
||||||
bit: 2
|
|
||||||
delete_logs:
|
delete_logs:
|
||||||
label: "perm.delete_logs"
|
label: "perm.delete_logs"
|
||||||
alsoSet: 'show_logs'
|
alsoSet: 'show_logs'
|
||||||
bit: 4
|
|
||||||
|
|
||||||
devices_parts:
|
|
||||||
label: "perm.device_parts"
|
|
||||||
group: "parts"
|
|
||||||
operations:
|
|
||||||
read:
|
|
||||||
label: "perm.read"
|
|
||||||
bit: 0
|
|
||||||
edit:
|
|
||||||
label: "perm.edit"
|
|
||||||
alsoSet: 'read'
|
|
||||||
bit: 2
|
|
||||||
create:
|
|
||||||
label: "perm.create"
|
|
||||||
alsoSet: ['edit', 'read']
|
|
||||||
bit: 6
|
|
||||||
delete:
|
|
||||||
label: "perm.delete"
|
|
||||||
alsoSet: ['edit', 'read']
|
|
||||||
bit: 8
|
|
||||||
|
|
||||||
self:
|
self:
|
||||||
label: "perm.self"
|
label: "perm.self"
|
||||||
operations:
|
operations:
|
||||||
edit_infos:
|
edit_infos:
|
||||||
label: "perm.self.edit_infos"
|
label: "perm.self.edit_infos"
|
||||||
bit: 0
|
|
||||||
edit_username:
|
edit_username:
|
||||||
label: "perm.self.edit_username"
|
label: "perm.self.edit_username"
|
||||||
bit: 2
|
|
||||||
show_permissions:
|
show_permissions:
|
||||||
label: "perm.self.show_permissions"
|
label: "perm.self.show_permissions"
|
||||||
bit: 4
|
|
||||||
show_logs:
|
show_logs:
|
||||||
label: "perm.self.show_logs"
|
label: "perm.self.show_logs"
|
||||||
bit: 6
|
|
||||||
|
|
||||||
labels:
|
labels:
|
||||||
label: "perm.labels"
|
label: "perm.labels"
|
||||||
operations:
|
operations:
|
||||||
create_labels:
|
create_labels:
|
||||||
label: "perm.self.create_labels"
|
label: "perm.self.create_labels"
|
||||||
bit: 0
|
|
||||||
edit_options:
|
edit_options:
|
||||||
label: "perm.self.edit_options"
|
label: "perm.self.edit_options"
|
||||||
bit: 2
|
|
||||||
alsoSet: ['create_labels']
|
alsoSet: ['create_labels']
|
||||||
read_profiles:
|
read_profiles:
|
||||||
label: "perm.self.read_profiles"
|
label: "perm.self.read_profiles"
|
||||||
bit: 10
|
|
||||||
edit_profiles:
|
edit_profiles:
|
||||||
label: "perm.self.edit_profiles"
|
label: "perm.self.edit_profiles"
|
||||||
bit: 6
|
|
||||||
alsoSet: ['read_profiles']
|
alsoSet: ['read_profiles']
|
||||||
create_profiles:
|
create_profiles:
|
||||||
label: "perm.self.create_profiles"
|
label: "perm.self.create_profiles"
|
||||||
bit: 8
|
|
||||||
alsoSet: ['read_profiles', 'edit_profiles']
|
alsoSet: ['read_profiles', 'edit_profiles']
|
||||||
delete_profiles:
|
delete_profiles:
|
||||||
label: "perm.self.delete_profiles"
|
label: "perm.self.delete_profiles"
|
||||||
bit: 4
|
|
||||||
alsoSet: ['read_profiles', 'edit_profiles', 'create_profiles']
|
alsoSet: ['read_profiles', 'edit_profiles', 'create_profiles']
|
||||||
use_twig:
|
use_twig:
|
||||||
label: "perm.labels.use_twig"
|
label: "perm.labels.use_twig"
|
||||||
bit: 12
|
|
||||||
alsoSet: ['create_labels', 'edit_options']
|
alsoSet: ['create_labels', 'edit_options']
|
||||||
show_history:
|
show_history:
|
||||||
label: "perm.show_history"
|
label: "perm.show_history"
|
||||||
bit: 14
|
|
||||||
alsoSet: ['read_profiles']
|
alsoSet: ['read_profiles']
|
||||||
revert_element:
|
revert_element:
|
||||||
label: "perm.revert_elements"
|
label: "perm.revert_elements"
|
||||||
bit: 16
|
|
||||||
alsoSet: ['read_profiles', 'edit_profiles', 'create_profiles', 'delete_profiles']
|
alsoSet: ['read_profiles', 'edit_profiles', 'create_profiles', 'delete_profiles']
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue