MUserWithNotificationSetting,
MVideoWithRights
} from '@server/types/models'
+import { AttributesOnly } from '@shared/core-utils'
import { hasUserRight, USER_ROLE_LABELS } from '../../../shared/core-utils/users'
import { AbuseState, MyUser, UserRight, VideoPlaylistType, VideoPrivacy } from '../../../shared/models'
import { User, UserRole } from '../../../shared/models/users'
import { NSFWPolicyType } from '../../../shared/models/videos/nsfw-policy.type'
import { isThemeNameValid } from '../../helpers/custom-validators/plugins'
import {
- isNoInstanceConfigWarningModal,
- isNoWelcomeModal,
isUserAdminFlagsValid,
isUserAutoPlayNextVideoPlaylistValid,
isUserAutoPlayNextVideoValid,
isUserBlockedReasonValid,
isUserBlockedValid,
isUserEmailVerifiedValid,
+ isUserNoModal,
isUserNSFWPolicyValid,
isUserPasswordValid,
isUserRoleValid,
}
]
})
-export class UserModel extends Model {
+export class UserModel extends Model<Partial<AttributesOnly<UserModel>>> {
@AllowNull(true)
@Is('UserPassword', value => throwIfNotValid(value, isUserPasswordValid, 'user password', true))
@Default(false)
@Is(
'UserNoInstanceConfigWarningModal',
- value => throwIfNotValid(value, isNoInstanceConfigWarningModal, 'no instance config warning modal')
+ value => throwIfNotValid(value, isUserNoModal, 'no instance config warning modal')
)
@Column
noInstanceConfigWarningModal: boolean
@AllowNull(false)
@Default(false)
@Is(
- 'UserNoInstanceConfigWarningModal',
- value => throwIfNotValid(value, isNoWelcomeModal, 'no welcome modal')
+ 'UserNoWelcomeModal',
+ value => throwIfNotValid(value, isUserNoModal, 'no welcome modal')
)
@Column
noWelcomeModal: boolean
+ @AllowNull(false)
+ @Default(false)
+ @Is(
+ 'UserNoAccountSetupWarningModal',
+ value => throwIfNotValid(value, isUserNoModal, 'no account setup warning modal')
+ )
+ @Column
+ noAccountSetupWarningModal: boolean
+
@AllowNull(true)
@Default(null)
@Column
')'
),
'videoQuotaUsed'
- ] as any // FIXME: typings
+ ]
]
},
offset: start,
noInstanceConfigWarningModal: this.noInstanceConfigWarningModal,
noWelcomeModal: this.noWelcomeModal,
+ noAccountSetupWarningModal: this.noAccountSetupWarningModal,
blocked: this.blocked,
blockedReason: this.blockedReason,
}
toMeFormattedJSON (this: MMyUserFormattable): MyUser {
- const formatted = this.toFormattedJSON()
+ const formatted = this.toFormattedJSON({ withAdminFlags: true })
const specialPlaylists = this.Account.VideoPlaylists
.map(p => ({ id: p.id, name: p.name, type: p.type }))