fix access bug

pull/152/merge
Bosn
parent 7147c49769
commit b415358ad1

@ -5,6 +5,7 @@ export enum ACCESS_TYPE { ORGANIZATION, REPOSITORY, USER }
export class AccessUtils {
public static async canUserAccess(accessType: ACCESS_TYPE, curUserId: number, entityId: number): Promise<boolean> {
console.log(`accessType=${accessType}&curUserId=${curUserId}&&entityId=${entityId}`)
if (accessType === ACCESS_TYPE.ORGANIZATION) {
return await OrganizationService.canUserAccessOrganization(curUserId, entityId)
} else if (accessType === ACCESS_TYPE.REPOSITORY) {

@ -5,7 +5,7 @@ import Utils from './utils';
export default class OrganizationService {
public static canUserAccessOrganization(userId: number, organizationId: number): Promise<boolean> {
const sql = `
SELECT COUNT(*) AS num FROM (
SELECT COUNT(id) AS num FROM (
SELECT o.id, o.name
FROM Organizations o
WHERE visibility = ${1} OR creatorId = ${userId} OR ownerId = ${userId}
@ -17,6 +17,7 @@ export default class OrganizationService {
) as result
WHERE id = ${organizationId}
`
console.log(sql)
return new Promise(resolve => {
seq.query(sql).spread((result: any) => {
resolve(+result[0].num > 0)

@ -3,7 +3,8 @@ import OrganizationService from "./organization";
export default class RepositoryService {
public static async canUserAccessRepository(userId: number, repositoryId: number): Promise<boolean> {
const repo = await Repository.findById(repositoryId, { attributes: ['organizationId']})
const repo = await Repository.findById(repositoryId)
if (repo.creatorId === userId || repo.ownerId === userId) return true
return OrganizationService.canUserAccessOrganization(userId, repo.organizationId)
}
}
Loading…
Cancel
Save