diff --git a/deploy.sh b/deploy.sh index 530eb69b..f07dfeb2 100755 --- a/deploy.sh +++ b/deploy.sh @@ -4,6 +4,8 @@ set -ex ulimit -u 512 DIR=$(mktemp --directory) +# set USE_LDAP to true to generate member list using LDAP database +export USE_LDAP=true pushd $DIR diff --git a/lib/members.ts b/lib/members.ts index 4810aabe..7cce6ca2 100644 --- a/lib/members.ts +++ b/lib/members.ts @@ -14,50 +14,48 @@ export async function getMembers( throw new Error(`[getMembers] Not a valid term: "${term}"`); } - let members: Member[] = []; - if ( - process.env.USE_LDAP !== undefined && - process.env.USE_LDAP.toLowerCase() === "true" - ) { - const url = "ldap://ldap1.csclub.uwaterloo.ca"; - const searchDN = "ou=People,dc=csclub,dc=uwaterloo,dc=ca"; - const client = new Client({ - url, - }); - try { - await client.bind("", ""); - const { searchEntries } = await client.search(searchDN, { - scope: "sub", - filter: `(&(objectClass=member)(term=${term.slice(0, 1)}${year}))`, - }); - - members = searchEntries - .map((item) => { - return { - name: item.cn as string, - id: item.uid as string, - program: item.program === undefined ? "" : (item.program as string), - }; - }) - .sort((item1: Member, item2: Member) => - item1.id.localeCompare(item2.id) - ); - } finally { - await client.unbind(); - } - } else { - members = [ - { - name: "John Smith", - id: "j12smith", - program: "MAT/Mathematics Computer Science", - }, - { - name: "Jane Smith", - id: "j34smith", - program: "MAT/Mathematics Computer Science", - }, - ]; + if (process.env.USE_LDAP?.toLowerCase() !== "true") { + return dummyMembers; } + + let members: Member[] = []; + + const url = "ldap://ldap1.csclub.uwaterloo.ca"; + const searchDN = "ou=People,dc=csclub,dc=uwaterloo,dc=ca"; + const client = new Client({ url }); + + try { + await client.bind("", ""); + const { searchEntries } = await client.search(searchDN, { + scope: "sub", + filter: `(&(objectClass=member)(term=${term.slice(0, 1)}${year}))`, + }); + + members = searchEntries + .map((item) => { + return { + name: item.cn as string, + id: item.uid as string, + program: item.program === undefined ? "" : (item.program as string), + }; + }) + .sort((item1: Member, item2: Member) => item1.id.localeCompare(item2.id)); + } finally { + await client.unbind(); + } + return members; } + +const dummyMembers: Member[] = [ + { + name: "John Smith", + id: "j12smith", + program: "MAT/Mathematics Computer Science", + }, + { + name: "Jane Smith", + id: "j34smith", + program: "MAT/Mathematics Computer Science", + }, +]; diff --git a/package.json b/package.json index fb64063a..f5088d30 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ }, "scripts": { "dev": "next dev", - "build": "USE_LDAP=true npm run build:web && npm run generate:calendar", + "build": "npm run build:web && npm run generate:calendar", "build:web": "next build", "start": "next start", "export": "next export",