diff --git a/src/server/controllers/PlayerControllerMongoose.js b/src/server/controllers/PlayerControllerMongoose.js index fbea26f..8348766 100644 --- a/src/server/controllers/PlayerControllerMongoose.js +++ b/src/server/controllers/PlayerControllerMongoose.js @@ -5,10 +5,11 @@ const PlayerModel = require("../models/PlayerModel"); * @param {String} hostName * @returns A promise which resolves when a new player has been created. Rejects if an error occurs */ -exports.addPlayer = (playerName) => { +exports.addPlayer = (playerName, playerImage) => { return new Promise((resolve, reject) => { let newPlayer = new PlayerModel({ name: playerName, + pfpFilename: playerImage, points: 0, }); diff --git a/src/server/models/PlayerModel.js b/src/server/models/PlayerModel.js index 8cae5c2..b6f0c08 100644 --- a/src/server/models/PlayerModel.js +++ b/src/server/models/PlayerModel.js @@ -6,6 +6,7 @@ const PlayerSchema = new Schema({ name: { type: String, required: true, maxLength: 100 }, points: { type: Number }, acceptAnswers: { type: Boolean, default: false }, + pfpFilename: { type: String, default: null, required: false }, }); // Export model diff --git a/src/server/models/UserModel.js b/src/server/models/UserModel.js index 248af69..9c9f459 100644 --- a/src/server/models/UserModel.js +++ b/src/server/models/UserModel.js @@ -11,7 +11,7 @@ const UserSchema = new Schema({ }, password: { type: String, required: true, }, boards: [{ type: Schema.Types.ObjectId, ref: "Board" }], - pfpFilename: [{ type: String, required: false, default: null }], + pfpFilename: { type: String, required: false, default: null }, }); // Virtual for player's URL diff --git a/src/server/server.js b/src/server/server.js index caee48f..c3340d6 100644 --- a/src/server/server.js +++ b/src/server/server.js @@ -21,24 +21,24 @@ app.use(cors({ credentials: true, })); -app.use(helmet( - { - contentSecurityPolicy: { - // useDefaults: false, - directives: { - "default-src": ["'self'"], - "object-src": ["'none'"], - "script-src": ["'unsafe-inline'", "'unsafe-eval'", "'self'" ], - "base-uri": ["'none'"], - "frame-src": ["'none'"], - "media-src": ["'self'", "data:"], - "style-src-elem": ["'self'", "'unsafe-inline'"], - "connect-src": ["'self'", "ws:"], - "img-src": ["'self'", "blob:", "data:"], - } - } - } -)); +// app.use(helmet( +// { +// contentSecurityPolicy: { +// // useDefaults: false, +// directives: { +// "default-src": ["'self'"], +// "object-src": ["'none'"], +// "script-src": ["'unsafe-inline'", "'unsafe-eval'", "'self'" ], +// "base-uri": ["'none'"], +// "frame-src": ["'none'"], +// "media-src": ["'self'", "data:"], +// "style-src-elem": ["'self'", "'unsafe-inline'"], +// "connect-src": ["'self'", "ws:"], +// "img-src": ["'self'", "blob:", "data:"], +// } +// } +// } +// )); const mongoDB = process.env.API_MONGO_CONN_URI; diff --git a/src/server/websocket/handler.js b/src/server/websocket/handler.js index 561eb02..cbf4e60 100644 --- a/src/server/websocket/handler.js +++ b/src/server/websocket/handler.js @@ -28,7 +28,7 @@ exports.handleMessage = ( gameSocketList, socket, dataRaw ) => { switch( data.event ){ case "joinGame": if( payload.gameCode !== undefined && payload.playerName !== undefined ){ - playerController.addPlayer( payload.playerName ) + playerController.addPlayer( payload.playerName, payload.playerImage ) .then( ( player ) => { if( socket.locals === undefined ){ socket.locals = {}; diff --git a/src/webapp/assets/scss/styles.scss b/src/webapp/assets/scss/styles.scss index 599640c..410d928 100644 --- a/src/webapp/assets/scss/styles.scss +++ b/src/webapp/assets/scss/styles.scss @@ -194,4 +194,6 @@ $utilities: map-merge( .pfp{ object-fit: cover; + max-width: 100vw; + max-height: 100vh; } \ No newline at end of file diff --git a/src/webapp/components/blocks/ProfilePicture.vue b/src/webapp/components/blocks/ProfilePicture.vue index ca84a6f..20ef458 100644 --- a/src/webapp/components/blocks/ProfilePicture.vue +++ b/src/webapp/components/blocks/ProfilePicture.vue @@ -9,9 +9,9 @@ const props = defineProps({ default: null, required: false, }, - sizingClasses: { - type: Array, - default: () => ["pfp-sizing"], + sizing: { + type: String, + default: "10rem", required: false, }, isPreview: { @@ -47,7 +47,7 @@ const pfpSrc = computed( () => { - + Preview @@ -56,17 +56,4 @@ const pfpSrc = computed( () => { - - - \ No newline at end of file + \ No newline at end of file diff --git a/src/webapp/components/common/Navbar.vue b/src/webapp/components/common/Navbar.vue index 1aa0fef..e6f7ab9 100644 --- a/src/webapp/components/common/Navbar.vue +++ b/src/webapp/components/common/Navbar.vue @@ -72,7 +72,7 @@ function logoutButtonClicked(_event){ {{ userStore.username }} @@ -107,7 +107,7 @@ function logoutButtonClicked(_event){ {{ userStore.username }} diff --git a/src/webapp/components/pages/Join.vue b/src/webapp/components/pages/Join.vue index 4067613..5f8b0ec 100644 --- a/src/webapp/components/pages/Join.vue +++ b/src/webapp/components/pages/Join.vue @@ -1,8 +1,10 @@