mirror of
https://github.com/bitwarden/browser
synced 2025-12-15 15:53:27 +00:00
SG-680 - Created Domain Verification component and started scaffolding out HTML
This commit is contained in:
@@ -52,6 +52,14 @@
|
|||||||
>
|
>
|
||||||
{{ "singleSignOn" | i18n }}
|
{{ "singleSignOn" | i18n }}
|
||||||
</a>
|
</a>
|
||||||
|
<a
|
||||||
|
routerLink="domain-verification"
|
||||||
|
class="list-group-item"
|
||||||
|
routerLinkActive="active"
|
||||||
|
*ngIf="organization?.canManageDomainVerification"
|
||||||
|
>
|
||||||
|
{{ "domainVerification" | i18n }}
|
||||||
|
</a>
|
||||||
<a
|
<a
|
||||||
routerLink="scim"
|
routerLink="scim"
|
||||||
class="list-group-item"
|
class="list-group-item"
|
||||||
|
|||||||
1
apps/web/src/images/domain-verification/domain.svg
Normal file
1
apps/web/src/images/domain-verification/domain.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="129" height="123" fill="none"><circle cx="67.071" cy="61.444" r="59.684" fill="#F0F0F0" stroke="#89929F" stroke-width="3"/><path stroke="#89929F" stroke-linecap="round" stroke-width="1.5" d="M21.55 100.351c30.98 2.459 58.077-20.525 60.522-51.335 1.482-18.666-6.06-34.632-19.411-45.882"/><path stroke="#89929F" stroke-linecap="round" stroke-width="1.5" d="M14.496 33.785C12.136 66.27 38.456 95.843 72.6 98.322c1.593.116 5.962.174 7.528.177 4.43-.177 17.611-2.407 26.618-7.151 6.626-3.49 12.932-7.15 17.831-12.737"/><path stroke="#89929F" stroke-linecap="round" stroke-width="1.5" d="M124.435 48.005c-17.949-24.123-55.678-26.834-83.084-6.443-16.604 12.353-26.685 30.356-27.493 48.08"/><circle cx="78.336" cy="27.893" r="5" fill="#89929F"/><circle cx="19.703" cy="66.052" r="5" fill="#89929F"/><circle cx="52.277" cy="93.973" r="5" fill="#89929F"/></svg>
|
||||||
|
After Width: | Height: | Size: 898 B |
@@ -5507,5 +5507,17 @@
|
|||||||
},
|
},
|
||||||
"memberAccessAll": {
|
"memberAccessAll": {
|
||||||
"message": "This member can access and modify all items."
|
"message": "This member can access and modify all items."
|
||||||
|
},
|
||||||
|
"domainVerification": {
|
||||||
|
"message": "Domain Verification"
|
||||||
|
},
|
||||||
|
"newDomain": {
|
||||||
|
"message": "New Domain"
|
||||||
|
},
|
||||||
|
"noDomains": {
|
||||||
|
"message": "No domains"
|
||||||
|
},
|
||||||
|
"noDomainsSubText": {
|
||||||
|
"message": "Connecting a domain allows members to skip the SSO identifier field during Login with SSO."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
<div class="tw-flex tw-flex-row tw-justify-between">
|
||||||
|
<h1>{{ "domainVerification" | i18n }}</h1>
|
||||||
|
|
||||||
|
<button type="button" buttonType="primary" bitButton>
|
||||||
|
<i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i> {{ "newDomain" | i18n }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tw-flex tw-flex-row">
|
||||||
|
<bit-table class="tw-w-full tw-table-auto">
|
||||||
|
<ng-container header>
|
||||||
|
<tr>
|
||||||
|
<th bitCell>Name</th>
|
||||||
|
<th bitCell>Status</th>
|
||||||
|
<th bitCell>Last Checked</th>
|
||||||
|
<th bitCell>Options</th>
|
||||||
|
</tr>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container body>
|
||||||
|
<!-- <tr bitRow [alignContent]="alignRowContent">
|
||||||
|
<td bitCell>Cell 1</td>
|
||||||
|
<td bitCell>Cell 2 <br> Multiline Cell</td>
|
||||||
|
<td bitCell>Cell 3</td>
|
||||||
|
</tr>
|
||||||
|
<tr bitRow [alignContent]="alignRowContent">
|
||||||
|
<td bitCell>Cell 4</td>
|
||||||
|
<td bitCell>Cell 5</td>
|
||||||
|
<td bitCell>Cell 6</td>
|
||||||
|
</tr>
|
||||||
|
<tr bitRow [alignContent]="alignRowContent">
|
||||||
|
<td bitCell>Cell 7 <br> Multiline Cell</td>
|
||||||
|
<td bitCell>Cell 8</td>
|
||||||
|
<td bitCell>Cell 9</td>
|
||||||
|
</tr> -->
|
||||||
|
</ng-container>
|
||||||
|
</bit-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tw-mt-6 tw-flex tw-flex-col tw-items-center tw-justify-center">
|
||||||
|
<img src="../../images/domain-verification/domain.svg" class="tw-mb-4" alt="domain" />
|
||||||
|
|
||||||
|
<div class="tw-mb-2 tw-flex tw-flex-row tw-justify-center">
|
||||||
|
<span class="tw-text-lg tw-font-bold">{{ "noDomains" | i18n }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tw-mb-4 tw-flex tw-flex-row tw-justify-center">
|
||||||
|
<span>
|
||||||
|
{{ "noDomainsSubText" | i18n }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="button" buttonType="secondary" bitButton>
|
||||||
|
<i class="bwi bwi-plus bwi-fw" aria-hidden="true"></i> {{ "newDomain" | i18n }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
import { Component, OnDestroy, OnInit } from "@angular/core";
|
||||||
|
import { ActivatedRoute } from "@angular/router";
|
||||||
|
import { Subject } from "rxjs";
|
||||||
|
|
||||||
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||||
|
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||||
|
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/abstractions/organization/organization-api.service.abstraction";
|
||||||
|
import { OrganizationService } from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
|
||||||
|
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||||
|
import { Organization } from "@bitwarden/common/models/domain/organization";
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: "app-org-manage-domain-verification",
|
||||||
|
templateUrl: "domain-verification.component.html",
|
||||||
|
})
|
||||||
|
export class DomainVerificationComponent implements OnInit, OnDestroy {
|
||||||
|
private componentDestroyed$ = new Subject<void>();
|
||||||
|
|
||||||
|
organization: Organization;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
private apiService: ApiService,
|
||||||
|
private platformUtilsService: PlatformUtilsService,
|
||||||
|
private i18nService: I18nService,
|
||||||
|
private organizationService: OrganizationService,
|
||||||
|
private organizationApiService: OrganizationApiServiceAbstraction
|
||||||
|
) {}
|
||||||
|
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||||
|
async ngOnInit() {}
|
||||||
|
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
this.componentDestroyed$.next();
|
||||||
|
this.componentDestroyed$.complete();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ import { OrganizationPermissionsGuard } from "@bitwarden/web-vault/app/organizat
|
|||||||
import { OrganizationLayoutComponent } from "@bitwarden/web-vault/app/organizations/layouts/organization-layout.component";
|
import { OrganizationLayoutComponent } from "@bitwarden/web-vault/app/organizations/layouts/organization-layout.component";
|
||||||
import { SettingsComponent } from "@bitwarden/web-vault/app/organizations/settings/settings.component";
|
import { SettingsComponent } from "@bitwarden/web-vault/app/organizations/settings/settings.component";
|
||||||
|
|
||||||
|
import { DomainVerificationComponent } from "./manage/domain-verification.component";
|
||||||
import { ScimComponent } from "./manage/scim.component";
|
import { ScimComponent } from "./manage/scim.component";
|
||||||
import { SsoComponent } from "./manage/sso.component";
|
import { SsoComponent } from "./manage/sso.component";
|
||||||
|
|
||||||
@@ -33,6 +34,14 @@ const routes: Routes = [
|
|||||||
organizationPermissions: (org: Organization) => org.canManageSso,
|
organizationPermissions: (org: Organization) => org.canManageSso,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "domain-verification",
|
||||||
|
component: DomainVerificationComponent,
|
||||||
|
canActivate: [OrganizationPermissionsGuard],
|
||||||
|
data: {
|
||||||
|
organizationPermissions: (org: Organization) => org.canManageDomainVerification,
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: "scim",
|
path: "scim",
|
||||||
component: ScimComponent,
|
component: ScimComponent,
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ import { NgModule } from "@angular/core";
|
|||||||
import { SharedModule } from "@bitwarden/web-vault/app/shared/shared.module";
|
import { SharedModule } from "@bitwarden/web-vault/app/shared/shared.module";
|
||||||
|
|
||||||
import { InputCheckboxComponent } from "./components/input-checkbox.component";
|
import { InputCheckboxComponent } from "./components/input-checkbox.component";
|
||||||
|
import { DomainVerificationComponent } from "./manage/domain-verification.component";
|
||||||
import { ScimComponent } from "./manage/scim.component";
|
import { ScimComponent } from "./manage/scim.component";
|
||||||
import { SsoComponent } from "./manage/sso.component";
|
import { SsoComponent } from "./manage/sso.component";
|
||||||
import { OrganizationsRoutingModule } from "./organizations-routing.module";
|
import { OrganizationsRoutingModule } from "./organizations-routing.module";
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [SharedModule, OrganizationsRoutingModule],
|
imports: [SharedModule, OrganizationsRoutingModule],
|
||||||
declarations: [InputCheckboxComponent, SsoComponent, ScimComponent],
|
declarations: [InputCheckboxComponent, SsoComponent, ScimComponent, DomainVerificationComponent],
|
||||||
})
|
})
|
||||||
export class OrganizationsModule {}
|
export class OrganizationsModule {}
|
||||||
|
|||||||
Reference in New Issue
Block a user