Skip to content

Commit b343ea1

Browse files
authored
Merge pull request #450 from cornell-dti/master
Public Release - Removing Whitelist and Resolving Bugs
2 parents 56c52f8 + 9a389e7 commit b343ea1

9 files changed

+19
-315
lines changed

functions/split-user-data.js

-86
This file was deleted.

functions/update-user-data-courses.js

-50
This file was deleted.

functions/update-user-data-semesters.js

-98
This file was deleted.

src/components/Course/Course.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
@delete-course="deleteCourse"
2727
@color-course="colorCourse"
2828
@edit-course-credit="editCourseCredit"
29-
:getCreditRange="getCreditRange"
29+
:getCreditRange="getCreditRange || []"
3030
v-click-outside="closeMenuIfOpen"
3131
/>
3232
</div>

src/components/Modals/CourseMenu.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
class="courseMenu-section"
5353
@mouseover="setDisplayEditCourseCredits(true)"
5454
@mouseleave="setDisplayEditCourseCredits(false)"
55-
v-if="getCreditRange[0] != getCreditRange[1]"
55+
v-if="getCreditRange && getCreditRange[0] != getCreditRange[1]"
5656
>
5757
<img
5858
v-if="isLeft"

src/components/Modals/NewSemester.vue

+5
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ export default Vue.extend({
127127
default: null,
128128
},
129129
isEdit: { type: Boolean, default: false },
130+
isSemesterAdd: { type: Boolean, default: false },
130131
year: { type: Number, default: 0 },
131132
type: { type: String as PropType<FirestoreSemesterType>, default: '' },
132133
isCourseModelSelectingSemester: { type: Boolean, default: false },
@@ -287,6 +288,10 @@ export default Vue.extend({
287288
} else {
288289
this.yearText = 0;
289290
}
291+
292+
if (this.isSemesterAdd) {
293+
this.$emit('updateSemProps', this.seasonPlaceholder, Number(this.yearPlaceholder));
294+
}
290295
},
291296
resetDropdowns() {
292297
// reset season dropdown

src/components/Modals/NewSemesterModal.vue

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<new-semester
1313
:currentSemesters="semesters"
1414
:isEdit="false"
15+
:isSemesterAdd="true"
1516
:isCourseModelSelectingSemester="false"
1617
@duplicateSemester="disableButton"
1718
@updateSemProps="updateSemProps"

src/containers/Login.vue

+11-76
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ import CustomFooter from '@/components/Footer.vue';
151151
152152
import { GTagLoginEvent } from '@/gtag';
153153
import * as fb from '@/firebaseConfig';
154-
155-
const { whitelistCollection, landingEmailsCollection } = fb;
154+
import store from '@/store';
155+
import { checkNotNull } from '@/utilities';
156156
157157
type Data = {
158158
loginForm: { email: string; password: string };
@@ -185,88 +185,23 @@ export default Vue.extend({
185185
fb.auth
186186
.signInWithPopup(provider)
187187
.then(user => {
188-
// Check whitelist emails to ensure user can log in
189-
if (user == null) {
188+
if (user == null || user.user == null) {
190189
return;
191190
}
192-
this.checkEmailAccess(user);
191+
const simplifiedUser = {
192+
displayName: checkNotNull(user.user.displayName),
193+
email: checkNotNull(user.user.email),
194+
};
195+
store.commit('setCurrentFirebaseUser', simplifiedUser);
196+
this.performingRequest = false;
197+
this.$router.push('/');
198+
GTagLoginEvent(this.$gtag, 'Google');
193199
})
194200
.catch(err => {
195201
this.performingRequest = false;
196202
this.errorMsg = err.message;
197203
});
198204
},
199-
checkEmailAccess({ user }: { user: firebase.User | null }) {
200-
if (user == null) {
201-
return;
202-
}
203-
const docRef = whitelistCollection.doc(user.email || '');
204-
docRef
205-
.get()
206-
.then(doc => {
207-
if (doc.exists) {
208-
this.performingRequest = false;
209-
this.$router.push('/');
210-
GTagLoginEvent(this.$gtag, 'Google');
211-
} else {
212-
this.handleUserWithoutAccess();
213-
}
214-
})
215-
.catch(() => this.handleUserWithoutAccess());
216-
},
217-
218-
handleUserWithoutAccess() {
219-
this.performingRequest = false;
220-
fb.auth.signOut();
221-
// eslint-disable-next-line no-alert
222-
alert(
223-
"Sorry, but you do not have access currently.\nPlease check back April 5 for CoursePlan's public release."
224-
);
225-
},
226-
227-
validateEmail(email: string): boolean {
228-
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
229-
},
230-
validateMajor(major: string): boolean {
231-
return major.trim().length > 0;
232-
},
233-
addUser() {
234-
if (this.validateEmail(this.waitlist.email) && this.validateMajor(this.waitlist.major)) {
235-
// eslint-disable-next-line no-alert
236-
alert("You have been added to the waitlist. We'll be in touch shortly!");
237-
238-
// Add timestamp to data in YYYY-MM-DD hh:mm:ss
239-
const dt = new Date();
240-
this.waitlist.time = `${(dt.getMonth() + 1)
241-
.toString()
242-
.padStart(2, '0')}/${dt
243-
.getDate()
244-
.toString()
245-
.padStart(2, '0')}/${dt
246-
.getFullYear()
247-
.toString()
248-
.padStart(4, '0')} ${dt
249-
.getHours()
250-
.toString()
251-
.padStart(2, '0')}:${dt
252-
.getMinutes()
253-
.toString()
254-
.padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}`;
255-
256-
// Add landing page data to Firebase
257-
landingEmailsCollection.add(this.waitlist);
258-
259-
// Clear fields
260-
this.waitlist.email = '';
261-
this.waitlist.major = '';
262-
} else if (!this.validateEmail(this.waitlist.email)) {
263-
// eslint-disable-next-line no-alert
264-
alert('You have entered an invalid email address!');
265-
} else {
266-
// eslint-disable-next-line no-alert
267-
alert('You have not entered a major!');
268-
}
269-
},
270205
getYear(): number {
271206
const today = new Date();
272207
return today.getFullYear();

src/firebaseConfig.ts

-3
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,3 @@ export const onboardingDataCollection = db
111111
return userData;
112112
},
113113
});
114-
115-
export const whitelistCollection = db.collection('cpWhitelist');
116-
export const landingEmailsCollection = db.collection('landingEmails');

0 commit comments

Comments
 (0)