fix access bug

pull/152/merge
Bosn 7 years ago
parent 71d48c72ab
commit 48eacfebfc

@ -1,10 +1,18 @@
import { Repository } from "../models" import { Repository, RepositoriesMembers } from "../models"
import OrganizationService from "./organization"; import OrganizationService from "./organization";
export default class RepositoryService { export default class RepositoryService {
public static async canUserAccessRepository(userId: number, repositoryId: number): Promise<boolean> { public static async canUserAccessRepository(userId: number, repositoryId: number): Promise<boolean> {
const repo = await Repository.findById(repositoryId) const repo = await Repository.findById(repositoryId)
if (!repo) return false
if (repo.creatorId === userId || repo.ownerId === userId) return true if (repo.creatorId === userId || repo.ownerId === userId) return true
const memberExistsNum = await RepositoriesMembers.count({
where: {
userId,
repositoryId,
}
})
if (memberExistsNum > 0) return true
return OrganizationService.canUserAccessOrganization(userId, repo.organizationId) return OrganizationService.canUserAccessOrganization(userId, repo.organizationId)
} }
} }
Loading…
Cancel
Save