mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Fixes #4146: Fix SecretRole permissions enforcement
This commit is contained in:
@ -93,8 +93,8 @@ class SecretViewSet(ModelViewSet):
|
||||
|
||||
secret = self.get_object()
|
||||
|
||||
# Attempt to decrypt the secret if the master key is known
|
||||
if self.master_key is not None:
|
||||
# Attempt to decrypt the secret if the user is permitted and the master key is known
|
||||
if secret.decryptable_by(request.user) and self.master_key is not None:
|
||||
secret.decrypt(self.master_key)
|
||||
|
||||
serializer = self.get_serializer(secret)
|
||||
@ -111,7 +111,9 @@ class SecretViewSet(ModelViewSet):
|
||||
if self.master_key is not None:
|
||||
secrets = []
|
||||
for secret in page:
|
||||
secret.decrypt(self.master_key)
|
||||
# Enforce role permissions
|
||||
if secret.decryptable_by(request.user):
|
||||
secret.decrypt(self.master_key)
|
||||
secrets.append(secret)
|
||||
serializer = self.get_serializer(secrets, many=True)
|
||||
else:
|
||||
|
Reference in New Issue
Block a user