mirror of
https://github.com/bitwarden/mobile
synced 2025-12-25 04:33:36 +00:00
* initial commit - add UsesKeyConnector to UserService - add models - begin work on authentication * finish auth workflow for key connector sso login - finish api call for get user key - start api calls for posts to key connector * Bypass lock page if already unlocked * Move logic to KeyConnectorService, log out if no pin or biometric is set * Disable password reprompt when using key connector * hide password reprompt checkbox when editing or adding cipher * add PostUserKey and PostSetKeyConnector calls * add ConvertMasterPasswordPage * add functionality to RemoveMasterPasswordPage - rename Convert to Remove * Hide Change Master Password button if using key connector * Add OTP verification for export component * Update src/App/Pages/Vault/AddEditPage.xaml.cs Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com> * remove toolbar item "close" * Update src/Core/Models/Request/KeyConnectorUserKeyRequest.cs Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com> * remove new line in resource string - format warning as two labels - set label in code behind for loading simultaneously * implement GetAndSetKey in KeyConnectorService - ignore EnvironmentService call * remove unnecesary orgIdentifier * move RemoveMasterPasswordPage call to LockPage * add spacing to export vault page * log out if no PIN or bio on lock page with key connector * Delete excessive whitespace * Delete excessive whitespace * Change capitalisation of OTP * add default value to models for backwards compatibility * remove this keyword * actually handle exceptions * move RemoveMasterPasswordPage to TabPage using messaging service * add minor improvements * remove 'this.' Co-authored-by: Hinton <oscar@oscarhinton.com> Co-authored-by: Thomas Rittson <trittson@bitwarden.com> Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
104 lines
4.1 KiB
C#
104 lines
4.1 KiB
C#
using System.Data.Common;
|
|
using Bit.Core.Enums;
|
|
using Bit.Core.Models.Data;
|
|
|
|
namespace Bit.Core.Models.Domain
|
|
{
|
|
public class Organization
|
|
{
|
|
public Organization() { }
|
|
|
|
public Organization(OrganizationData obj)
|
|
{
|
|
Id = obj.Id;
|
|
Name = obj.Name;
|
|
Status = obj.Status;
|
|
Type = obj.Type;
|
|
Enabled = obj.Enabled;
|
|
UseGroups = obj.UseGroups;
|
|
UseDirectory = obj.UseDirectory;
|
|
UseEvents = obj.UseEvents;
|
|
UseTotp = obj.UseTotp;
|
|
Use2fa = obj.Use2fa;
|
|
UseApi = obj.UseApi;
|
|
UsePolicies = obj.UsePolicies;
|
|
SelfHost = obj.SelfHost;
|
|
UsersGetPremium = obj.UsersGetPremium;
|
|
Seats = obj.Seats;
|
|
MaxCollections = obj.MaxCollections;
|
|
MaxStorageGb = obj.MaxStorageGb;
|
|
Permissions = obj.Permissions ?? new Permissions();
|
|
Identifier = obj.Identifier;
|
|
UsesKeyConnector = obj.UsesKeyConnector;
|
|
KeyConnectorUrl = obj.KeyConnectorUrl;
|
|
}
|
|
|
|
public string Id { get; set; }
|
|
public string Name { get; set; }
|
|
public OrganizationUserStatusType Status { get; set; }
|
|
public OrganizationUserType Type { get; set; }
|
|
public bool Enabled { get; set; }
|
|
public bool UseGroups { get; set; }
|
|
public bool UseDirectory { get; set; }
|
|
public bool UseEvents { get; set; }
|
|
public bool UseTotp { get; set; }
|
|
public bool Use2fa { get; set; }
|
|
public bool UseApi { get; set; }
|
|
public bool UsePolicies { get; set; }
|
|
public bool SelfHost { get; set; }
|
|
public bool UsersGetPremium { get; set; }
|
|
public int? Seats { get; set; }
|
|
public short? MaxCollections { get; set; }
|
|
public short? MaxStorageGb { get; set; }
|
|
public Permissions Permissions { get; set; } = new Permissions();
|
|
public string Identifier { get; set; }
|
|
public bool UsesKeyConnector { get; set; }
|
|
public string KeyConnectorUrl { get; set; }
|
|
|
|
public bool CanAccess
|
|
{
|
|
get
|
|
{
|
|
if (Type == OrganizationUserType.Owner)
|
|
{
|
|
return true;
|
|
}
|
|
return Enabled && Status == OrganizationUserStatusType.Confirmed;
|
|
}
|
|
}
|
|
|
|
public bool IsManager
|
|
{
|
|
get
|
|
{
|
|
switch (Type)
|
|
{
|
|
case OrganizationUserType.Owner:
|
|
case OrganizationUserType.Admin:
|
|
case OrganizationUserType.Manager:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
public bool IsAdmin => Type == OrganizationUserType.Owner || Type == OrganizationUserType.Admin;
|
|
public bool IsOwner => Type == OrganizationUserType.Owner;
|
|
public bool IsCustom => Type == OrganizationUserType.Custom;
|
|
public bool canAccessBusinessPortl => IsAdmin || Permissions.AccessBusinessPortal;
|
|
public bool canAccessEventLogs => IsAdmin || Permissions.AccessEventLogs;
|
|
public bool canAccessImportExport => IsAdmin || Permissions.AccessImportExport;
|
|
public bool canAccessReports => IsAdmin || Permissions.AccessReports;
|
|
public bool canCreateNewCollections => IsAdmin || Permissions.CreateNewCollections;
|
|
public bool canEditAnyCollection => IsAdmin || Permissions.EditAnyCollection;
|
|
public bool canDeleteAnyCollection => IsAdmin || Permissions.DeleteAnyCollection;
|
|
public bool canEditAssignedCollections => IsManager || Permissions.EditAssignedCollections;
|
|
public bool canDeleteAssignedCollections => IsManager || Permissions.DeleteAssignedCollections;
|
|
public bool canManageGroups => IsAdmin || Permissions.ManageGroups;
|
|
public bool canManagePolicies => IsAdmin || Permissions.ManagePolicies;
|
|
public bool canManageUser => IsAdmin || Permissions.ManageUsers;
|
|
public bool isExemptFromPolicies => canManagePolicies;
|
|
}
|
|
}
|