Documentation
¶
Overview ¶
Package models contains the database models
Index ¶
- type Acl
- type AddChannelMemberParams
- type AddChannelMemberRow
- type AddUsersToRoleParams
- type Adminlog
- type ApiKey
- type Ban
- type Channel
- type Channellog
- type CheckChannelExistsAndRegisteredRow
- type CheckChannelExistsRow
- type CheckChannelMemberExistsRow
- type CheckChannelNameExistsRow
- type CheckChannelNoregStatusRow
- type CheckExistingPendingRequestsRow
- type CheckMultipleSupportersConcurrentSupportsRow
- type CheckMultipleSupportersNoregStatusRow
- type CheckNewManagerChannelAccessRow
- type CheckPendingChannelNameConflictRow
- type CheckUserChannelOwnershipRow
- type CheckUserCooldownStatusRow
- type Complaint
- type ComplaintType
- type ComplaintsReference
- type ComplaintsThread
- type Count
- type CreateAPIKeyParams
- type CreateChannelForInstantRegistrationRow
- type CreateChannelForRegistrationRow
- type CreateChannelParams
- type CreateChannelRow
- type CreateInstantRegistrationParams
- type CreateInstantRegistrationRow
- type CreatePasswordResetTokenParams
- type CreatePendingChannelParams
- type CreatePendingChannelRow
- type CreatePendingUserParams
- type CreateRoleParams
- type CreateUserParams
- type DBTX
- type DefaultMsg
- type DeletionTransaction
- type Domain
- type FraudList
- type FraudListDatum
- type GetAdminLevelRow
- type GetChannelByIDRow
- type GetChannelByNameRow
- type GetChannelDetailsRow
- type GetChannelMembersByAccessLevelRow
- type GetChannelUserAccessRow
- type GetManagerChangeRequestByTokenRow
- type GetManagerChangeRequestStatusRow
- type GetPasswordResetTokenStatsRow
- type GetSupportersByUsernamesRow
- type GetUserBackupCodesRow
- type GetUserChannelLimitParams
- type GetUserChannelMembershipsRow
- type GetUserChannelsRow
- type GetUserNoregDetailsRow
- type GetUserParams
- type GetUserRow
- type GetUsersByUsernamesRow
- type Gline
- type Help
- type InsertManagerChangeRequestParams
- type IpRestrict
- type Language
- type Lastrequest
- type Level
- type Lock
- type MarkBackupCodesAsReadParams
- type MarkPasswordResetTokenAsUsedParams
- type Noreg
- type Note
- type Notice
- type Objection
- type PasswordResetToken
- type Pending
- type PendingChanfixScore
- type PendingEmailchange
- type PendingMgrchange
- type PendingPasswordchange
- type PendingPwreset
- type PendingTraffic
- type Pendinguser
- type Querier
- type Queries
- func (q *Queries) AddChannelMember(ctx context.Context, arg AddChannelMemberParams) (AddChannelMemberRow, error)
- func (q *Queries) AddChannelOwner(ctx context.Context, channelID int32, userID int32) error
- func (q *Queries) AddUserRole(ctx context.Context, userID int32, roleID int32) error
- func (q *Queries) AddUsersToRole(ctx context.Context, arg []AddUsersToRoleParams) (int64, error)
- func (q *Queries) CheckChannelExists(ctx context.Context, id int32) (CheckChannelExistsRow, error)
- func (q *Queries) CheckChannelExistsAndRegistered(ctx context.Context, id int32) (CheckChannelExistsAndRegisteredRow, error)
- func (q *Queries) CheckChannelMemberExists(ctx context.Context, channelID int32, userID int32) (CheckChannelMemberExistsRow, error)
- func (q *Queries) CheckChannelNameExists(ctx context.Context, lower string) (CheckChannelNameExistsRow, error)
- func (q *Queries) CheckChannelNoregStatus(ctx context.Context, lower string) (CheckChannelNoregStatusRow, error)
- func (q *Queries) CheckChannelSingleManager(ctx context.Context, id int32) (int64, error)
- func (q *Queries) CheckEmailExists(ctx context.Context, email string) ([]pgtype.Text, error)
- func (q *Queries) CheckExistingPendingRequests(ctx context.Context, channelID int32) ([]CheckExistingPendingRequestsRow, error)
- func (q *Queries) CheckMultipleSupportersConcurrentSupports(ctx context.Context, column1 []string, column2 int32) ([]CheckMultipleSupportersConcurrentSupportsRow, error)
- func (q *Queries) CheckMultipleSupportersNoregStatus(ctx context.Context, dollar_1 []string) ([]CheckMultipleSupportersNoregStatusRow, error)
- func (q *Queries) CheckNewManagerChannelAccess(ctx context.Context, channelID int32, iD int32) (CheckNewManagerChannelAccessRow, error)
- func (q *Queries) CheckPendingChannelNameConflict(ctx context.Context, lower string) (CheckPendingChannelNameConflictRow, error)
- func (q *Queries) CheckSupporterConcurrentSupports(ctx context.Context, userID int32) (int64, error)
- func (q *Queries) CheckSupporterNoregStatus(ctx context.Context, lower string) (bool, error)
- func (q *Queries) CheckUserChannelOwnership(ctx context.Context, userID int32, iD int32) (CheckUserChannelOwnershipRow, error)
- func (q *Queries) CheckUserCooldownStatus(ctx context.Context, id int32) (CheckUserCooldownStatusRow, error)
- func (q *Queries) CheckUserNoregStatus(ctx context.Context, lower string) (bool, error)
- func (q *Queries) CheckUserOwnsOtherChannels(ctx context.Context, id int32) (bool, error)
- func (q *Queries) CheckUsernameExists(ctx context.Context, username string) ([]string, error)
- func (q *Queries) CleanupExpiredManagerChangeRequests(ctx context.Context) error
- func (q *Queries) CleanupExpiredNoreg(ctx context.Context) error
- func (q *Queries) CleanupExpiredPasswordResetTokens(ctx context.Context, expiresAt int32, lastUpdated int32) error
- func (q *Queries) ConfirmManagerChangeRequest(ctx context.Context, crc pgtype.Text) error
- func (q *Queries) CountChannelOwners(ctx context.Context, channelID int32) (int64, error)
- func (q *Queries) CreateAPIKey(ctx context.Context, arg CreateAPIKeyParams) (ApiKey, error)
- func (q *Queries) CreateChannel(ctx context.Context, arg CreateChannelParams) (CreateChannelRow, error)
- func (q *Queries) CreateChannelForInstantRegistration(ctx context.Context, name string) (CreateChannelForInstantRegistrationRow, error)
- func (q *Queries) CreateChannelForRegistration(ctx context.Context, name string) (CreateChannelForRegistrationRow, error)
- func (q *Queries) CreateChannelSupporter(ctx context.Context, channelID int32, userID int32) error
- func (q *Queries) CreateInstantRegistration(ctx context.Context, arg CreateInstantRegistrationParams) (CreateInstantRegistrationRow, error)
- func (q *Queries) CreatePasswordResetToken(ctx context.Context, arg CreatePasswordResetTokenParams) (PasswordResetToken, error)
- func (q *Queries) CreatePendingChannel(ctx context.Context, arg CreatePendingChannelParams) (CreatePendingChannelRow, error)
- func (q *Queries) CreatePendingUser(ctx context.Context, arg CreatePendingUserParams) (pgtype.Text, error)
- func (q *Queries) CreateRole(ctx context.Context, arg CreateRoleParams) (Role, error)
- func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, error)
- func (q *Queries) DeleteAPIKey(ctx context.Context, iD int32, lastUpdated int32) error
- func (q *Queries) DeleteChannelSupporters(ctx context.Context, channelID int32) error
- func (q *Queries) DeleteExpiredPasswordResetTokens(ctx context.Context, expiresAt int32) error
- func (q *Queries) DeletePendingChannel(ctx context.Context, channelID int32) error
- func (q *Queries) DeletePendingUserByCookie(ctx context.Context, cookie pgtype.Text) error
- func (q *Queries) DeleteRole(ctx context.Context, id int32) error
- func (q *Queries) DeleteSpecificChannelSupporter(ctx context.Context, channelID int32, userID int32) error
- func (q *Queries) GetAPIKey(ctx context.Context, id int32) (ApiKey, error)
- func (q *Queries) GetAPIKeyByHash(ctx context.Context, keyHash string) (ApiKey, error)
- func (q *Queries) GetAPIKeysExpiringSoon(ctx context.Context, expiresAt pgtype.Int4) ([]ApiKey, error)
- func (q *Queries) GetActivePasswordResetTokensByUserID(ctx context.Context, userID pgtype.Int4, expiresAt int32) ([]PasswordResetToken, error)
- func (q *Queries) GetAdminLevel(ctx context.Context, userID int32) (GetAdminLevelRow, error)
- func (q *Queries) GetChannelByID(ctx context.Context, id int32) (GetChannelByIDRow, error)
- func (q *Queries) GetChannelByName(ctx context.Context, name string) (GetChannelByNameRow, error)
- func (q *Queries) GetChannelDetails(ctx context.Context, id int32) (GetChannelDetailsRow, error)
- func (q *Queries) GetChannelMembersByAccessLevel(ctx context.Context, channelID int32, access int32) ([]GetChannelMembersByAccessLevelRow, error)
- func (q *Queries) GetChannelUserAccess(ctx context.Context, channelID int32, userID int32) (GetChannelUserAccessRow, error)
- func (q *Queries) GetGlineByIP(ctx context.Context, host string) (Gline, error)
- func (q *Queries) GetLastChannelRegistration(ctx context.Context, userID int32) (pgtype.Int4, error)
- func (q *Queries) GetManagerChangeRequestByToken(ctx context.Context, crc pgtype.Text) (GetManagerChangeRequestByTokenRow, error)
- func (q *Queries) GetManagerChangeRequestStatus(ctx context.Context, channelID int32) (GetManagerChangeRequestStatusRow, error)
- func (q *Queries) GetPasswordResetTokenByToken(ctx context.Context, token string) (PasswordResetToken, error)
- func (q *Queries) GetPasswordResetTokenStats(ctx context.Context, expiresAt int32) (GetPasswordResetTokenStatsRow, error)
- func (q *Queries) GetPendingUserByCookie(ctx context.Context, cookie pgtype.Text) (Pendinguser, error)
- func (q *Queries) GetRoleByID(ctx context.Context, id int32) (Role, error)
- func (q *Queries) GetRoleByName(ctx context.Context, name string) (Role, error)
- func (q *Queries) GetSupportersByUsernames(ctx context.Context, column1 []string, column2 int32) ([]GetSupportersByUsernamesRow, error)
- func (q *Queries) GetUser(ctx context.Context, arg GetUserParams) (GetUserRow, error)
- func (q *Queries) GetUserBackupCodes(ctx context.Context, id int32) (GetUserBackupCodesRow, error)
- func (q *Queries) GetUserChannelCount(ctx context.Context, userID int32) (int64, error)
- func (q *Queries) GetUserChannelLimit(ctx context.Context, arg GetUserChannelLimitParams) (int32, error)
- func (q *Queries) GetUserChannelMemberships(ctx context.Context, userID int32) ([]GetUserChannelMembershipsRow, error)
- func (q *Queries) GetUserChannels(ctx context.Context, userID int32) ([]GetUserChannelsRow, error)
- func (q *Queries) GetUserNoregDetails(ctx context.Context, lower string) (GetUserNoregDetailsRow, error)
- func (q *Queries) GetUserPendingRegistrations(ctx context.Context, managerID pgtype.Int4) (int64, error)
- func (q *Queries) GetUsersByUsernames(ctx context.Context, userids []string) ([]GetUsersByUsernamesRow, error)
- func (q *Queries) GetWhiteListByIP(ctx context.Context, ip netip.Addr) (Whitelist, error)
- func (q *Queries) InsertManagerChangeRequest(ctx context.Context, arg InsertManagerChangeRequestParams) (pgtype.Int4, error)
- func (q *Queries) InvalidateUserPasswordResetTokens(ctx context.Context, userID pgtype.Int4, lastUpdated int32) error
- func (q *Queries) ListAPIKeys(ctx context.Context) ([]ApiKey, error)
- func (q *Queries) ListPendingUsers(ctx context.Context) ([]Pendinguser, error)
- func (q *Queries) ListRoles(ctx context.Context) ([]Role, error)
- func (q *Queries) ListUserRoles(ctx context.Context, userID int32) ([]Role, error)
- func (q *Queries) MarkBackupCodesAsRead(ctx context.Context, arg MarkBackupCodesAsReadParams) error
- func (q *Queries) MarkPasswordResetTokenAsUsed(ctx context.Context, arg MarkPasswordResetTokenAsUsedParams) error
- func (q *Queries) RemoveChannelMember(ctx context.Context, arg RemoveChannelMemberParams) (RemoveChannelMemberRow, error)
- func (q *Queries) RemoveUserRole(ctx context.Context, userID int32, roleID int32) error
- func (q *Queries) RemoveUsersFromRole(ctx context.Context, userIds []int32, roleID int32) error
- func (q *Queries) SearchChannels(ctx context.Context, arg SearchChannelsParams) ([]SearchChannelsRow, error)
- func (q *Queries) SearchChannelsCount(ctx context.Context, name string) (int64, error)
- func (q *Queries) SoftDeleteChannel(ctx context.Context, id int32) error
- func (q *Queries) UpdateAPIKeyIPRestrictions(ctx context.Context, arg UpdateAPIKeyIPRestrictionsParams) error
- func (q *Queries) UpdateAPIKeyLastUsed(ctx context.Context, iD int32, lastUsedAt pgtype.Int4) error
- func (q *Queries) UpdateAPIKeyScopes(ctx context.Context, arg UpdateAPIKeyScopesParams) error
- func (q *Queries) UpdateChannelRegistrationStatus(ctx context.Context, id int32) error
- func (q *Queries) UpdateChannelSettings(ctx context.Context, arg UpdateChannelSettingsParams) (UpdateChannelSettingsRow, error)
- func (q *Queries) UpdatePendingChannelDescription(ctx context.Context, channelID int32, description pgtype.Text) error
- func (q *Queries) UpdatePendingChannelStatus(ctx context.Context, arg UpdatePendingChannelStatusParams) (UpdatePendingChannelStatusRow, error)
- func (q *Queries) UpdateRole(ctx context.Context, arg UpdateRoleParams) error
- func (q *Queries) UpdateUserBackupCodes(ctx context.Context, arg UpdateUserBackupCodesParams) error
- func (q *Queries) UpdateUserCooldown(ctx context.Context, iD int32, column2 interface{}) error
- func (q *Queries) UpdateUserFlags(ctx context.Context, arg UpdateUserFlagsParams) error
- func (q *Queries) UpdateUserLastSeen(ctx context.Context, userID int32) error
- func (q *Queries) UpdateUserPassword(ctx context.Context, arg UpdateUserPasswordParams) error
- func (q *Queries) UpdateUserTotpKey(ctx context.Context, arg UpdateUserTotpKeyParams) error
- func (q *Queries) ValidatePasswordResetToken(ctx context.Context, token string, expiresAt int32) (PasswordResetToken, error)
- func (q *Queries) WithTx(tx pgx.Tx) *Queries
- type RemoveChannelMemberParams
- type RemoveChannelMemberRow
- type Role
- type SearchChannelsParams
- type SearchChannelsRow
- type Service
- type ServiceInterface
- type Statistic
- type Supporter
- type Timezone
- type Translation
- type UpdateAPIKeyIPRestrictionsParams
- type UpdateAPIKeyScopesParams
- type UpdateChannelSettingsParams
- type UpdateChannelSettingsRow
- type UpdatePendingChannelStatusParams
- type UpdatePendingChannelStatusRow
- type UpdateRoleParams
- type UpdateUserBackupCodesParams
- type UpdateUserFlagsParams
- type UpdateUserPasswordParams
- type UpdateUserTotpKeyParams
- type User
- type UserRole
- type UserSecHistory
- type Userlog
- type UsersLastseen
- type Variable
- type Webnotice
- type Whitelist
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Acl ¶
type Acl struct {
AclID pgtype.Int4 `json:"acl_id"`
UserID int32 `json:"user_id"`
Isstaff int16 `json:"isstaff"`
Flags flags.ACL `json:"flags"`
Xtra int32 `json:"xtra"`
LastUpdated int32 `json:"last_updated"`
LastUpdatedBy int32 `json:"last_updated_by"`
SuspendExpire int32 `json:"suspend_expire"`
SuspendBy int32 `json:"suspend_by"`
Deleted int16 `json:"deleted"`
}
type AddChannelMemberParams ¶ added in v0.3.0
type AddChannelMemberRow ¶ added in v0.3.0
type AddUsersToRoleParams ¶ added in v0.0.6
type ApiKey ¶ added in v0.5.2
type ApiKey struct {
ID int32 `json:"id"`
Name string `json:"name"`
Description pgtype.Text `json:"description"`
// SHA-256 hash of the API key (plain key never stored)
KeyHash string `json:"key_hash"`
// JSON array of permission scopes (e.g., ["channels:read", "users:write"])
Scopes []byte `json:"scopes"`
CreatedBy int32 `json:"created_by"`
CreatedAt int32 `json:"created_at"`
LastUsedAt pgtype.Int4 `json:"last_used_at"`
ExpiresAt pgtype.Int4 `json:"expires_at"`
LastUpdated int32 `json:"last_updated"`
// Soft delete flag: 0=active, 1=deleted
Deleted pgtype.Int2 `json:"deleted"`
// Array of CIDR ranges (IPv4/IPv6) allowed to use this API key. Empty array means no restrictions.
IpRestrictions []byte `json:"ip_restrictions"`
}
Service-to-service authentication keys with scoped permissions
type Ban ¶
type Ban struct {
ID pgtype.Int4 `json:"id"`
ChannelID int32 `json:"channel_id"`
Banmask string `json:"banmask"`
SetBy pgtype.Text `json:"set_by"`
SetTs pgtype.Int4 `json:"set_ts"`
Level pgtype.Int2 `json:"level"`
Expires pgtype.Int4 `json:"expires"`
Reason pgtype.Text `json:"reason"`
LastUpdated int32 `json:"last_updated"`
Deleted pgtype.Int2 `json:"deleted"`
}
type Channel ¶
type Channel struct {
ID int32 `json:"id"`
Name string `json:"name"`
Flags flags.Channel `json:"flags"`
MassDeopPro int16 `json:"mass_deop_pro"`
FloodPro int32 `json:"flood_pro"`
Url pgtype.Text `json:"url"`
Description pgtype.Text `json:"description"`
Comment pgtype.Text `json:"comment"`
Keywords pgtype.Text `json:"keywords"`
RegisteredTs pgtype.Int4 `json:"registered_ts"`
ChannelTs int32 `json:"channel_ts"`
ChannelMode pgtype.Text `json:"channel_mode"`
Userflags flags.ChannelUser `json:"userflags"`
LimitOffset pgtype.Int4 `json:"limit_offset"`
LimitPeriod pgtype.Int4 `json:"limit_period"`
LimitGrace pgtype.Int4 `json:"limit_grace"`
LimitMax pgtype.Int4 `json:"limit_max"`
NoTake pgtype.Int4 `json:"no_take"`
LastUpdated int32 `json:"last_updated"`
Deleted pgtype.Int2 `json:"deleted"`
MaxBans pgtype.Int4 `json:"max_bans"`
Welcome pgtype.Text `json:"welcome"`
}
type Channellog ¶
type CheckChannelExistsAndRegisteredRow ¶ added in v0.4.1
type CheckChannelExistsRow ¶ added in v0.3.0
type CheckChannelMemberExistsRow ¶ added in v0.3.0
type CheckChannelNameExistsRow ¶ added in v0.4.0
type CheckChannelNoregStatusRow ¶ added in v0.4.0
type CheckChannelNoregStatusRow struct {
IsNoreg bool `json:"is_noreg"`
NoregType interface{} `json:"noreg_type"`
Reason interface{} `json:"reason"`
NeverReg interface{} `json:"never_reg"`
ExpireTime interface{} `json:"expire_time"`
}
type CheckExistingPendingRequestsRow ¶ added in v0.4.1
type CheckMultipleSupportersConcurrentSupportsRow ¶ added in v0.4.0
type CheckMultipleSupportersNoregStatusRow ¶ added in v0.4.0
type CheckMultipleSupportersNoregStatusRow struct {
Username interface{} `json:"user_name"`
IsNoreg bool `json:"is_noreg"`
}
type CheckNewManagerChannelAccessRow ¶ added in v0.4.1
type CheckPendingChannelNameConflictRow ¶ added in v0.4.0
type CheckUserChannelOwnershipRow ¶ added in v0.4.1
type CheckUserCooldownStatusRow ¶ added in v0.4.1
type Complaint ¶
type Complaint struct {
ID int32 `json:"id"`
FromID int32 `json:"from_id"`
FromEmail string `json:"from_email"`
InrecEmail string `json:"inrec_email"`
ComplaintType int32 `json:"complaint_type"`
ComplaintText string `json:"complaint_text"`
ComplaintLogs string `json:"complaint_logs"`
ComplaintChannel1ID int32 `json:"complaint_channel1_id"`
ComplaintChannel1Name string `json:"complaint_channel1_name"`
ComplaintChannel2ID int32 `json:"complaint_channel2_id"`
ComplaintChannel2Name string `json:"complaint_channel2_name"`
ComplaintUsersID int32 `json:"complaint_users_id"`
Status int32 `json:"status"`
Nicelevel int32 `json:"nicelevel"`
ReviewedByID int32 `json:"reviewed_by_id"`
ReviewedTs int32 `json:"reviewed_ts"`
CreatedTs int32 `json:"created_ts"`
CreatedIp string `json:"created_ip"`
CreatedCrc string `json:"created_crc"`
CrcExpiration int32 `json:"crc_expiration"`
TicketNumber string `json:"ticket_number"`
CurrentOwner int32 `json:"current_owner"`
}
type ComplaintType ¶
type ComplaintsReference ¶
type ComplaintsThread ¶
type CreateAPIKeyParams ¶ added in v0.5.2
type CreateAPIKeyParams struct {
Name string `json:"name"`
Description pgtype.Text `json:"description"`
KeyHash string `json:"key_hash"`
Scopes []byte `json:"scopes"`
IpRestrictions []byte `json:"ip_restrictions"`
CreatedBy int32 `json:"created_by"`
CreatedAt int32 `json:"created_at"`
LastUpdated int32 `json:"last_updated"`
}
type CreateChannelForInstantRegistrationRow ¶ added in v0.4.0
type CreateChannelForRegistrationRow ¶ added in v0.4.0
type CreateChannelParams ¶ added in v0.4.0
type CreateChannelRow ¶ added in v0.4.0
type CreateInstantRegistrationParams ¶ added in v0.4.0
type CreateInstantRegistrationRow ¶ added in v0.4.0
type CreatePasswordResetTokenParams ¶ added in v0.3.0
type CreatePendingChannelParams ¶ added in v0.4.0
type CreatePendingChannelRow ¶ added in v0.4.0
type CreatePendingUserParams ¶
type CreatePendingUserParams struct {
Username pgtype.Text `json:"user_name"`
Password password.Password `json:"password"`
Cookie pgtype.Text `json:"cookie"`
Expire pgtype.Int4 `json:"expire"`
Email pgtype.Text `json:"email"`
Language pgtype.Int4 `json:"language"`
QuestionID pgtype.Int2 `json:"question_id"`
Verificationdata pgtype.Text `json:"verificationdata"`
PosterIp pgtype.Text `json:"poster_ip"`
}
type CreateRoleParams ¶ added in v0.0.6
type CreateUserParams ¶
type CreateUserParams struct {
Username string `json:"user_name"`
Password password.Password `json:"password"`
Flags flags.User `json:"flags"`
Email pgtype.Text `json:"email"`
LastUpdated int32 `json:"last_updated"`
LastUpdatedBy pgtype.Text `json:"last_updated_by"`
LanguageID pgtype.Int4 `json:"language_id"`
QuestionID pgtype.Int2 `json:"question_id"`
Verificationdata pgtype.Text `json:"verificationdata"`
PostForms int32 `json:"post_forms"`
SignupTs pgtype.Int4 `json:"signup_ts"`
SignupIp pgtype.Text `json:"signup_ip"`
Maxlogins pgtype.Int4 `json:"maxlogins"`
}
type DBTX ¶
type DBTX interface {
Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
Query(context.Context, string, ...interface{}) (pgx.Rows, error)
QueryRow(context.Context, string, ...interface{}) pgx.Row
CopyFrom(ctx context.Context, tableName pgx.Identifier, columnNames []string, rowSrc pgx.CopyFromSource) (int64, error)
}
type DefaultMsg ¶
type DeletionTransaction ¶
type FraudListDatum ¶
type GetAdminLevelRow ¶ added in v0.0.6
type GetChannelByIDRow ¶ added in v0.3.0
type GetChannelByNameRow ¶ added in v0.3.0
type GetChannelDetailsRow ¶ added in v0.3.0
type GetChannelMembersByAccessLevelRow ¶ added in v0.3.0
type GetChannelUserAccessRow ¶ added in v0.3.0
type GetManagerChangeRequestByTokenRow ¶ added in v0.4.1
type GetManagerChangeRequestByTokenRow struct {
ID pgtype.Int4 `json:"id"`
ChannelID int32 `json:"channel_id"`
ManagerID int32 `json:"manager_id"`
NewManagerID int32 `json:"new_manager_id"`
ChangeType pgtype.Int2 `json:"change_type"`
OptDuration pgtype.Int4 `json:"opt_duration"`
Reason pgtype.Text `json:"reason"`
Expiration pgtype.Int4 `json:"expiration"`
Crc pgtype.Text `json:"crc"`
Confirmed pgtype.Int2 `json:"confirmed"`
FromHost pgtype.Text `json:"from_host"`
ChannelName string `json:"channel_name"`
}
type GetManagerChangeRequestStatusRow ¶ added in v0.4.1
type GetManagerChangeRequestStatusRow struct {
ID pgtype.Int4 `json:"id"`
ChannelID int32 `json:"channel_id"`
ChangeType pgtype.Int2 `json:"change_type"`
Confirmed pgtype.Int2 `json:"confirmed"`
Expiration pgtype.Int4 `json:"expiration"`
Reason pgtype.Text `json:"reason"`
OptDuration pgtype.Int4 `json:"opt_duration"`
NewManagerUsername string `json:"new_manager_username"`
}
type GetPasswordResetTokenStatsRow ¶ added in v0.3.0
type GetSupportersByUsernamesRow ¶ added in v0.4.0
type GetSupportersByUsernamesRow struct {
ID int32 `json:"id"`
Username string `json:"user_name"`
Flags flags.User `json:"flags"`
Email pgtype.Text `json:"email"`
SignupTs pgtype.Int4 `json:"signup_ts"`
LastSeen pgtype.Int4 `json:"last_seen"`
IsOldEnough bool `json:"is_old_enough"`
DaysOld interface{} `json:"days_old"`
HasFraudFlag bool `json:"has_fraud_flag"`
}
type GetUserBackupCodesRow ¶ added in v0.4.1
type GetUserChannelLimitParams ¶ added in v0.4.0
type GetUserChannelMembershipsRow ¶ added in v0.3.0
type GetUserChannelsRow ¶
type GetUserChannelsRow struct {
Name string `json:"name"`
ChannelID int32 `json:"channel_id"`
UserID int32 `json:"user_id"`
Access int32 `json:"access"`
Flags int16 `json:"flags"`
LastModif pgtype.Int4 `json:"last_modif"`
SuspendExpires pgtype.Int4 `json:"suspend_expires"`
SuspendBy pgtype.Text `json:"suspend_by"`
}
type GetUserNoregDetailsRow ¶ added in v0.4.0
type GetUserParams ¶ added in v0.0.6
type GetUserRow ¶ added in v0.0.6
type GetUserRow struct {
ID int32 `json:"id"`
Username string `json:"user_name"`
Password password.Password `json:"password"`
Email pgtype.Text `json:"email"`
Url pgtype.Text `json:"url"`
QuestionID pgtype.Int2 `json:"question_id"`
Verificationdata pgtype.Text `json:"verificationdata"`
LanguageID pgtype.Int4 `json:"language_id"`
PublicKey pgtype.Text `json:"public_key"`
PostForms int32 `json:"post_forms"`
Flags flags.User `json:"flags"`
LastUpdatedBy pgtype.Text `json:"last_updated_by"`
LastUpdated int32 `json:"last_updated"`
Deleted pgtype.Int2 `json:"deleted"`
TzSetting pgtype.Text `json:"tz_setting"`
SignupCookie pgtype.Text `json:"signup_cookie"`
SignupTs pgtype.Int4 `json:"signup_ts"`
SignupIp pgtype.Text `json:"signup_ip"`
Maxlogins pgtype.Int4 `json:"maxlogins"`
TotpKey pgtype.Text `json:"totp_key"`
BackupCodes []byte `json:"backup_codes"`
BackupCodesRead pgtype.Bool `json:"backup_codes_read"`
LastSeen pgtype.Int4 `json:"last_seen"`
LanguageCode pgtype.Text `json:"language_code"`
LanguageName pgtype.Text `json:"language_name"`
}
type GetUsersByUsernamesRow ¶ added in v0.0.6
type GetUsersByUsernamesRow struct {
ID int32 `json:"id"`
Username string `json:"user_name"`
Password password.Password `json:"password"`
Email pgtype.Text `json:"email"`
Url pgtype.Text `json:"url"`
QuestionID pgtype.Int2 `json:"question_id"`
Verificationdata pgtype.Text `json:"verificationdata"`
LanguageID pgtype.Int4 `json:"language_id"`
PublicKey pgtype.Text `json:"public_key"`
PostForms int32 `json:"post_forms"`
Flags flags.User `json:"flags"`
LastUpdatedBy pgtype.Text `json:"last_updated_by"`
LastUpdated int32 `json:"last_updated"`
Deleted pgtype.Int2 `json:"deleted"`
TzSetting pgtype.Text `json:"tz_setting"`
SignupCookie pgtype.Text `json:"signup_cookie"`
SignupTs pgtype.Int4 `json:"signup_ts"`
SignupIp pgtype.Text `json:"signup_ip"`
Maxlogins pgtype.Int4 `json:"maxlogins"`
TotpKey pgtype.Text `json:"totp_key"`
BackupCodes []byte `json:"backup_codes"`
BackupCodesRead pgtype.Bool `json:"backup_codes_read"`
LastSeen pgtype.Int4 `json:"last_seen"`
LanguageCode pgtype.Text `json:"language_code"`
LanguageName pgtype.Text `json:"language_name"`
}
type InsertManagerChangeRequestParams ¶ added in v0.4.1
type InsertManagerChangeRequestParams struct {
ChannelID int32 `json:"channel_id"`
ManagerID int32 `json:"manager_id"`
NewManagerID int32 `json:"new_manager_id"`
ChangeType pgtype.Int2 `json:"change_type"`
OptDuration pgtype.Int4 `json:"opt_duration"`
Reason pgtype.Text `json:"reason"`
Expiration pgtype.Int4 `json:"expiration"`
Crc pgtype.Text `json:"crc"`
FromHost pgtype.Text `json:"from_host"`
}
type IpRestrict ¶
type IpRestrict struct {
ID pgtype.Int4 `json:"id"`
UserID int32 `json:"user_id"`
Added int32 `json:"added"`
AddedBy int32 `json:"added_by"`
Type int32 `json:"type"`
Value netip.Addr `json:"value"`
LastUpdated int32 `json:"last_updated"`
LastUsed int32 `json:"last_used"`
Expiry int32 `json:"expiry"`
Description pgtype.Text `json:"description"`
}
type Lastrequest ¶
type Level ¶
type Level struct {
ChannelID int32 `json:"channel_id"`
UserID int32 `json:"user_id"`
Access int32 `json:"access"`
Flags int16 `json:"flags"`
SuspendExpires pgtype.Int4 `json:"suspend_expires"`
SuspendLevel pgtype.Int4 `json:"suspend_level"`
SuspendBy pgtype.Text `json:"suspend_by"`
SuspendReason pgtype.Text `json:"suspend_reason"`
Added pgtype.Int4 `json:"added"`
AddedBy pgtype.Text `json:"added_by"`
LastModif pgtype.Int4 `json:"last_modif"`
LastModifBy pgtype.Text `json:"last_modif_by"`
LastUpdated int32 `json:"last_updated"`
Deleted pgtype.Int2 `json:"deleted"`
}
type MarkBackupCodesAsReadParams ¶ added in v0.4.1
type MarkPasswordResetTokenAsUsedParams ¶ added in v0.3.0
type Noreg ¶
type Noreg struct {
ID pgtype.Int4 `json:"id"`
Username pgtype.Text `json:"user_name"`
Email pgtype.Text `json:"email"`
ChannelName pgtype.Text `json:"channel_name"`
Type int32 `json:"type"`
NeverReg int32 `json:"never_reg"`
ForReview int32 `json:"for_review"`
ExpireTime pgtype.Int4 `json:"expire_time"`
CreatedTs pgtype.Int4 `json:"created_ts"`
SetBy pgtype.Text `json:"set_by"`
Reason pgtype.Text `json:"reason"`
}
type PasswordResetToken ¶ added in v0.3.0
type PasswordResetToken struct {
ID int32 `json:"id"`
UserID pgtype.Int4 `json:"user_id"`
Token string `json:"token"`
CreatedAt int32 `json:"created_at"`
ExpiresAt int32 `json:"expires_at"`
UsedAt pgtype.Int4 `json:"used_at"`
LastUpdated int32 `json:"last_updated"`
Deleted pgtype.Int2 `json:"deleted"`
}
type Pending ¶
type Pending struct {
ChannelID int32 `json:"channel_id"`
ManagerID pgtype.Int4 `json:"manager_id"`
CreatedTs int32 `json:"created_ts"`
CheckStartTs int32 `json:"check_start_ts"`
Status pgtype.Int4 `json:"status"`
JoinCount pgtype.Int4 `json:"join_count"`
UniqueJoinCount pgtype.Int4 `json:"unique_join_count"`
DecisionTs pgtype.Int4 `json:"decision_ts"`
Decision pgtype.Text `json:"decision"`
Managername pgtype.Text `json:"managername"`
RegAcknowledged pgtype.Text `json:"reg_acknowledged"`
Comments pgtype.Text `json:"comments"`
LastUpdated int32 `json:"last_updated"`
Description pgtype.Text `json:"description"`
Reviewed string `json:"reviewed"`
FirstInit string `json:"first_init"`
ReviewedByID pgtype.Int4 `json:"reviewed_by_id"`
}
type PendingChanfixScore ¶
type PendingChanfixScore struct {
ChannelID pgtype.Int4 `json:"channel_id"`
UserID string `json:"user_id"`
Rank int32 `json:"rank"`
Score int32 `json:"score"`
Account string `json:"account"`
FirstOpped pgtype.Text `json:"first_opped"`
LastOpped pgtype.Text `json:"last_opped"`
LastUpdated int32 `json:"last_updated"`
First string `json:"first"`
}
type PendingEmailchange ¶
type PendingMgrchange ¶
type PendingMgrchange struct {
ID pgtype.Int4 `json:"id"`
ChannelID int32 `json:"channel_id"`
ManagerID int32 `json:"manager_id"`
NewManagerID int32 `json:"new_manager_id"`
ChangeType pgtype.Int2 `json:"change_type"`
OptDuration pgtype.Int4 `json:"opt_duration"`
Reason pgtype.Text `json:"reason"`
Expiration pgtype.Int4 `json:"expiration"`
Crc pgtype.Text `json:"crc"`
Confirmed pgtype.Int2 `json:"confirmed"`
FromHost pgtype.Text `json:"from_host"`
}
type PendingPasswordchange ¶
type PendingPwreset ¶
type PendingTraffic ¶
type Pendinguser ¶
type Pendinguser struct {
Username pgtype.Text `json:"user_name"`
Cookie pgtype.Text `json:"cookie"`
Email pgtype.Text `json:"email"`
Expire pgtype.Int4 `json:"expire"`
QuestionID pgtype.Int2 `json:"question_id"`
Verificationdata pgtype.Text `json:"verificationdata"`
PosterIp pgtype.Text `json:"poster_ip"`
Language pgtype.Int4 `json:"language"`
Password password.Password `json:"password"`
}
type Querier ¶
type Querier interface {
AddChannelMember(ctx context.Context, arg AddChannelMemberParams) (AddChannelMemberRow, error)
// Adds the manager as owner (access 500) for instant registration
AddChannelOwner(ctx context.Context, channelID int32, userID int32) error
AddUserRole(ctx context.Context, userID int32, roleID int32) error
AddUsersToRole(ctx context.Context, arg []AddUsersToRoleParams) (int64, error)
CheckChannelExists(ctx context.Context, id int32) (CheckChannelExistsRow, error)
// Validate channel exists and is registered (managerchange.php:197)
CheckChannelExistsAndRegistered(ctx context.Context, id int32) (CheckChannelExistsAndRegisteredRow, error)
CheckChannelMemberExists(ctx context.Context, channelID int32, userID int32) (CheckChannelMemberExistsRow, error)
// Checks if a channel name already exists
CheckChannelNameExists(ctx context.Context, lower string) (CheckChannelNameExistsRow, error)
// Checks if a channel name is in NOREG
CheckChannelNoregStatus(ctx context.Context, lower string) (CheckChannelNoregStatusRow, error)
// Ensure channel has only one manager (managerchange.php:295)
CheckChannelSingleManager(ctx context.Context, id int32) (int64, error)
CheckEmailExists(ctx context.Context, email string) ([]pgtype.Text, error)
// Manager Change SQL Queries
// Based on legacy PHP implementation with optimizations
// Check for existing pending requests (managerchange.php:206,217)
CheckExistingPendingRequests(ctx context.Context, channelID int32) ([]CheckExistingPendingRequestsRow, error)
// Efficiently checks concurrent supports for multiple supporters at once
CheckMultipleSupportersConcurrentSupports(ctx context.Context, column1 []string, column2 int32) ([]CheckMultipleSupportersConcurrentSupportsRow, error)
// Efficiently checks NOREG status for multiple supporters at once
CheckMultipleSupportersNoregStatus(ctx context.Context, dollar_1 []string) ([]CheckMultipleSupportersNoregStatusRow, error)
// Check new manager has level 499 on channel (managerchange.php:433)
CheckNewManagerChannelAccess(ctx context.Context, channelID int32, iD int32) (CheckNewManagerChannelAccessRow, error)
// Checks if there's already a pending registration for this channel name
CheckPendingChannelNameConflict(ctx context.Context, lower string) (CheckPendingChannelNameConflictRow, error)
// Checks how many channels a supporter is currently supporting
CheckSupporterConcurrentSupports(ctx context.Context, userID int32) (int64, error)
// Checks if a supporter has NOREG status
CheckSupporterNoregStatus(ctx context.Context, lower string) (bool, error)
// Check if user has level 500 access on channel (managerchange.php:362)
CheckUserChannelOwnership(ctx context.Context, userID int32, iD int32) (CheckUserChannelOwnershipRow, error)
// Check user form submission cooldown status
CheckUserCooldownStatus(ctx context.Context, id int32) (CheckUserCooldownStatusRow, error)
// NOREG table queries for checking user restrictions
// Checks if a user has NOREG status
CheckUserNoregStatus(ctx context.Context, lower string) (bool, error)
// Check if user already owns other channels (managerchange.php:443)
CheckUserOwnsOtherChannels(ctx context.Context, id int32) (bool, error)
CheckUsernameExists(ctx context.Context, username string) ([]string, error)
// Clean up expired unconfirmed requests (confirm_mgrchange.php:16)
CleanupExpiredManagerChangeRequests(ctx context.Context) error
// Removes expired NOREG entries (matches PHP cleanup)
CleanupExpiredNoreg(ctx context.Context) error
CleanupExpiredPasswordResetTokens(ctx context.Context, expiresAt int32, lastUpdated int32) error
// Mark request as confirmed (confirm_mgrchange.php:25)
ConfirmManagerChangeRequest(ctx context.Context, crc pgtype.Text) error
CountChannelOwners(ctx context.Context, channelID int32) (int64, error)
CreateAPIKey(ctx context.Context, arg CreateAPIKeyParams) (ApiKey, error)
// Channel Registration INSERT queries
// Creates a new channel entry (when registration is approved)
CreateChannel(ctx context.Context, arg CreateChannelParams) (CreateChannelRow, error)
// Creates a new channel entry for instant registration (no supporters required)
CreateChannelForInstantRegistration(ctx context.Context, name string) (CreateChannelForInstantRegistrationRow, error)
// Creates a new channel entry for pending registration
CreateChannelForRegistration(ctx context.Context, name string) (CreateChannelForRegistrationRow, error)
// Supporters table queries for channel registration
// Adds a supporter to a pending channel registration
CreateChannelSupporter(ctx context.Context, channelID int32, userID int32) error
// Creates an instant registration (when no supporters required)
CreateInstantRegistration(ctx context.Context, arg CreateInstantRegistrationParams) (CreateInstantRegistrationRow, error)
CreatePasswordResetToken(ctx context.Context, arg CreatePasswordResetTokenParams) (PasswordResetToken, error)
// Creates a new pending channel registration
CreatePendingChannel(ctx context.Context, arg CreatePendingChannelParams) (CreatePendingChannelRow, error)
CreatePendingUser(ctx context.Context, arg CreatePendingUserParams) (pgtype.Text, error)
CreateRole(ctx context.Context, arg CreateRoleParams) (Role, error)
CreateUser(ctx context.Context, arg CreateUserParams) (User, error)
DeleteAPIKey(ctx context.Context, iD int32, lastUpdated int32) error
// Removes all supporters for a pending channel
DeleteChannelSupporters(ctx context.Context, channelID int32) error
DeleteExpiredPasswordResetTokens(ctx context.Context, expiresAt int32) error
// Removes a pending channel registration
DeletePendingChannel(ctx context.Context, channelID int32) error
DeletePendingUserByCookie(ctx context.Context, cookie pgtype.Text) error
DeleteRole(ctx context.Context, id int32) error
// Removes a specific supporter from a pending channel
DeleteSpecificChannelSupporter(ctx context.Context, channelID int32, userID int32) error
GetAPIKey(ctx context.Context, id int32) (ApiKey, error)
GetAPIKeyByHash(ctx context.Context, keyHash string) (ApiKey, error)
GetAPIKeysExpiringSoon(ctx context.Context, expiresAt pgtype.Int4) ([]ApiKey, error)
GetActivePasswordResetTokensByUserID(ctx context.Context, userID pgtype.Int4, expiresAt int32) ([]PasswordResetToken, error)
GetAdminLevel(ctx context.Context, userID int32) (GetAdminLevelRow, error)
GetChannelByID(ctx context.Context, id int32) (GetChannelByIDRow, error)
GetChannelByName(ctx context.Context, name string) (GetChannelByNameRow, error)
GetChannelDetails(ctx context.Context, id int32) (GetChannelDetailsRow, error)
GetChannelMembersByAccessLevel(ctx context.Context, channelID int32, access int32) ([]GetChannelMembersByAccessLevelRow, error)
GetChannelUserAccess(ctx context.Context, channelID int32, userID int32) (GetChannelUserAccessRow, error)
GetGlineByIP(ctx context.Context, host string) (Gline, error)
// Returns the timestamp of the user's last successful channel registration
GetLastChannelRegistration(ctx context.Context, userID int32) (pgtype.Int4, error)
// Validate confirmation token (confirm_mgrchange.php:17)
GetManagerChangeRequestByToken(ctx context.Context, crc pgtype.Text) (GetManagerChangeRequestByTokenRow, error)
// Get status of pending manager change requests for a channel
GetManagerChangeRequestStatus(ctx context.Context, channelID int32) (GetManagerChangeRequestStatusRow, error)
GetPasswordResetTokenByToken(ctx context.Context, token string) (PasswordResetToken, error)
GetPasswordResetTokenStats(ctx context.Context, expiresAt int32) (GetPasswordResetTokenStatsRow, error)
GetPendingUserByCookie(ctx context.Context, cookie pgtype.Text) (Pendinguser, error)
GetRoleByID(ctx context.Context, id int32) (Role, error)
GetRoleByName(ctx context.Context, name string) (Role, error)
// Gets all supporter information in one query for efficient validation
// This replaces multiple individual supporter validation queries
GetSupportersByUsernames(ctx context.Context, column1 []string, column2 int32) ([]GetSupportersByUsernamesRow, error)
GetUser(ctx context.Context, arg GetUserParams) (GetUserRow, error)
// Gets user's backup codes and read status
GetUserBackupCodes(ctx context.Context, id int32) (GetUserBackupCodesRow, error)
// Channel Registration SELECT queries
// Returns the count of channels owned by a user
GetUserChannelCount(ctx context.Context, userID int32) (int64, error)
// Channel Registration related user queries
// Gets the channel limit for a user based on their flags
GetUserChannelLimit(ctx context.Context, arg GetUserChannelLimitParams) (int32, error)
GetUserChannelMemberships(ctx context.Context, userID int32) ([]GetUserChannelMembershipsRow, error)
GetUserChannels(ctx context.Context, userID int32) ([]GetUserChannelsRow, error)
// Gets detailed NOREG information for a user
GetUserNoregDetails(ctx context.Context, lower string) (GetUserNoregDetailsRow, error)
// Pending table queries for channel registration
// Returns the count of pending channel registrations for a user
GetUserPendingRegistrations(ctx context.Context, managerID pgtype.Int4) (int64, error)
GetUsersByUsernames(ctx context.Context, userids []string) ([]GetUsersByUsernamesRow, error)
GetWhiteListByIP(ctx context.Context, ip netip.Addr) (Whitelist, error)
// Create pending manager change request (managerchange.php:327-328)
InsertManagerChangeRequest(ctx context.Context, arg InsertManagerChangeRequestParams) (pgtype.Int4, error)
InvalidateUserPasswordResetTokens(ctx context.Context, userID pgtype.Int4, lastUpdated int32) error
ListAPIKeys(ctx context.Context) ([]ApiKey, error)
ListPendingUsers(ctx context.Context) ([]Pendinguser, error)
ListRoles(ctx context.Context) ([]Role, error)
ListUserRoles(ctx context.Context, userID int32) ([]Role, error)
// Marks backup codes as read after user has seen them
MarkBackupCodesAsRead(ctx context.Context, arg MarkBackupCodesAsReadParams) error
MarkPasswordResetTokenAsUsed(ctx context.Context, arg MarkPasswordResetTokenAsUsedParams) error
RemoveChannelMember(ctx context.Context, arg RemoveChannelMemberParams) (RemoveChannelMemberRow, error)
RemoveUserRole(ctx context.Context, userID int32, roleID int32) error
RemoveUsersFromRole(ctx context.Context, userIds []int32, roleID int32) error
SearchChannels(ctx context.Context, arg SearchChannelsParams) ([]SearchChannelsRow, error)
SearchChannelsCount(ctx context.Context, name string) (int64, error)
// Channel Registration DELETE queries
// Soft deletes a channel by setting registered_ts to 0
SoftDeleteChannel(ctx context.Context, id int32) error
UpdateAPIKeyIPRestrictions(ctx context.Context, arg UpdateAPIKeyIPRestrictionsParams) error
UpdateAPIKeyLastUsed(ctx context.Context, iD int32, lastUsedAt pgtype.Int4) error
UpdateAPIKeyScopes(ctx context.Context, arg UpdateAPIKeyScopesParams) error
// Channel Registration UPDATE queries
// Updates channel registration related timestamps and status
UpdateChannelRegistrationStatus(ctx context.Context, id int32) error
UpdateChannelSettings(ctx context.Context, arg UpdateChannelSettingsParams) (UpdateChannelSettingsRow, error)
// Updates the description of a pending channel registration
UpdatePendingChannelDescription(ctx context.Context, channelID int32, description pgtype.Text) error
// Updates the status of a pending channel registration
UpdatePendingChannelStatus(ctx context.Context, arg UpdatePendingChannelStatusParams) (UpdatePendingChannelStatusRow, error)
UpdateRole(ctx context.Context, arg UpdateRoleParams) error
// Backup codes related queries
// Updates user's backup codes and marks them as unread
UpdateUserBackupCodes(ctx context.Context, arg UpdateUserBackupCodesParams) error
// Set user form submission cooldown (managerchange.php:352)
UpdateUserCooldown(ctx context.Context, iD int32, column2 interface{}) error
UpdateUserFlags(ctx context.Context, arg UpdateUserFlagsParams) error
// Updates user's last seen timestamp (used for instant registration)
UpdateUserLastSeen(ctx context.Context, userID int32) error
UpdateUserPassword(ctx context.Context, arg UpdateUserPasswordParams) error
UpdateUserTotpKey(ctx context.Context, arg UpdateUserTotpKeyParams) error
ValidatePasswordResetToken(ctx context.Context, token string, expiresAt int32) (PasswordResetToken, error)
}
type Queries ¶
type Queries struct {
// contains filtered or unexported fields
}
func (*Queries) AddChannelMember ¶ added in v0.3.0
func (q *Queries) AddChannelMember(ctx context.Context, arg AddChannelMemberParams) (AddChannelMemberRow, error)
func (*Queries) AddChannelOwner ¶ added in v0.4.0
Adds the manager as owner (access 500) for instant registration
func (*Queries) AddUserRole ¶ added in v0.0.6
func (*Queries) AddUsersToRole ¶ added in v0.0.6
func (*Queries) CheckChannelExists ¶ added in v0.3.0
func (*Queries) CheckChannelExistsAndRegistered ¶ added in v0.4.1
func (q *Queries) CheckChannelExistsAndRegistered(ctx context.Context, id int32) (CheckChannelExistsAndRegisteredRow, error)
Validate channel exists and is registered (managerchange.php:197)
func (*Queries) CheckChannelMemberExists ¶ added in v0.3.0
func (*Queries) CheckChannelNameExists ¶ added in v0.4.0
func (q *Queries) CheckChannelNameExists(ctx context.Context, lower string) (CheckChannelNameExistsRow, error)
Checks if a channel name already exists
func (*Queries) CheckChannelNoregStatus ¶ added in v0.4.0
func (q *Queries) CheckChannelNoregStatus(ctx context.Context, lower string) (CheckChannelNoregStatusRow, error)
Checks if a channel name is in NOREG
func (*Queries) CheckChannelSingleManager ¶ added in v0.4.1
Ensure channel has only one manager (managerchange.php:295)
func (*Queries) CheckEmailExists ¶ added in v0.0.4
func (*Queries) CheckExistingPendingRequests ¶ added in v0.4.1
func (q *Queries) CheckExistingPendingRequests(ctx context.Context, channelID int32) ([]CheckExistingPendingRequestsRow, error)
Manager Change SQL Queries Based on legacy PHP implementation with optimizations Check for existing pending requests (managerchange.php:206,217)
func (*Queries) CheckMultipleSupportersConcurrentSupports ¶ added in v0.4.0
func (q *Queries) CheckMultipleSupportersConcurrentSupports(ctx context.Context, column1 []string, column2 int32) ([]CheckMultipleSupportersConcurrentSupportsRow, error)
Efficiently checks concurrent supports for multiple supporters at once
func (*Queries) CheckMultipleSupportersNoregStatus ¶ added in v0.4.0
func (q *Queries) CheckMultipleSupportersNoregStatus(ctx context.Context, dollar_1 []string) ([]CheckMultipleSupportersNoregStatusRow, error)
Efficiently checks NOREG status for multiple supporters at once
func (*Queries) CheckNewManagerChannelAccess ¶ added in v0.4.1
func (q *Queries) CheckNewManagerChannelAccess(ctx context.Context, channelID int32, iD int32) (CheckNewManagerChannelAccessRow, error)
Check new manager has level 499 on channel (managerchange.php:433)
func (*Queries) CheckPendingChannelNameConflict ¶ added in v0.4.0
func (q *Queries) CheckPendingChannelNameConflict(ctx context.Context, lower string) (CheckPendingChannelNameConflictRow, error)
Checks if there's already a pending registration for this channel name
func (*Queries) CheckSupporterConcurrentSupports ¶ added in v0.4.0
func (q *Queries) CheckSupporterConcurrentSupports(ctx context.Context, userID int32) (int64, error)
Checks how many channels a supporter is currently supporting
func (*Queries) CheckSupporterNoregStatus ¶ added in v0.4.0
Checks if a supporter has NOREG status
func (*Queries) CheckUserChannelOwnership ¶ added in v0.4.1
func (q *Queries) CheckUserChannelOwnership(ctx context.Context, userID int32, iD int32) (CheckUserChannelOwnershipRow, error)
Check if user has level 500 access on channel (managerchange.php:362)
func (*Queries) CheckUserCooldownStatus ¶ added in v0.4.1
func (q *Queries) CheckUserCooldownStatus(ctx context.Context, id int32) (CheckUserCooldownStatusRow, error)
Check user form submission cooldown status
func (*Queries) CheckUserNoregStatus ¶ added in v0.4.0
NOREG table queries for checking user restrictions Checks if a user has NOREG status
func (*Queries) CheckUserOwnsOtherChannels ¶ added in v0.4.1
Check if user already owns other channels (managerchange.php:443)
func (*Queries) CheckUsernameExists ¶ added in v0.0.4
func (*Queries) CleanupExpiredManagerChangeRequests ¶ added in v0.4.1
Clean up expired unconfirmed requests (confirm_mgrchange.php:16)
func (*Queries) CleanupExpiredNoreg ¶ added in v0.4.0
Removes expired NOREG entries (matches PHP cleanup)
func (*Queries) CleanupExpiredPasswordResetTokens ¶ added in v0.3.0
func (*Queries) ConfirmManagerChangeRequest ¶ added in v0.4.1
Mark request as confirmed (confirm_mgrchange.php:25)
func (*Queries) CountChannelOwners ¶ added in v0.3.0
func (*Queries) CreateAPIKey ¶ added in v0.5.2
func (*Queries) CreateChannel ¶ added in v0.4.0
func (q *Queries) CreateChannel(ctx context.Context, arg CreateChannelParams) (CreateChannelRow, error)
Channel Registration INSERT queries Creates a new channel entry (when registration is approved)
func (*Queries) CreateChannelForInstantRegistration ¶ added in v0.4.0
func (q *Queries) CreateChannelForInstantRegistration(ctx context.Context, name string) (CreateChannelForInstantRegistrationRow, error)
Creates a new channel entry for instant registration (no supporters required)
func (*Queries) CreateChannelForRegistration ¶ added in v0.4.0
func (q *Queries) CreateChannelForRegistration(ctx context.Context, name string) (CreateChannelForRegistrationRow, error)
Creates a new channel entry for pending registration
func (*Queries) CreateChannelSupporter ¶ added in v0.4.0
Supporters table queries for channel registration Adds a supporter to a pending channel registration
func (*Queries) CreateInstantRegistration ¶ added in v0.4.0
func (q *Queries) CreateInstantRegistration(ctx context.Context, arg CreateInstantRegistrationParams) (CreateInstantRegistrationRow, error)
Creates an instant registration (when no supporters required)
func (*Queries) CreatePasswordResetToken ¶ added in v0.3.0
func (q *Queries) CreatePasswordResetToken(ctx context.Context, arg CreatePasswordResetTokenParams) (PasswordResetToken, error)
func (*Queries) CreatePendingChannel ¶ added in v0.4.0
func (q *Queries) CreatePendingChannel(ctx context.Context, arg CreatePendingChannelParams) (CreatePendingChannelRow, error)
Creates a new pending channel registration
func (*Queries) CreatePendingUser ¶
func (*Queries) CreateRole ¶ added in v0.0.6
func (*Queries) CreateUser ¶
func (*Queries) DeleteAPIKey ¶ added in v0.5.2
func (*Queries) DeleteChannelSupporters ¶ added in v0.4.0
Removes all supporters for a pending channel
func (*Queries) DeleteExpiredPasswordResetTokens ¶ added in v0.3.0
func (*Queries) DeletePendingChannel ¶ added in v0.4.0
Removes a pending channel registration
func (*Queries) DeletePendingUserByCookie ¶
func (*Queries) DeleteRole ¶ added in v0.0.6
func (*Queries) DeleteSpecificChannelSupporter ¶ added in v0.4.0
func (q *Queries) DeleteSpecificChannelSupporter(ctx context.Context, channelID int32, userID int32) error
Removes a specific supporter from a pending channel
func (*Queries) GetAPIKeyByHash ¶ added in v0.5.2
func (*Queries) GetAPIKeysExpiringSoon ¶ added in v0.5.2
func (*Queries) GetActivePasswordResetTokensByUserID ¶ added in v0.3.0
func (*Queries) GetAdminLevel ¶ added in v0.0.6
func (*Queries) GetChannelByID ¶ added in v0.3.0
func (*Queries) GetChannelByName ¶ added in v0.3.0
func (*Queries) GetChannelDetails ¶ added in v0.3.0
func (*Queries) GetChannelMembersByAccessLevel ¶ added in v0.3.0
func (*Queries) GetChannelUserAccess ¶ added in v0.3.0
func (*Queries) GetGlineByIP ¶ added in v0.0.3
func (*Queries) GetLastChannelRegistration ¶ added in v0.4.0
func (q *Queries) GetLastChannelRegistration(ctx context.Context, userID int32) (pgtype.Int4, error)
Returns the timestamp of the user's last successful channel registration
func (*Queries) GetManagerChangeRequestByToken ¶ added in v0.4.1
func (q *Queries) GetManagerChangeRequestByToken(ctx context.Context, crc pgtype.Text) (GetManagerChangeRequestByTokenRow, error)
Validate confirmation token (confirm_mgrchange.php:17)
func (*Queries) GetManagerChangeRequestStatus ¶ added in v0.4.1
func (q *Queries) GetManagerChangeRequestStatus(ctx context.Context, channelID int32) (GetManagerChangeRequestStatusRow, error)
Get status of pending manager change requests for a channel
func (*Queries) GetPasswordResetTokenByToken ¶ added in v0.3.0
func (*Queries) GetPasswordResetTokenStats ¶ added in v0.3.0
func (*Queries) GetPendingUserByCookie ¶ added in v0.1.0
func (*Queries) GetRoleByID ¶ added in v0.0.6
func (*Queries) GetRoleByName ¶ added in v0.0.6
func (*Queries) GetSupportersByUsernames ¶ added in v0.4.0
func (q *Queries) GetSupportersByUsernames(ctx context.Context, column1 []string, column2 int32) ([]GetSupportersByUsernamesRow, error)
Gets all supporter information in one query for efficient validation This replaces multiple individual supporter validation queries
func (*Queries) GetUser ¶ added in v0.0.6
func (q *Queries) GetUser(ctx context.Context, arg GetUserParams) (GetUserRow, error)
func (*Queries) GetUserBackupCodes ¶ added in v0.4.1
Gets user's backup codes and read status
func (*Queries) GetUserChannelCount ¶ added in v0.4.0
Channel Registration SELECT queries Returns the count of channels owned by a user
func (*Queries) GetUserChannelLimit ¶ added in v0.4.0
func (q *Queries) GetUserChannelLimit(ctx context.Context, arg GetUserChannelLimitParams) (int32, error)
Channel Registration related user queries Gets the channel limit for a user based on their flags
func (*Queries) GetUserChannelMemberships ¶ added in v0.3.0
func (*Queries) GetUserChannels ¶
func (*Queries) GetUserNoregDetails ¶ added in v0.4.0
func (q *Queries) GetUserNoregDetails(ctx context.Context, lower string) (GetUserNoregDetailsRow, error)
Gets detailed NOREG information for a user
func (*Queries) GetUserPendingRegistrations ¶ added in v0.4.0
func (q *Queries) GetUserPendingRegistrations(ctx context.Context, managerID pgtype.Int4) (int64, error)
Pending table queries for channel registration Returns the count of pending channel registrations for a user
func (*Queries) GetUsersByUsernames ¶ added in v0.0.6
func (*Queries) GetWhiteListByIP ¶ added in v0.0.3
func (*Queries) InsertManagerChangeRequest ¶ added in v0.4.1
func (q *Queries) InsertManagerChangeRequest(ctx context.Context, arg InsertManagerChangeRequestParams) (pgtype.Int4, error)
Create pending manager change request (managerchange.php:327-328)
func (*Queries) InvalidateUserPasswordResetTokens ¶ added in v0.3.0
func (*Queries) ListAPIKeys ¶ added in v0.5.2
func (*Queries) ListPendingUsers ¶
func (q *Queries) ListPendingUsers(ctx context.Context) ([]Pendinguser, error)
func (*Queries) ListUserRoles ¶ added in v0.0.6
func (*Queries) MarkBackupCodesAsRead ¶ added in v0.4.1
func (q *Queries) MarkBackupCodesAsRead(ctx context.Context, arg MarkBackupCodesAsReadParams) error
Marks backup codes as read after user has seen them
func (*Queries) MarkPasswordResetTokenAsUsed ¶ added in v0.3.0
func (q *Queries) MarkPasswordResetTokenAsUsed(ctx context.Context, arg MarkPasswordResetTokenAsUsedParams) error
func (*Queries) RemoveChannelMember ¶ added in v0.3.0
func (q *Queries) RemoveChannelMember(ctx context.Context, arg RemoveChannelMemberParams) (RemoveChannelMemberRow, error)
func (*Queries) RemoveUserRole ¶ added in v0.0.6
func (*Queries) RemoveUsersFromRole ¶ added in v0.0.6
func (*Queries) SearchChannels ¶ added in v0.3.0
func (q *Queries) SearchChannels(ctx context.Context, arg SearchChannelsParams) ([]SearchChannelsRow, error)
func (*Queries) SearchChannelsCount ¶ added in v0.3.0
func (*Queries) SoftDeleteChannel ¶ added in v0.4.0
Channel Registration DELETE queries Soft deletes a channel by setting registered_ts to 0
func (*Queries) UpdateAPIKeyIPRestrictions ¶ added in v0.5.2
func (q *Queries) UpdateAPIKeyIPRestrictions(ctx context.Context, arg UpdateAPIKeyIPRestrictionsParams) error
func (*Queries) UpdateAPIKeyLastUsed ¶ added in v0.5.2
func (*Queries) UpdateAPIKeyScopes ¶ added in v0.5.2
func (q *Queries) UpdateAPIKeyScopes(ctx context.Context, arg UpdateAPIKeyScopesParams) error
func (*Queries) UpdateChannelRegistrationStatus ¶ added in v0.4.0
Channel Registration UPDATE queries Updates channel registration related timestamps and status
func (*Queries) UpdateChannelSettings ¶ added in v0.3.0
func (q *Queries) UpdateChannelSettings(ctx context.Context, arg UpdateChannelSettingsParams) (UpdateChannelSettingsRow, error)
func (*Queries) UpdatePendingChannelDescription ¶ added in v0.4.0
func (q *Queries) UpdatePendingChannelDescription(ctx context.Context, channelID int32, description pgtype.Text) error
Updates the description of a pending channel registration
func (*Queries) UpdatePendingChannelStatus ¶ added in v0.4.0
func (q *Queries) UpdatePendingChannelStatus(ctx context.Context, arg UpdatePendingChannelStatusParams) (UpdatePendingChannelStatusRow, error)
Updates the status of a pending channel registration
func (*Queries) UpdateRole ¶ added in v0.0.6
func (q *Queries) UpdateRole(ctx context.Context, arg UpdateRoleParams) error
func (*Queries) UpdateUserBackupCodes ¶ added in v0.4.1
func (q *Queries) UpdateUserBackupCodes(ctx context.Context, arg UpdateUserBackupCodesParams) error
Backup codes related queries Updates user's backup codes and marks them as unread
func (*Queries) UpdateUserCooldown ¶ added in v0.4.1
Set user form submission cooldown (managerchange.php:352)
func (*Queries) UpdateUserFlags ¶ added in v0.2.0
func (q *Queries) UpdateUserFlags(ctx context.Context, arg UpdateUserFlagsParams) error
func (*Queries) UpdateUserLastSeen ¶ added in v0.4.0
Updates user's last seen timestamp (used for instant registration)
func (*Queries) UpdateUserPassword ¶ added in v0.2.0
func (q *Queries) UpdateUserPassword(ctx context.Context, arg UpdateUserPasswordParams) error
func (*Queries) UpdateUserTotpKey ¶ added in v0.2.0
func (q *Queries) UpdateUserTotpKey(ctx context.Context, arg UpdateUserTotpKeyParams) error
func (*Queries) ValidatePasswordResetToken ¶ added in v0.3.0
type RemoveChannelMemberParams ¶ added in v0.3.0
type RemoveChannelMemberRow ¶ added in v0.3.0
type SearchChannelsParams ¶ added in v0.3.0
type SearchChannelsRow ¶ added in v0.3.0
type Service ¶
type Service struct {
*Queries
}
Service is a wrapper around the database queries that embeds all Querier methods
func (*Service) WithTx ¶ added in v0.1.0
func (s *Service) WithTx(tx pgx.Tx) ServiceInterface
WithTx returns a new Service instance that wraps the provided transaction
type ServiceInterface ¶ added in v0.1.0
type ServiceInterface interface {
Querier
WithTx(tx pgx.Tx) ServiceInterface
}
ServiceInterface is an interface for the database model
type Supporter ¶
type Supporter struct {
ChannelID int32 `json:"channel_id"`
UserID int32 `json:"user_id"`
Support pgtype.Text `json:"support"`
Noticed string `json:"noticed"`
Reason pgtype.Text `json:"reason"`
JoinCount pgtype.Int4 `json:"join_count"`
LastUpdated int32 `json:"last_updated"`
Deleted pgtype.Int2 `json:"deleted"`
}
type Translation ¶
type UpdateAPIKeyIPRestrictionsParams ¶ added in v0.5.2
type UpdateAPIKeyScopesParams ¶ added in v0.5.2
type UpdateChannelSettingsParams ¶ added in v0.3.0
type UpdateChannelSettingsRow ¶ added in v0.3.0
type UpdatePendingChannelStatusParams ¶ added in v0.4.0
type UpdatePendingChannelStatusRow ¶ added in v0.4.0
type UpdateRoleParams ¶ added in v0.0.6
type UpdateUserBackupCodesParams ¶ added in v0.4.1
type UpdateUserFlagsParams ¶ added in v0.2.0
type UpdateUserPasswordParams ¶ added in v0.2.0
type UpdateUserTotpKeyParams ¶ added in v0.2.0
type User ¶
type User struct {
ID int32 `json:"id"`
Username string `json:"user_name"`
Password password.Password `json:"password"`
Email pgtype.Text `json:"email"`
Url pgtype.Text `json:"url"`
QuestionID pgtype.Int2 `json:"question_id"`
Verificationdata pgtype.Text `json:"verificationdata"`
LanguageID pgtype.Int4 `json:"language_id"`
PublicKey pgtype.Text `json:"public_key"`
PostForms int32 `json:"post_forms"`
Flags flags.User `json:"flags"`
LastUpdatedBy pgtype.Text `json:"last_updated_by"`
LastUpdated int32 `json:"last_updated"`
Deleted pgtype.Int2 `json:"deleted"`
TzSetting pgtype.Text `json:"tz_setting"`
SignupCookie pgtype.Text `json:"signup_cookie"`
SignupTs pgtype.Int4 `json:"signup_ts"`
SignupIp pgtype.Text `json:"signup_ip"`
Maxlogins pgtype.Int4 `json:"maxlogins"`
TotpKey pgtype.Text `json:"totp_key"`
// JSON containing backup codes and metadata: {backup_codes, generated_at, codes_remaining}. Backup codes are bcrypt-hashed for security.
BackupCodes []byte `json:"backup_codes"`
BackupCodesRead pgtype.Bool `json:"backup_codes_read"`
}