mirror of
https://github.com/bitwarden/server.git
synced 2025-06-18 01:53:49 -05:00

* Add RequiresDefaultCollection method to PersonalOwnershipPolicyRequirement * Add CreateDefaultLocation feature flag to Constants.cs * Add DefaultUserCollectionName property to OrganizationUserConfirmRequestModel with encryption attributes * Update PersonalOwnershipPolicyRequirement instantiation in tests to use constructor with parameters instead of property assignment * Enhance ConfirmOrganizationUserCommand to support default user collection creation. Added logic to check if a default collection is required based on organization policies and feature flags. Updated ConfirmUserAsync method signature to include an optional defaultUserCollectionName parameter. Added corresponding tests to validate the new functionality. * Refactor Confirm method in OrganizationUsersController to use Guid parameters directly, simplifying the code. Updated ConfirmUserAsync call to include DefaultUserCollectionName from the input model. * Move logic for handling confirmation side effects into a separate method * Refactor PersonalOwnershipPolicyRequirement to use enum for ownership state - Introduced PersonalOwnershipState enum to represent allowed and restricted states. - Updated PersonalOwnershipPolicyRequirement constructor and properties to utilize the new enum. - Modified related classes and tests to reflect changes in ownership state handling.
124 lines
3.5 KiB
C#
124 lines
3.5 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using Bit.Api.Models.Request;
|
|
using Bit.Core.Entities;
|
|
using Bit.Core.Enums;
|
|
using Bit.Core.Models.Data;
|
|
using Bit.Core.Models.Data.Organizations.OrganizationUsers;
|
|
using Bit.Core.Utilities;
|
|
|
|
namespace Bit.Api.AdminConsole.Models.Request.Organizations;
|
|
|
|
public class OrganizationUserInviteRequestModel
|
|
{
|
|
[Required]
|
|
[StrictEmailAddressList]
|
|
public IEnumerable<string> Emails { get; set; }
|
|
[Required]
|
|
[EnumDataType(typeof(OrganizationUserType))]
|
|
public OrganizationUserType? Type { get; set; }
|
|
public bool AccessSecretsManager { get; set; }
|
|
public Permissions Permissions { get; set; }
|
|
public IEnumerable<SelectionReadOnlyRequestModel> Collections { get; set; }
|
|
public IEnumerable<Guid> Groups { get; set; }
|
|
|
|
public OrganizationUserInviteData ToData()
|
|
{
|
|
return new OrganizationUserInviteData
|
|
{
|
|
Emails = Emails,
|
|
Type = Type,
|
|
AccessSecretsManager = AccessSecretsManager,
|
|
Collections = Collections?.Select(c => c.ToSelectionReadOnly()),
|
|
Groups = Groups,
|
|
Permissions = Permissions,
|
|
};
|
|
}
|
|
}
|
|
|
|
public class OrganizationUserAcceptInitRequestModel
|
|
{
|
|
[Required]
|
|
public string Token { get; set; }
|
|
[Required]
|
|
public string Key { get; set; }
|
|
[Required]
|
|
public OrganizationKeysRequestModel Keys { get; set; }
|
|
[EncryptedString]
|
|
[EncryptedStringLength(1000)]
|
|
public string CollectionName { get; set; }
|
|
}
|
|
|
|
public class OrganizationUserAcceptRequestModel
|
|
{
|
|
[Required]
|
|
public string Token { get; set; }
|
|
// Used to auto-enroll in master password reset
|
|
public string ResetPasswordKey { get; set; }
|
|
}
|
|
|
|
public class OrganizationUserConfirmRequestModel
|
|
{
|
|
[Required]
|
|
public string Key { get; set; }
|
|
|
|
[EncryptedString]
|
|
[EncryptedStringLength(1000)]
|
|
public string DefaultUserCollectionName { get; set; }
|
|
}
|
|
|
|
public class OrganizationUserBulkConfirmRequestModelEntry
|
|
{
|
|
[Required]
|
|
public Guid Id { get; set; }
|
|
[Required]
|
|
public string Key { get; set; }
|
|
}
|
|
|
|
public class OrganizationUserBulkConfirmRequestModel
|
|
{
|
|
[Required]
|
|
public IEnumerable<OrganizationUserBulkConfirmRequestModelEntry> Keys { get; set; }
|
|
|
|
public Dictionary<Guid, string> ToDictionary()
|
|
{
|
|
return Keys.ToDictionary(e => e.Id, e => e.Key);
|
|
}
|
|
}
|
|
|
|
public class OrganizationUserUpdateRequestModel
|
|
{
|
|
[Required]
|
|
[EnumDataType(typeof(OrganizationUserType))]
|
|
public OrganizationUserType? Type { get; set; }
|
|
public bool AccessSecretsManager { get; set; }
|
|
public Permissions Permissions { get; set; }
|
|
public IEnumerable<SelectionReadOnlyRequestModel> Collections { get; set; }
|
|
public IEnumerable<Guid> Groups { get; set; }
|
|
|
|
public OrganizationUser ToOrganizationUser(OrganizationUser existingUser)
|
|
{
|
|
existingUser.Type = Type.Value;
|
|
existingUser.Permissions = CoreHelpers.ClassToJsonData(Permissions);
|
|
existingUser.AccessSecretsManager = AccessSecretsManager;
|
|
return existingUser;
|
|
}
|
|
}
|
|
|
|
public class OrganizationUserResetPasswordEnrollmentRequestModel
|
|
{
|
|
public string ResetPasswordKey { get; set; }
|
|
public string MasterPasswordHash { get; set; }
|
|
}
|
|
|
|
public class OrganizationUserBulkRequestModel
|
|
{
|
|
[Required]
|
|
public IEnumerable<Guid> Ids { get; set; }
|
|
}
|
|
|
|
public class ResetPasswordWithOrgIdRequestModel : OrganizationUserResetPasswordEnrollmentRequestModel
|
|
{
|
|
[Required]
|
|
public Guid OrganizationId { get; set; }
|
|
}
|