diff options
Diffstat (limited to 'server/models/account')
-rw-r--r-- | server/models/account/account.ts | 36 | ||||
-rw-r--r-- | server/models/account/user.ts | 21 |
2 files changed, 25 insertions, 32 deletions
diff --git a/server/models/account/account.ts b/server/models/account/account.ts index 6ef29c8b7..cd6c822f1 100644 --- a/server/models/account/account.ts +++ b/server/models/account/account.ts | |||
@@ -22,8 +22,8 @@ import { | |||
22 | 22 | ||
23 | AccountMethods | 23 | AccountMethods |
24 | } from './account-interface' | 24 | } from './account-interface' |
25 | import LoadApplication = AccountMethods.LoadApplication | ||
26 | import { sendDeleteAccount } from '../../lib/activitypub/send-request' | 25 | import { sendDeleteAccount } from '../../lib/activitypub/send-request' |
26 | import { CONSTRAINTS_FIELDS } from '../../initializers/constants' | ||
27 | 27 | ||
28 | let Account: Sequelize.Model<AccountInstance, AccountAttributes> | 28 | let Account: Sequelize.Model<AccountInstance, AccountAttributes> |
29 | let loadAccountByPodAndUUID: AccountMethods.LoadAccountByPodAndUUID | 29 | let loadAccountByPodAndUUID: AccountMethods.LoadAccountByPodAndUUID |
@@ -60,14 +60,14 @@ export default function defineAccount (sequelize: Sequelize.Sequelize, DataTypes | |||
60 | type: DataTypes.STRING, | 60 | type: DataTypes.STRING, |
61 | allowNull: false, | 61 | allowNull: false, |
62 | validate: { | 62 | validate: { |
63 | usernameValid: value => { | 63 | nameValid: value => { |
64 | const res = isUserUsernameValid(value) | 64 | const res = isUserUsernameValid(value) |
65 | if (res === false) throw new Error('Username is not valid.') | 65 | if (res === false) throw new Error('Name is not valid.') |
66 | } | 66 | } |
67 | } | 67 | } |
68 | }, | 68 | }, |
69 | url: { | 69 | url: { |
70 | type: DataTypes.STRING, | 70 | type: DataTypes.STRING(CONSTRAINTS_FIELDS.ACCOUNTS.URL.max), |
71 | allowNull: false, | 71 | allowNull: false, |
72 | validate: { | 72 | validate: { |
73 | urlValid: value => { | 73 | urlValid: value => { |
@@ -77,7 +77,7 @@ export default function defineAccount (sequelize: Sequelize.Sequelize, DataTypes | |||
77 | } | 77 | } |
78 | }, | 78 | }, |
79 | publicKey: { | 79 | publicKey: { |
80 | type: DataTypes.STRING, | 80 | type: DataTypes.STRING(CONSTRAINTS_FIELDS.ACCOUNTS.PUBLIC_KEY.max), |
81 | allowNull: false, | 81 | allowNull: false, |
82 | validate: { | 82 | validate: { |
83 | publicKeyValid: value => { | 83 | publicKeyValid: value => { |
@@ -87,7 +87,7 @@ export default function defineAccount (sequelize: Sequelize.Sequelize, DataTypes | |||
87 | } | 87 | } |
88 | }, | 88 | }, |
89 | privateKey: { | 89 | privateKey: { |
90 | type: DataTypes.STRING, | 90 | type: DataTypes.STRING(CONSTRAINTS_FIELDS.ACCOUNTS.PRIVATE_KEY.max), |
91 | allowNull: false, | 91 | allowNull: false, |
92 | validate: { | 92 | validate: { |
93 | privateKeyValid: value => { | 93 | privateKeyValid: value => { |
@@ -110,14 +110,14 @@ export default function defineAccount (sequelize: Sequelize.Sequelize, DataTypes | |||
110 | type: DataTypes.INTEGER, | 110 | type: DataTypes.INTEGER, |
111 | allowNull: false, | 111 | allowNull: false, |
112 | validate: { | 112 | validate: { |
113 | followersCountValid: value => { | 113 | followingCountValid: value => { |
114 | const res = isAccountFollowingCountValid(value) | 114 | const res = isAccountFollowingCountValid(value) |
115 | if (res === false) throw new Error('Following count is not valid.') | 115 | if (res === false) throw new Error('Following count is not valid.') |
116 | } | 116 | } |
117 | } | 117 | } |
118 | }, | 118 | }, |
119 | inboxUrl: { | 119 | inboxUrl: { |
120 | type: DataTypes.STRING, | 120 | type: DataTypes.STRING(CONSTRAINTS_FIELDS.ACCOUNTS.URL.max), |
121 | allowNull: false, | 121 | allowNull: false, |
122 | validate: { | 122 | validate: { |
123 | inboxUrlValid: value => { | 123 | inboxUrlValid: value => { |
@@ -127,7 +127,7 @@ export default function defineAccount (sequelize: Sequelize.Sequelize, DataTypes | |||
127 | } | 127 | } |
128 | }, | 128 | }, |
129 | outboxUrl: { | 129 | outboxUrl: { |
130 | type: DataTypes.STRING, | 130 | type: DataTypes.STRING(CONSTRAINTS_FIELDS.ACCOUNTS.URL.max), |
131 | allowNull: false, | 131 | allowNull: false, |
132 | validate: { | 132 | validate: { |
133 | outboxUrlValid: value => { | 133 | outboxUrlValid: value => { |
@@ -137,7 +137,7 @@ export default function defineAccount (sequelize: Sequelize.Sequelize, DataTypes | |||
137 | } | 137 | } |
138 | }, | 138 | }, |
139 | sharedInboxUrl: { | 139 | sharedInboxUrl: { |
140 | type: DataTypes.STRING, | 140 | type: DataTypes.STRING(CONSTRAINTS_FIELDS.ACCOUNTS.URL.max), |
141 | allowNull: false, | 141 | allowNull: false, |
142 | validate: { | 142 | validate: { |
143 | sharedInboxUrlValid: value => { | 143 | sharedInboxUrlValid: value => { |
@@ -147,7 +147,7 @@ export default function defineAccount (sequelize: Sequelize.Sequelize, DataTypes | |||
147 | } | 147 | } |
148 | }, | 148 | }, |
149 | followersUrl: { | 149 | followersUrl: { |
150 | type: DataTypes.STRING, | 150 | type: DataTypes.STRING(CONSTRAINTS_FIELDS.ACCOUNTS.URL.max), |
151 | allowNull: false, | 151 | allowNull: false, |
152 | validate: { | 152 | validate: { |
153 | followersUrlValid: value => { | 153 | followersUrlValid: value => { |
@@ -157,7 +157,7 @@ export default function defineAccount (sequelize: Sequelize.Sequelize, DataTypes | |||
157 | } | 157 | } |
158 | }, | 158 | }, |
159 | followingUrl: { | 159 | followingUrl: { |
160 | type: DataTypes.STRING, | 160 | type: DataTypes.STRING(CONSTRAINTS_FIELDS.ACCOUNTS.URL.max), |
161 | allowNull: false, | 161 | allowNull: false, |
162 | validate: { | 162 | validate: { |
163 | followingUrlValid: value => { | 163 | followingUrlValid: value => { |
@@ -241,7 +241,7 @@ function associate (models) { | |||
241 | 241 | ||
242 | Account.belongsTo(models.Application, { | 242 | Account.belongsTo(models.Application, { |
243 | foreignKey: { | 243 | foreignKey: { |
244 | name: 'userId', | 244 | name: 'applicationId', |
245 | allowNull: true | 245 | allowNull: true |
246 | }, | 246 | }, |
247 | onDelete: 'cascade' | 247 | onDelete: 'cascade' |
@@ -256,7 +256,7 @@ function associate (models) { | |||
256 | hooks: true | 256 | hooks: true |
257 | }) | 257 | }) |
258 | 258 | ||
259 | Account.hasMany(models.AccountFollower, { | 259 | Account.hasMany(models.AccountFollow, { |
260 | foreignKey: { | 260 | foreignKey: { |
261 | name: 'accountId', | 261 | name: 'accountId', |
262 | allowNull: false | 262 | allowNull: false |
@@ -265,7 +265,7 @@ function associate (models) { | |||
265 | onDelete: 'cascade' | 265 | onDelete: 'cascade' |
266 | }) | 266 | }) |
267 | 267 | ||
268 | Account.hasMany(models.AccountFollower, { | 268 | Account.hasMany(models.AccountFollow, { |
269 | foreignKey: { | 269 | foreignKey: { |
270 | name: 'targetAccountId', | 270 | name: 'targetAccountId', |
271 | allowNull: false | 271 | allowNull: false |
@@ -329,7 +329,7 @@ getFollowerSharedInboxUrls = function (this: AccountInstance) { | |||
329 | attributes: [ 'sharedInboxUrl' ], | 329 | attributes: [ 'sharedInboxUrl' ], |
330 | include: [ | 330 | include: [ |
331 | { | 331 | { |
332 | model: Account['sequelize'].models.AccountFollower, | 332 | model: Account['sequelize'].models.AccountFollow, |
333 | where: { | 333 | where: { |
334 | targetAccountId: this.id | 334 | targetAccountId: this.id |
335 | } | 335 | } |
@@ -523,9 +523,9 @@ async function createListAcceptedFollowForApiQuery (type: 'followers' | 'followi | |||
523 | 523 | ||
524 | for (const selection of selections) { | 524 | for (const selection of selections) { |
525 | let query = 'SELECT ' + selection + ' FROM "Account" ' + | 525 | let query = 'SELECT ' + selection + ' FROM "Account" ' + |
526 | 'INNER JOIN "AccountFollower" ON "AccountFollower"."' + firstJoin + '" = "Account"."id" ' + | 526 | 'INNER JOIN "AccountFollow" ON "AccountFollow"."' + firstJoin + '" = "Account"."id" ' + |
527 | 'INNER JOIN "Account" AS "Follows" ON "Followers"."id" = "Follows"."' + secondJoin + '" ' + | 527 | 'INNER JOIN "Account" AS "Follows" ON "Followers"."id" = "Follows"."' + secondJoin + '" ' + |
528 | 'WHERE "Account"."id" = $id AND "AccountFollower"."state" = \'accepted\' ' + | 528 | 'WHERE "Account"."id" = $id AND "AccountFollow"."state" = \'accepted\' ' + |
529 | 'LIMIT ' + start | 529 | 'LIMIT ' + start |
530 | 530 | ||
531 | if (count !== undefined) query += ', ' + count | 531 | if (count !== undefined) query += ', ' + count |
diff --git a/server/models/account/user.ts b/server/models/account/user.ts index 7390baf91..8f7c9b013 100644 --- a/server/models/account/user.ts +++ b/server/models/account/user.ts | |||
@@ -1,23 +1,16 @@ | |||
1 | import * as Sequelize from 'sequelize' | 1 | import * as Sequelize from 'sequelize' |
2 | 2 | import { hasUserRight, USER_ROLE_LABELS, UserRight } from '../../../shared' | |
3 | import { getSort, addMethodsToModel } from '../utils' | ||
4 | import { | 3 | import { |
5 | cryptPassword, | ||
6 | comparePassword, | 4 | comparePassword, |
5 | cryptPassword, | ||
6 | isUserDisplayNSFWValid, | ||
7 | isUserPasswordValid, | 7 | isUserPasswordValid, |
8 | isUserRoleValid, | ||
8 | isUserUsernameValid, | 9 | isUserUsernameValid, |
9 | isUserDisplayNSFWValid, | 10 | isUserVideoQuotaValid |
10 | isUserVideoQuotaValid, | ||
11 | isUserRoleValid | ||
12 | } from '../../helpers' | 11 | } from '../../helpers' |
13 | import { UserRight, USER_ROLE_LABELS, hasUserRight } from '../../../shared' | 12 | import { addMethodsToModel, getSort } from '../utils' |
14 | 13 | import { UserAttributes, UserInstance, UserMethods } from './user-interface' | |
15 | import { | ||
16 | UserInstance, | ||
17 | UserAttributes, | ||
18 | |||
19 | UserMethods | ||
20 | } from './user-interface' | ||
21 | 14 | ||
22 | let User: Sequelize.Model<UserInstance, UserAttributes> | 15 | let User: Sequelize.Model<UserInstance, UserAttributes> |
23 | let isPasswordMatch: UserMethods.IsPasswordMatch | 16 | let isPasswordMatch: UserMethods.IsPasswordMatch |