mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-21 15:27:31 +00:00
681541f41b
adds possibilities to cap authenticated requests and execution seconds of actions on a defined intervall
77 lines
2.2 KiB
TypeScript
77 lines
2.2 KiB
TypeScript
import { ensureItemDoesntExist, ensureItemExists } from './ensure';
|
|
import { findFromList, searchSomething } from './search';
|
|
import { API } from './types';
|
|
|
|
export function ensureHumanIsNotOrgMember(api: API, username: string) {
|
|
return ensureItemDoesntExist(
|
|
api,
|
|
`${api.mgmtBaseURL}/orgs/me/members/_search`,
|
|
(member: any) => (<string>member.preferredLoginName).startsWith(username),
|
|
(member) => `${api.mgmtBaseURL}/orgs/me/members/${member.userId}`,
|
|
);
|
|
}
|
|
|
|
export function ensureHumanIsOrgMember(api: API, username: string, roles: string[]) {
|
|
return searchSomething(
|
|
api,
|
|
`${api.mgmtBaseURL}/users/_search`,
|
|
'POST',
|
|
findFromList((user) => {
|
|
return user.userName == username;
|
|
}),
|
|
).then((user) => {
|
|
return ensureItemExists(
|
|
api,
|
|
`${api.mgmtBaseURL}/orgs/me/members/_search`,
|
|
(member: any) => member.userId == user.entity.id,
|
|
`${api.mgmtBaseURL}/orgs/me/members`,
|
|
{
|
|
userId: user.entity.id,
|
|
roles: roles,
|
|
},
|
|
);
|
|
});
|
|
}
|
|
|
|
export function ensureHumanIsNotProjectMember(
|
|
api: API,
|
|
projectId: string,
|
|
username: string,
|
|
grantId?: string,
|
|
): Cypress.Chainable<string> {
|
|
return ensureItemDoesntExist(
|
|
api,
|
|
`${api.mgmtBaseURL}/projects/${projectId}/${grantId ? `grants/${grantId}/` : ''}members/_search`,
|
|
(member: any) => (<string>member.preferredLoginName).startsWith(username),
|
|
(member) => `${api.mgmtBaseURL}/projects/${projectId}/${grantId ? `grants/${grantId}/` : ''}members/${member.userId}`,
|
|
);
|
|
}
|
|
|
|
export function ensureHumanIsProjectMember(
|
|
api: API,
|
|
projectId: string,
|
|
username: string,
|
|
roles: string[],
|
|
grantId?: string,
|
|
): Cypress.Chainable<string> {
|
|
return searchSomething(
|
|
api,
|
|
`${api.mgmtBaseURL}/users/_search`,
|
|
'POST',
|
|
findFromList((user) => {
|
|
return user.userName == username;
|
|
}),
|
|
).then((user) => {
|
|
return ensureItemExists(
|
|
api,
|
|
`${api.mgmtBaseURL}/projects/${projectId}/${grantId ? `grants/${grantId}/` : ''}members/_search`,
|
|
(member: any) => member.userId == user.entity.id,
|
|
`${api.mgmtBaseURL}/projects/${projectId}/${grantId ? `grants/${grantId}/` : ''}members`,
|
|
{
|
|
userId: user.entity.id,
|
|
roles: roles,
|
|
},
|
|
);
|
|
});
|
|
}
|