]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/models/user.js
1 const modelUtils
= require('./utils')
2 const peertubeCrypto
= require('../helpers/peertube-crypto')
4 // ---------------------------------------------------------------------------
6 module
.exports = function (sequelize
, DataTypes
) {
7 const User
= sequelize
.define('User',
10 type: DataTypes
.STRING
13 type: DataTypes
.STRING
16 type: DataTypes
.STRING
35 beforeCreate: beforeCreateOrUpdate
,
36 beforeUpdate: beforeCreateOrUpdate
45 // UserSchema.path('password').required(customUsersValidators.isUserPasswordValid)
46 // UserSchema.path('username').required(customUsersValidators.isUserUsernameValid)
47 // UserSchema.path('role').validate(customUsersValidators.isUserRoleValid)
49 function beforeCreateOrUpdate (user
, options
, next
) {
50 peertubeCrypto
.cryptPassword(user
.password
, function (err
, hash
) {
51 if (err
) return next(err
)
59 // ------------------------------ METHODS ------------------------------
61 function isPasswordMatch (password
, callback
) {
62 return peertubeCrypto
.comparePassword(password
, this.password
, callback
)
65 function toFormatedJSON () {
68 username: this.username
,
70 createdAt: this.createdAt
73 // ------------------------------ STATICS ------------------------------
75 function associate (models
) {
76 this.hasMany(models
.OAuthToken
, {
82 function countTotal (callback
) {
83 return this.count().asCallback(callback
)
86 function getByUsername (username
) {
93 return this.findOne(query
)
96 function list (callback
) {
97 return this.find().asCallback(callback
)
100 function listForApi (start
, count
, sort
, callback
) {
104 order: [ modelUtils
.getSort(sort
) ]
107 return this.findAndCountAll(query
).asCallback(function (err
, result
) {
108 if (err
) return callback(err
)
110 return callback(null, result
.rows
, result
.count
)
114 function loadById (id
, callback
) {
115 return this.findById(id
).asCallback(callback
)
118 function loadByUsername (username
, callback
) {
125 return this.findOne(query
).asCallback(callback
)