{ "name": "user", "base": "User", "strict": true, "idInjection": true, "emailVerificationRequired": false, "trackChanges": false, "properties": { "email": { "type": "string", "index": { "mongodb": { "unique": true, "background": true, "sparse": true } } }, "emailVerifyTTL": { "type": "date" }, "password": { "type": "string" }, "progressTimestamps": { "type": "array", "default": [] }, "isBanned": { "type": "boolean", "description": "User is banned from posting to camper news", "default": false }, "isCheater": { "type": "boolean", "description": "Users who are confirmed to have broken academic honesty policy are marked as cheaters", "default": false }, "isGithubCool": { "type": "boolean", "default": false }, "githubId": { "type": "string" }, "githubURL": { "type": "string" }, "githubEmail": { "type": "string" }, "joinedGithubOn": { "type": "date" }, "isMigrationGrandfathered": { "type": "boolean", "default": false }, "username": { "type": "string", "index": { "mongodb": { "unique": true, "background": true } }, "require": true }, "bio": { "type": "string", "default": "" }, "name": { "type": "string", "default": "" }, "gender": { "type": "string", "default": "" }, "location": { "type": "string", "default": "" }, "picture": { "type": "string", "default": "" }, "linkedin": { "type": "string" }, "codepen": { "type": "string" }, "twitter": { "type": "string" }, "currentStreak": { "type": "number", "default": 0 }, "longestStreak": { "type": "number", "default": 0 }, "sendMonthlyEmail": { "type": "boolean", "default": true }, "sendNotificationEmail": { "type": "boolean", "default": true }, "sendQuincyEmail": { "type": "boolean", "default": true }, "isLocked": { "type": "boolean", "description": "Campers profile does not show challenges/certificates to the public", "default": false }, "currentChallengeId": { "type": "string", "description": "The challenge last visited by the user", "default": "" }, "currentChallenge": { "type": {}, "description": "deprecated" }, "isUniqMigrated": { "type": "boolean", "description": "Campers completedChallenges array is free of duplicates", "default": false }, "isHonest": { "type": "boolean", "description": "Camper has signed academic honesty policy", "default": false }, "isFrontEndCert": { "type": "boolean", "description": "Camper is front end certified", "default": false }, "isDataVisCert": { "type": "boolean", "description": "Camper is data visualization certified", "default": false }, "isBackEndCert": { "type": "boolean", "description": "Campers is back end certified", "default": false }, "isFullStackCert": { "type": "boolean", "description": "Campers is full stack certified", "default": false }, "isChallengeMapMigrated": { "type": "boolean", "description": "Migrate completedChallenges array to challenge map", "default": false }, "challengeMap": { "type": "object", "description": "A map by ID of all the user completed challenges", "default": {} }, "completedChallenges": { "type": [ { "completedDate": "number", "lastUpdated": "number", "id": "string", "name": "string", "completedWith": "string", "solution": "string", "githubLink": "string", "verified": "boolean", "challengeType": { "type": "number", "default": 0 } } ], "default": [] }, "rand": { "type": "number", "index": true }, "tshirtVote": { "type": "number" }, "timezone": { "type": "string" }, "theme": { "type": "string", "default": "default" }, "languageTag": { "type": "string", "description": "An IETF language tag", "default": "en" }, "badges": { "type": { "coreTeam": { "type": "array", "default": [] } }, "default": {} } }, "validations": [], "relations": { "credentials": { "type": "hasMany", "model": "userCredential", "foreignKey": "" }, "identities": { "type": "hasMany", "model": "userIdentity", "foreignKey": "" }, "pledge": { "type": "hasOne", "model": "pledge", "foreignKey": "" } }, "acls": [ { "accessType": "*", "principalType": "ROLE", "principalId": "$everyone", "permission": "DENY" }, { "accessType": "EXECUTE", "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "doesExist" }, { "accessType": "EXECUTE", "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "about" }, { "accessType": "EXECUTE", "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW", "property": "giveBrowniePoints" }, { "accessType": "EXECUTE", "principalType": "ROLE", "principalId": "$owner", "permission": "ALLOW", "property": "updateEmail" }, { "accessType": "EXECUTE", "principalType": "ROLE", "principalId": "$owner", "permission": "ALLOW", "property": "updateTheme" }, { "accessType": "EXECUTE", "principalType": "ROLE", "principalId": "$owner", "permission": "ALLOW", "property": "updateLanguage" } ], "methods": {} }