forked from hippoz/brainlet
improvement!: remove "color" attribute for users and instead let the clients decide
This commit is contained in:
parent
c101db1de6
commit
80ed58c856
3 changed files with 4 additions and 39 deletions
|
@ -87,8 +87,7 @@ app.post("/account/create", [
|
|||
username,
|
||||
email,
|
||||
password: hashedPassword,
|
||||
role: startingRole,
|
||||
color: User.generateColorFromUsername(username)
|
||||
role: startingRole
|
||||
});
|
||||
|
||||
const userObject = await user.getPublicObject();
|
||||
|
|
|
@ -7,7 +7,6 @@ const userSchema = new mongoose.Schema({
|
|||
password: String,
|
||||
email: String,
|
||||
role: String,
|
||||
color: String
|
||||
});
|
||||
|
||||
userSchema.method("getPublicObject", function() {
|
||||
|
@ -15,7 +14,6 @@ userSchema.method("getPublicObject", function() {
|
|||
username: this.username,
|
||||
permissionLevel: config.roleMap[this.role],
|
||||
role: this.role,
|
||||
color: this.color,
|
||||
_id: this._id
|
||||
};
|
||||
});
|
||||
|
@ -27,51 +25,20 @@ userSchema.method("getFullObject", function() {
|
|||
email: this.email,
|
||||
permissionLevel: config.roleMap[this.role],
|
||||
role: this.role,
|
||||
color: this.color,
|
||||
_id: this._id
|
||||
};
|
||||
});
|
||||
|
||||
const User = mongoose.model("User", userSchema);
|
||||
|
||||
// NOTE(hippoz): These are all actually material design colors, taken from https://material-ui.com/customization/color/#playground
|
||||
const colors = [
|
||||
"#f44336",
|
||||
"#e91e63",
|
||||
"#9c27b0",
|
||||
"#673ab7",
|
||||
"#3f51b5",
|
||||
"#2196f3",
|
||||
"#03a9f4",
|
||||
"#00bcd4",
|
||||
"#009688",
|
||||
"#4caf50",
|
||||
"#8bc34a",
|
||||
"#cddc39",
|
||||
"#ffeb3b",
|
||||
"#ffc107",
|
||||
"#ff9800",
|
||||
"#ff5722"
|
||||
];
|
||||
|
||||
User.generateColorFromUsername = function(username) {
|
||||
let sum = 0;
|
||||
for (let i in username) {
|
||||
sum += username.charCodeAt(i);
|
||||
}
|
||||
const colorIndex = sum % colors.length;
|
||||
return colors[colorIndex];
|
||||
};
|
||||
|
||||
User.findByUsername = async function(username) {
|
||||
return await User.findOne({ username }).exec();
|
||||
};
|
||||
|
||||
User.getPulicFields = function(isPartial=false) {
|
||||
if (isPartial) {
|
||||
return "username _id color";
|
||||
}
|
||||
return "username role _id color";
|
||||
if (isPartial)
|
||||
return "username _id";
|
||||
return "username role _id";
|
||||
};
|
||||
|
||||
module.exports = User;
|
|
@ -223,7 +223,6 @@ Used mostly for messages.
|
|||
| - | - |
|
||||
| _id | The id of the user |
|
||||
| name | The name of the user |
|
||||
| color | A hex color that represents that user |
|
||||
|
||||
## Message author object
|
||||
|
||||
|
|
Loading…
Reference in a new issue