mirror of
https://github.com/bitwarden/browser
synced 2025-12-20 18:23:31 +00:00
[SM-670] Restrict UI actions based on user permission (#5090)
* Restrict UI actions based on user permission * Swap to hiding bulk option without permission * Fix read/write assignment in project service * Filter projects based on permission in dialog * Fix encryption error for updating secret result * Fix spinner (#5182) * Swap to bit-no-items * [SM-699] Projects bulk delete - add bulk confirmation dialog (#5200) * Add bulk confirmation dialog * Code review updates * Code review - load projects * code review - swap to observable * Code review - remove oninit
This commit is contained in:
@@ -9,15 +9,12 @@ import { SymmetricCryptoKey } from "@bitwarden/common/models/domain/symmetric-cr
|
||||
import { ListResponse } from "@bitwarden/common/models/response/list.response";
|
||||
|
||||
import { ProjectListView } from "../models/view/project-list.view";
|
||||
import { ProjectPermissionDetailsView, ProjectView } from "../models/view/project.view";
|
||||
import { ProjectView } from "../models/view/project.view";
|
||||
import { BulkOperationStatus } from "../shared/dialogs/bulk-status-dialog.component";
|
||||
|
||||
import { ProjectRequest } from "./models/requests/project.request";
|
||||
import { ProjectListItemResponse } from "./models/responses/project-list-item.response";
|
||||
import {
|
||||
ProjectPermissionDetailsResponse,
|
||||
ProjectResponse,
|
||||
} from "./models/responses/project.response";
|
||||
import { ProjectResponse } from "./models/responses/project.response";
|
||||
|
||||
@Injectable({
|
||||
providedIn: "root",
|
||||
@@ -32,10 +29,10 @@ export class ProjectService {
|
||||
private encryptService: EncryptService
|
||||
) {}
|
||||
|
||||
async getByProjectId(projectId: string): Promise<ProjectPermissionDetailsView> {
|
||||
async getByProjectId(projectId: string): Promise<ProjectView> {
|
||||
const r = await this.apiService.send("GET", "/projects/" + projectId, null, true, true);
|
||||
const projectResponse = new ProjectPermissionDetailsResponse(r);
|
||||
return await this.createProjectPermissionDetailsView(projectResponse);
|
||||
const projectResponse = new ProjectResponse(r);
|
||||
return await this.createProjectView(projectResponse);
|
||||
}
|
||||
|
||||
async getProjects(organizationId: string): Promise<ProjectListView[]> {
|
||||
@@ -99,9 +96,7 @@ export class ProjectService {
|
||||
return request;
|
||||
}
|
||||
|
||||
private async createProjectView(
|
||||
projectResponse: ProjectResponse | ProjectPermissionDetailsResponse
|
||||
) {
|
||||
private async createProjectView(projectResponse: ProjectResponse) {
|
||||
const orgKey = await this.getOrganizationKey(projectResponse.organizationId);
|
||||
|
||||
const projectView = new ProjectView();
|
||||
@@ -109,6 +104,8 @@ export class ProjectService {
|
||||
projectView.organizationId = projectResponse.organizationId;
|
||||
projectView.creationDate = projectResponse.creationDate;
|
||||
projectView.revisionDate = projectResponse.revisionDate;
|
||||
projectView.read = projectResponse.read;
|
||||
projectView.write = projectResponse.write;
|
||||
projectView.name = await this.encryptService.decryptToUtf8(
|
||||
new EncString(projectResponse.name),
|
||||
orgKey
|
||||
@@ -116,16 +113,6 @@ export class ProjectService {
|
||||
return projectView;
|
||||
}
|
||||
|
||||
private async createProjectPermissionDetailsView(
|
||||
projectResponse: ProjectPermissionDetailsResponse
|
||||
): Promise<ProjectPermissionDetailsView> {
|
||||
return {
|
||||
...(await this.createProjectView(projectResponse)),
|
||||
read: projectResponse.read,
|
||||
write: projectResponse.write,
|
||||
};
|
||||
}
|
||||
|
||||
private async createProjectsListView(
|
||||
organizationId: string,
|
||||
projects: ProjectListItemResponse[]
|
||||
@@ -136,6 +123,8 @@ export class ProjectService {
|
||||
const projectListView = new ProjectListView();
|
||||
projectListView.id = s.id;
|
||||
projectListView.organizationId = s.organizationId;
|
||||
projectListView.read = s.read;
|
||||
projectListView.write = s.write;
|
||||
projectListView.name = await this.encryptService.decryptToUtf8(
|
||||
new EncString(s.name),
|
||||
orgKey
|
||||
|
||||
Reference in New Issue
Block a user