Files
NodeBB/public/openapi/components/schemas/UserObject.yaml
Barış Soner Uşaklı 04998908ba Fixes for "validate email" & "send validation email" in ACP (#11677)
* confirmObj changes

dont expire confirm:<code>, add a expires field instead
dont expire confirm:byUid:<uid>

on admin manage users display the users email status
	1. verified
	2. verify email sent (pending)
	3. verify email sent (expired)
	4. no email entered

fix validate email in acp to use
	email in user:<uid> if they have one
	if not check if its in confirm:<code>
	if its not in above cant validate throw error

fix send validate email to use
	email in user:<uid> if they have one
	if not check if its in confirm:<code>
	if its not in above too cant validate throw error

* add back socket.io tests

* test: fix confirm tests

no longer using pexpire
return correct time left on token

* chore: update openapi

* fix: delete call

* test: mget test fixes

* test: fix tests
2023-06-05 12:12:48 -04:00

761 lines
22 KiB
YAML

UserObject:
type: object
properties:
uid:
type: number
description: A user identifier
example: 1
username:
type: string
description: A friendly name for a given user account
example: Dragon Fruit
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.)
example: dragon-fruit
email:
type: string
description: Email address associated with the user account
example: dragonfruit@example.org
'email:confirmed':
type: number
description: Whether the user has confirmed their email address or not
example: 1
joindate:
type: number
description: A UNIX timestamp representing the moment the user's account was created
example: 1585337827953
lastonline:
type: number
description: A UNIX timestamp representing the moment the user was last recorded online on this site
example: 1585337827953
picture:
type: string
description: A URL pointing to a picture to be used as the user's avatar
example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
nullable: true
fullname:
type: string
example: Mr. Dragon Fruit Jr.
displayname:
type: string
description: This is either username or fullname depending on forum and user settings
example: Dragon Fruit
location:
type: string
example: 'Toronto, Canada'
nullable: true
birthday:
type: string
description: A birthdate given in an ISO format parseable by the Date object
example: 03/27/2020
nullable: true
website:
type: string
example: 'https://example.org'
nullable: true
aboutme:
type: string
example: |
This is a paragraph all about how my life got twist-turned upside-down
and I'd like to take a minute and sit right here,
to tell you all about how I became the administrator of NodeBB
nullable: true
signature:
type: string
example: |
This is an example signature
It can span multiple lines.
nullable: true
uploadedpicture:
type: string
example: /assets/profile/1-profileimg.png
description: 'In almost all cases, defer to "picture" instead. Use this if you need to specifically reference the picture uploaded to the forum.'
nullable: true
profileviews:
type: number
description: The number of times this user's profile has been viewed
example: 1000
reputation:
type: number
description: The user's reputation score on the forum. Out-of-the-box, users gain/lose reputation points based on upvotes/downvotes, though plugins can alter the logic and criterion for awarding reputation points
example: 100
postcount:
type: number
example: 1000
topiccount:
type: number
example: 50
lastposttime:
type: number
description: A UNIX timestamp representing the moment the user posted last
example: 1585337827953
banned:
type: number
description: A Boolean representing whether a user is banned or not
example: 0
'banned:expire':
type: number
description: A UNIX timestamp representing the moment the ban will be lifted
example: 1585337827953
status:
type: string
enum:
- online
- offline
- dnd
- away
example: online
flags:
type: number
example: 0
nullable: true
followerCount:
type: number
example: 2
followingCount:
type: number
example: 5
'cover:url':
type: string
example: /assets/profile/1-cover.png
nullable: true
'cover:position':
type: string
example: 50.0301% 19.2464%
nullable: true
groupTitle:
type: string
example: '["administrators","Staff"]'
nullable: true
groupTitleArray:
type: array
example:
- administrators
- Staff
muted:
type: boolean
description: Whether or not the user has been muted.
mutedUntil:
type: number
description: A UNIX timestamp representing the moment a muted state will be lifted.
mutedReason:
type: string
description: The admin-provided reason for being muted.
'icon:text':
type: string
description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
example: D
'icon:bgColor':
type: string
description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
example: '#9c27b0'
joindateISO:
type: string
example: '2020-03-27T20:30:36.590Z'
lastonlineISO:
type: string
example: '2020-03-27T20:30:36.590Z'
banned_until:
type: number
description: A UNIX timestamp representing the moment a ban will be lifted
example: 0
banned_until_readable:
type: string
description: An ISO 8601 formatted date string representing the moment a ban will be lifted, or the words "Not Banned"
example: Not Banned
required:
- uid
- username
- userslug
- 'email:confirmed'
- joindate
- lastonline
- picture
- location
- birthday
- website
- aboutme
- signature
- uploadedpicture
- profileviews
- reputation
- postcount
- topiccount
- lastposttime
- banned
- 'banned:expire'
- status
- enum
- flags
- followerCount
- followingCount
- 'cover:url'
- 'cover:position'
- groupTitle
- groupTitleArray
- example
- 'icon:text'
- 'icon:bgColor'
- joindateISO
- lastonlineISO
- banned_until
- banned_until_readable
UserObjectFull:
# accountHelpers.getUserDataByUserSlug
type: object
properties:
uid:
type: number
description: A user identifier
example: 1
username:
type: string
description: A friendly name for a given user account
example: Dragon Fruit
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.)
example: dragon-fruit
email:
type: string
description: Email address associated with the user account
example: dragonfruit@example.org
'email:confirmed':
type: number
description: Whether the user has confirmed their email address or not
example: 1
joindate:
type: number
description: A UNIX timestamp representing the moment the user's account was created
example: 1585337827953
lastonline:
type: number
description: A UNIX timestamp representing the moment the user was last recorded online on this site
example: 1585337827953
picture:
type: string
description: A URL pointing to a picture to be used as the user's avatar
example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
nullable: true
fullname:
type: string
example: Mr. Dragon Fruit Jr.
displayname:
type: string
description: This is either username or fullname depending on forum and user settings
example: Dragon Fruit
location:
type: string
example: 'Toronto, Canada'
birthday:
type: string
description: A birthdate given in an ISO format parseable by the Date object
example: 03/27/2020
website:
type: string
example: 'https://example.org'
aboutme:
type: string
example: |
This is a paragraph all about how my life got twist-turned upside-down
and I'd like to take a minute and sit right here,
to tell you all about how I became the administrator of NodeBB
signature:
type: string
example: |
This is an example signature
It can span multiple lines.
uploadedpicture:
type: string
example: /assets/profile/1-profileimg.png
description: 'In almost all cases, defer to "picture" instead. Use this if you need to specifically reference the picture uploaded to the forum.'
nullable: true
profileviews:
type: number
description: The number of times this user's profile has been viewed
example: 1000
reputation:
type: number
description: The user's reputation score on the forum. Out-of-the-box, users gain/lose reputation points based on upvotes/downvotes, though plugins can alter the logic and criterion for awarding reputation points
example: 100
postcount:
type: number
example: 1000
topiccount:
type: number
example: 50
lastposttime:
type: number
description: A UNIX timestamp representing the moment the user posted last
example: 1585337827953
banned:
type: number
description: A Boolean representing whether a user is banned or not
example: 0
'banned:expire':
type: number
description: A UNIX timestamp representing the moment the ban will be lifted
example: 1585337827953
status:
type: string
enum:
- online
- offline
- dnd
- away
example: online
flags:
type: number
example: 0
nullable: true
followerCount:
type: number
example: 2
followingCount:
type: number
example: 5
'cover:url':
type: string
example: /assets/profile/1-cover.png
nullable: true
'cover:position':
type: string
example: 50.0301% 19.2464%
nullable: true
groupTitle:
type: string
example: '["administrators","Staff"]'
groupTitleArray:
type: array
example:
- administrators
- Staff
muted:
type: boolean
description: Whether or not the user has been muted.
mutedUntil:
type: number
description: A UNIX timestamp representing the moment a muted state will be lifted.
nullable: true
mutedReason:
type: string
description: The admin-provided reason for being muted.
nullable: true
'icon:text':
type: string
description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
example: D
'icon:bgColor':
type: string
description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
example: '#9c27b0'
joindateISO:
type: string
example: '2020-03-27T20:30:36.590Z'
lastonlineISO:
type: string
example: '2020-03-27T20:30:36.590Z'
banned_until:
type: number
description: A UNIX timestamp representing the moment a ban will be lifted
example: 0
banned_until_readable:
type: string
description: An ISO 8601 formatted date string representing the moment a ban will be lifted, or the words "Not Banned"
example: Not Banned
aboutmeParsed:
type: string
age:
type: number
emailHidden:
type: boolean
emailClass:
type: string
ips:
type: array
items:
type: string
moderationNote:
type: string
counts:
type: object
properties:
best:
type: number
controversial:
type: number
blocks:
type: number
bookmarks:
type: number
categoriesWatched:
type: number
downvoted:
type: number
followers:
type: number
following:
type: number
groups:
type: number
ignored:
type: number
posts:
type: number
topics:
type: number
uploaded:
type: number
upvoted:
type: number
watched:
type: number
isBlocked:
type: boolean
blocksCount:
type: number
yourid:
type: number
theirid:
type: number
isTargetAdmin:
type: boolean
isAdmin:
type: boolean
isGlobalModerator:
type: boolean
isModerator:
type: boolean
isAdminOrGlobalModerator:
type: boolean
isAdminOrGlobalModeratorOrModerator:
type: boolean
isSelfOrAdminOrGlobalModerator:
type: boolean
canEdit:
type: boolean
canBan:
type: boolean
canMute:
type: boolean
canFlag:
type: boolean
canChangePassword:
type: boolean
isSelf:
type: boolean
isFollowing:
type: boolean
hasPrivateChat:
type: number
showHidden:
type: boolean
allowProfilePicture:
type: boolean
allowCoverPicture:
type: boolean
allowProfileImageUploads:
type: number
allowedProfileImageExtensions:
type: string
groups:
type: array
items:
$ref: ./GroupObject.yaml#/GroupFullObject
selectedGroup:
type: array
items:
$ref: ./GroupObject.yaml#/GroupFullObject
disableSignatures:
type: boolean
reputation:disabled:
type: boolean
downvote:disabled:
type: boolean
profile_links:
type: array
items:
type: object
properties:
id:
type: string
route:
type: string
url:
type: string
description: The relative path to the profile link route from the root of the forum
name:
type: string
visibility:
type: object
properties:
self:
type: boolean
other:
type: boolean
moderator:
type: boolean
globalMod:
type: boolean
admin:
type: boolean
canViewInfo:
type: boolean
public:
type: boolean
icon:
type: string
required:
- id
- route
- name
- visibility
- public
sso:
type: array
items:
type: object
properties:
associated:
type: boolean
url:
type: string
name:
type: string
icon:
type: string
deauthUrl:
type: string
websiteLink:
type: string
websiteName:
type: string
username:disableEdit:
type: number
email:disableEdit:
type: number
UserObjectSlim:
type: object
properties:
uid:
type: number
description: A user identifier
example: 1
username:
type: string
description: A friendly name for a given user account
example: Dragon Fruit
displayname:
type: string
description: This is either username or fullname depending on forum and user settings
example: Dragon Fruit
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.)
example: dragon-fruit
picture:
type: string
description: A URL pointing to a picture to be used as the user's avatar
example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
nullable: true
status:
type: string
enum:
- online
- offline
- dnd
- away
example: online
postcount:
type: number
example: 1000
reputation:
type: number
description: The user's reputation score on the forum. Out-of-the-box, users gain/lose reputation points based on upvotes/downvotes, though plugins can alter the logic and criterion for awarding reputation points
example: 100
'email:confirmed':
type: number
description: Whether the user has confirmed their email address or not
example: 1
lastonline:
type: number
description: A UNIX timestamp representing the moment the user was last recorded online on this site
example: 1585337827953
flags:
type: number
example: 0
nullable: true
banned:
type: number
description: A Boolean representing whether a user is banned or not
example: 0
'banned:expire':
type: number
description: A UNIX timestamp representing the moment the ban will be lifted
example: 1585337827953
joindate:
type: number
description: A UNIX timestamp representing the moment the user's account was created
example: 1585337827953
'icon:text':
type: string
description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
example: D
'icon:bgColor':
type: string
description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
example: '#9c27b0'
joindateISO:
type: string
example: '2020-03-27T20:30:36.590Z'
lastonlineISO:
type: string
example: '2020-03-27T20:30:36.590Z'
banned_until:
type: number
description: A UNIX timestamp representing the moment a ban will be lifted
example: 0
banned_until_readable:
type: string
description: An ISO 8601 formatted date string representing the moment a ban will be lifted, or the words "Not Banned"
example: Not Banned
UserObjectACP:
type: object
required:
- uid
- username
properties:
uid:
type: number
description: A user identifier
example: 1
username:
type: string
description: A friendly name for a given user account
example: Dragon Fruit
displayname:
type: string
description: This is either username or fullname depending on forum and user settings
example: Dragon Fruit
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.)
example: dragon-fruit
email:
type: string
description: Email address associated with the user account
example: dragonfruit@example.org
postcount:
type: number
example: 1000
joindate:
type: number
description: A UNIX timestamp representing the moment the user's account was created
example: 1585337827953
banned:
type: number
description: A Boolean representing whether a user is banned or not
example: 0
reputation:
type: number
description: The user's reputation score on the forum. Out-of-the-box, users gain/lose reputation points based on upvotes/downvotes, though plugins can alter the logic and criterion for awarding reputation points
example: 100
picture:
type: string
description: A URL pointing to a picture to be used as the user's avatar
example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
nullable: true
flags:
type: number
example: 0
nullable: true
lastonline:
type: number
description: A UNIX timestamp representing the moment the user was last recorded online on this site
example: 1585337827953
'email:confirmed':
type: number
description: Whether the user has confirmed their email address or not
example: 1
'email:expired':
type: boolean
description: True if confirmation email expired
'email:pending':
type: boolean
description: True if confirmation email is still pending
'icon:text':
type: string
description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
example: D
'icon:bgColor':
type: string
description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
example: '#9c27b0'
joindateISO:
type: string
example: '2020-03-27T20:30:36.590Z'
lastonlineISO:
type: string
example: '2020-03-27T20:30:36.590Z'
banned_until_readable:
type: string
description: An ISO 8601 formatted date string representing the moment a ban will be lifted, or the words "Not Banned"
example: Not Banned
administrator:
type: boolean
ip:
type: string
nullable: true
ips:
type: array
BanMuteArray:
type: array
items:
type: object
properties:
uid:
type: number
timestamp:
type: number
expire:
type: number
fromUid:
type: number
user:
type: object
properties:
username:
type: string
description: A friendly name for a given user account
userslug:
type: string
description: An URL-safe variant of the username (i.e. lower-cased, spaces
removed, etc.)
picture:
type: string
uid:
type: number
description: A user identifier
icon:text:
type: string
description: A single-letter representation of a username. This is used in the
auto-generated icon given to users without
an avatar
icon:bgColor:
type: string
description: A six-character hexadecimal colour code assigned to the user. This
value is used in conjunction with
`icon:text` for the user's auto-generated
icon
example: "#f44336"
until:
type: number
untilReadable:
type: string
timestampReadable:
type: string
timestampISO:
type: string
reason:
type: string