mirror of
https://github.com/bitwarden/server.git
synced 2025-07-03 00:52:49 -05:00
[SM-579] Prevent creating secrets not attached to projects (#2754)
* Prevent creating secrets not attached to projects, and prevent updating secrets to remove project relation * Fix test
This commit is contained in:
@ -26,10 +26,15 @@ public class CreateSecretCommand : ICreateSecretCommand
|
||||
var accessClient = AccessClientHelper.ToAccessClient(_currentContext.ClientType, orgAdmin);
|
||||
var project = secret.Projects?.FirstOrDefault();
|
||||
|
||||
if (project == null)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
var hasAccess = accessClient switch
|
||||
{
|
||||
AccessClientType.NoAccessCheck => true,
|
||||
AccessClientType.User => project != null && await _projectRepository.UserHasWriteAccessToProject(project.Id, userId),
|
||||
AccessClientType.User => await _projectRepository.UserHasWriteAccessToProject(project.Id, userId),
|
||||
_ => false,
|
||||
};
|
||||
|
||||
|
@ -33,6 +33,11 @@ public class UpdateSecretCommand : IUpdateSecretCommand
|
||||
|
||||
var project = updatedSecret.Projects?.FirstOrDefault();
|
||||
|
||||
if (secret.Projects != null && secret.Projects.Any() && project == null)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
var hasAccess = accessClient switch
|
||||
{
|
||||
AccessClientType.NoAccessCheck => true,
|
||||
|
Reference in New Issue
Block a user