mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-18 02:56:57 +00:00
feat: fixing more and more ts
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { ForbiddenError } from "@casl/ability";
|
||||
import { Knex } from "knex";
|
||||
|
||||
import { AccessScope } from "@app/db/schemas";
|
||||
import { OrgPermissionActions, OrgPermissionSubjects } from "@app/ee/services/permission/org-permission";
|
||||
import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types";
|
||||
import { crypto } from "@app/lib/crypto";
|
||||
@@ -9,12 +10,11 @@ import { logger } from "@app/lib/logger";
|
||||
import { TAuthTokenServiceFactory } from "@app/services/auth-token/auth-token-service";
|
||||
import { TokenType } from "@app/services/auth-token/auth-token-types";
|
||||
import { TOrgDALFactory } from "@app/services/org/org-dal";
|
||||
import { TOrgMembershipDALFactory } from "@app/services/org-membership/org-membership-dal";
|
||||
import { SmtpTemplates, TSmtpService } from "@app/services/smtp/smtp-service";
|
||||
|
||||
import { AuthMethod, AuthTokenType } from "../auth/auth-type";
|
||||
import { TGroupProjectDALFactory } from "../group-project/group-project-dal";
|
||||
import { TProjectMembershipDALFactory } from "../project-membership/project-membership-dal";
|
||||
import { TMembershipUserDALFactory } from "../membership-user/membership-user-dal";
|
||||
import { TUserAliasDALFactory } from "../user-alias/user-alias-dal";
|
||||
import { TUserDALFactory } from "./user-dal";
|
||||
import { TListUserGroupsDTO, TUpdateUserEmailDTO, TUpdateUserMfaDTO } from "./user-types";
|
||||
@@ -37,9 +37,8 @@ type TUserServiceFactoryDep = {
|
||||
>;
|
||||
groupProjectDAL: Pick<TGroupProjectDALFactory, "findByUserId">;
|
||||
orgDAL: Pick<TOrgDALFactory, "findById" | "find">;
|
||||
orgMembershipDAL: Pick<TOrgMembershipDALFactory, "find" | "insertMany" | "findOne" | "updateById">;
|
||||
membershipUserDAL: Pick<TMembershipUserDALFactory, "find" | "insertMany" | "findOne" | "updateById">;
|
||||
tokenService: Pick<TAuthTokenServiceFactory, "createTokenForUser" | "validateTokenForUser" | "revokeAllMySessions">;
|
||||
projectMembershipDAL: Pick<TProjectMembershipDALFactory, "find">;
|
||||
smtpService: Pick<TSmtpService, "sendMail">;
|
||||
permissionService: TPermissionServiceFactory;
|
||||
userAliasDAL: Pick<TUserAliasDALFactory, "findOne" | "find" | "updateById" | "delete">;
|
||||
@@ -50,8 +49,7 @@ export type TUserServiceFactory = ReturnType<typeof userServiceFactory>;
|
||||
export const userServiceFactory = ({
|
||||
userDAL,
|
||||
orgDAL,
|
||||
orgMembershipDAL,
|
||||
projectMembershipDAL,
|
||||
membershipUserDAL,
|
||||
groupProjectDAL,
|
||||
tokenService,
|
||||
smtpService,
|
||||
@@ -183,13 +181,19 @@ export const userServiceFactory = ({
|
||||
};
|
||||
|
||||
const checkUserScimRestriction = async (userId: string, tx?: Knex) => {
|
||||
const userOrgs = await orgMembershipDAL.find({ userId }, { tx });
|
||||
const userOrgs = await membershipUserDAL.find(
|
||||
{
|
||||
actorUserId: userId,
|
||||
scope: AccessScope.Organization
|
||||
},
|
||||
{ tx }
|
||||
);
|
||||
|
||||
if (userOrgs.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const orgIds = userOrgs.map((membership) => membership.orgId);
|
||||
const orgIds = userOrgs.map((membership) => membership.scopeOrgId);
|
||||
const organizations = await orgDAL.find({ $in: { id: orgIds } }, { tx });
|
||||
|
||||
return organizations.some((org) => org.scimEnabled);
|
||||
@@ -397,9 +401,10 @@ export const userServiceFactory = ({
|
||||
};
|
||||
|
||||
const getUserProjectFavorites = async (userId: string, orgId: string) => {
|
||||
const orgMembership = await orgMembershipDAL.findOne({
|
||||
userId,
|
||||
orgId
|
||||
const orgMembership = await membershipUserDAL.findOne({
|
||||
scope: AccessScope.Organization,
|
||||
actorUserId: userId,
|
||||
scopeOrgId: orgId
|
||||
});
|
||||
|
||||
if (!orgMembership) {
|
||||
@@ -412,9 +417,10 @@ export const userServiceFactory = ({
|
||||
};
|
||||
|
||||
const updateUserProjectFavorites = async (userId: string, orgId: string, projectIds: string[]) => {
|
||||
const orgMembership = await orgMembershipDAL.findOne({
|
||||
userId,
|
||||
orgId
|
||||
const orgMembership = await membershipUserDAL.findOne({
|
||||
scope: AccessScope.Organization,
|
||||
actorUserId: userId,
|
||||
scopeOrgId: orgId
|
||||
});
|
||||
|
||||
if (!orgMembership) {
|
||||
@@ -423,18 +429,20 @@ export const userServiceFactory = ({
|
||||
});
|
||||
}
|
||||
|
||||
const matchingUserProjectMemberships = await projectMembershipDAL.find({
|
||||
userId,
|
||||
const matchingUserProjectMemberships = await membershipUserDAL.find({
|
||||
scope: AccessScope.Project,
|
||||
scopeOrgId: orgId,
|
||||
actorUserId: userId,
|
||||
$in: {
|
||||
projectId: projectIds
|
||||
scopeProjectId: projectIds
|
||||
}
|
||||
});
|
||||
|
||||
const memberProjectFavorites = matchingUserProjectMemberships.map(
|
||||
(projectMembership) => projectMembership.projectId
|
||||
(projectMembership) => projectMembership.scopeProjectId as string
|
||||
);
|
||||
|
||||
const updatedOrgMembership = await orgMembershipDAL.updateById(orgMembership.id, {
|
||||
const updatedOrgMembership = await membershipUserDAL.updateById(orgMembership.id, {
|
||||
projectFavorites: memberProjectFavorites
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user