app

package
v5.2.0-rc4+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 10, 2018 License: AGPL-3.0, Apache-2.0 Imports: 81 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DAY_MILLISECONDS   = 24 * 60 * 60 * 1000
	MONTH_MILLISECONDS = 31 * DAY_MILLISECONDS
)
View Source
const (
	TokenLocationNotFound = iota
	TokenLocationHeader
	TokenLocationCookie
	TokenLocationQueryString
)
View Source
const (
	USER_PASSWORD           = "passwd"
	CHANNEL_TYPE            = model.CHANNEL_OPEN
	BTEST_TEAM_DISPLAY_NAME = "TestTeam"
	BTEST_TEAM_NAME         = "z-z-testdomaina"
	BTEST_TEAM_EMAIL        = "test@nowhere.com"
	BTEST_TEAM_TYPE         = model.TEAM_OPEN
	BTEST_USER_NAME         = "Mr. Testing Tester"
	BTEST_USER_EMAIL        = "success+ttester@simulator.amazonses.com"
	BTEST_USER_PASSWORD     = "passwd"
)
View Source
const (
	BRAND_FILE_PATH = "brand/"
	BRAND_FILE_NAME = "image.png"
)
View Source
const (
	CMD_EXPAND   = "expand"
	CMD_COLLAPSE = "collapse"
)
View Source
const (
	CMD_REMOVE = "remove"
	CMD_KICK   = "kick"
)
View Source
const (
	SEGMENT_KEY = "fwb7VPbFeQ7SKp3wHm1RzFUuXZudqVok"

	TRACK_CONFIG_SERVICE        = "config_service"
	TRACK_CONFIG_TEAM           = "config_team"
	TRACK_CONFIG_CLIENT_REQ     = "config_client_requirements"
	TRACK_CONFIG_SQL            = "config_sql"
	TRACK_CONFIG_LOG            = "config_log"
	TRACK_CONFIG_FILE           = "config_file"
	TRACK_CONFIG_RATE           = "config_rate"
	TRACK_CONFIG_EXTENSION      = "config_extension"
	TRACK_CONFIG_EMAIL          = "config_email"
	TRACK_CONFIG_PRIVACY        = "config_privacy"
	TRACK_CONFIG_THEME          = "config_theme"
	TRACK_CONFIG_OAUTH          = "config_oauth"
	TRACK_CONFIG_LDAP           = "config_ldap"
	TRACK_CONFIG_COMPLIANCE     = "config_compliance"
	TRACK_CONFIG_LOCALIZATION   = "config_localization"
	TRACK_CONFIG_SAML           = "config_saml"
	TRACK_CONFIG_PASSWORD       = "config_password"
	TRACK_CONFIG_CLUSTER        = "config_cluster"
	TRACK_CONFIG_METRICS        = "config_metrics"
	TRACK_CONFIG_WEBRTC         = "config_webrtc"
	TRACK_CONFIG_SUPPORT        = "config_support"
	TRACK_CONFIG_NATIVEAPP      = "config_nativeapp"
	TRACK_CONFIG_EXPERIMENTAL   = "config_experimental"
	TRACK_CONFIG_ANALYTICS      = "config_analytics"
	TRACK_CONFIG_ANNOUNCEMENT   = "config_announcement"
	TRACK_CONFIG_ELASTICSEARCH  = "config_elasticsearch"
	TRACK_CONFIG_PLUGIN         = "config_plugin"
	TRACK_CONFIG_DATA_RETENTION = "config_data_retention"
	TRACK_CONFIG_MESSAGE_EXPORT = "config_message_export"
	TRACK_CONFIG_DISPLAY        = "config_display"
	TRACK_CONFIG_TIMEZONE       = "config_timezone"

	TRACK_ACTIVITY = "activity"
	TRACK_LICENSE  = "license"
	TRACK_SERVER   = "server"
	TRACK_PLUGINS  = "plugins"
)
View Source
const (
	MaxEmojiFileSize = 1 << 20 // 1 MB
	MaxEmojiWidth    = 128
	MaxEmojiHeight   = 128
)
View Source
const (
	/*
	  EXIF Image Orientations
	  1        2       3      4         5            6           7          8

	  888888  888888      88  88      8888888888  88                  88  8888888888
	  88          88      88  88      88  88      88  88          88  88      88  88
	  8888      8888    8888  8888    88          8888888888  8888888888          88
	  88          88      88  88
	  88          88  888888  888888
	*/
	Upright            = 1
	UprightMirrored    = 2
	UpsideDown         = 3
	UpsideDownMirrored = 4
	RotatedCWMirrored  = 5
	RotatedCCW         = 6
	RotatedCCWMirrored = 7
	RotatedCW          = 8

	MaxImageSize                 = 6048 * 4032 // 24 megapixels, roughly 36MB as a raw image
	IMAGE_THUMBNAIL_PIXEL_WIDTH  = 120
	IMAGE_THUMBNAIL_PIXEL_HEIGHT = 100
	IMAGE_PREVIEW_PIXEL_WIDTH    = 1920
)
View Source
const (
	THREAD_ANY  = "any"
	THREAD_ROOT = "root"
)
View Source
const (
	OAUTH_COOKIE_MAX_AGE_SECONDS = 30 * 60 // 30 minutes
	COOKIE_OAUTH                 = "MMOAUTH"
)
View Source
const (
	SECURITY_URL           = "https://securityupdatecheck.mattermost.com"
	SECURITY_UPDATE_PERIOD = 86400000 // 24 hours in milliseconds.

	PROP_SECURITY_ID                = "id"
	PROP_SECURITY_BUILD             = "b"
	PROP_SECURITY_ENTERPRISE_READY  = "be"
	PROP_SECURITY_DATABASE          = "db"
	PROP_SECURITY_OS                = "os"
	PROP_SECURITY_USER_COUNT        = "uc"
	PROP_SECURITY_TEAM_COUNT        = "tc"
	PROP_SECURITY_ACTIVE_USER_COUNT = "auc"
	PROP_SECURITY_UNIT_TESTS        = "ut"
)
View Source
const (
	TOKEN_TYPE_PASSWORD_RECOVERY  = "password_recovery"
	TOKEN_TYPE_VERIFY_EMAIL       = "verify_email"
	TOKEN_TYPE_TEAM_INVITATION    = "team_invitation"
	PASSWORD_RECOVER_EXPIRY_TIME  = 1000 * 60 * 60      // 1 hour
	TEAM_INVITATION_EXPIRY_TIME   = 1000 * 60 * 60 * 48 // 48 hours
	IMAGE_PROFILE_PIXEL_DIMENSION = 128
)
View Source
const (
	SEND_QUEUE_SIZE           = 256
	SEND_SLOW_WARN            = (SEND_QUEUE_SIZE * 50) / 100
	SEND_DEADLOCK_WARN        = (SEND_QUEUE_SIZE * 95) / 100
	WRITE_WAIT                = 30 * time.Second
	PONG_WAIT                 = 100 * time.Second
	PING_PERIOD               = (PONG_WAIT * 6) / 10
	AUTH_TIMEOUT              = 5 * time.Second
	WEBCONN_MEMBER_CACHE_TIME = 1000 * 60 * 30 // 30 minutes
)
View Source
const (
	BROADCAST_QUEUE_SIZE = 4096
	DEADLOCK_TICKER      = 15 * time.Second                  // check every 15 seconds
	DEADLOCK_WARN        = (BROADCAST_QUEUE_SIZE * 99) / 100 // number of buffered messages before printing stack trace
)
View Source
const (
	TRIGGERWORDS_EXACT_MATCH = 0
	TRIGGERWORDS_STARTS_WITH = 1
)
View Source
const ADVANCED_PERMISSIONS_MIGRATION_KEY = "AdvancedPermissionsMigrationComplete"
View Source
const (
	CMD_AWAY = "away"
)
View Source
const (
	CMD_CODE = "code"
)
View Source
const (
	CMD_DND = "dnd"
)
View Source
const (
	CMD_ECHO = "echo"
)
View Source
const (
	CMD_GROUPMSG = "groupmsg"
)
View Source
const (
	CMD_HEADER = "header"
)
View Source
const (
	CMD_HELP = "help"
)
View Source
const (
	CMD_INVITE = "invite"
)
View Source
const (
	CMD_INVITE_PEOPLE = "invite_people"
)
View Source
const (
	CMD_JOIN = "join"
)
View Source
const (
	CMD_LEAVE = "leave"
)
View Source
const (
	CMD_LOGOUT = "logout"
)
View Source
const (
	CMD_ME = "me"
)
View Source
const (
	CMD_MSG = "msg"
)
View Source
const (
	CMD_MUTE = "mute"
)
View Source
const (
	CMD_OFFLINE = "offline"
)
View Source
const (
	CMD_ONLINE = "online"
)
View Source
const (
	CMD_OPEN = "open"
)
View Source
const (
	CMD_PURPOSE = "purpose"
)
View Source
const (
	CMD_RENAME = "rename"
)
View Source
const (
	CMD_SEARCH = "search"
)
View Source
const (
	CMD_SETTINGS = "settings"
)
View Source
const (
	CMD_SHORTCUTS = "shortcuts"
)
View Source
const (
	CMD_SHRUG = "shrug"
)
View Source
const (
	CMD_TEST = "test"
)
View Source
const (
	DISCOVERY_SERVICE_WRITE_PING = 60 * time.Second
)
View Source
const (
	EMAIL_BATCHING_TASK_NAME = "Email Batching"
)
View Source
const EMOJIS_PERMISSIONS_MIGRATION_KEY = "EmojisPermissionsMigrationComplete"
View Source
const TIME_TO_WAIT_FOR_CONNECTIONS_TO_CLOSE_ON_SERVER_SHUTDOWN = time.Second

Variables

View Source
var (
	TEAM_NAME_LEN            = utils.Range{Begin: 10, End: 20}
	TEAM_DOMAIN_NAME_LEN     = utils.Range{Begin: 10, End: 20}
	TEAM_EMAIL_LEN           = utils.Range{Begin: 15, End: 30}
	USER_NAME_LEN            = utils.Range{Begin: 5, End: 20}
	USER_EMAIL_LEN           = utils.Range{Begin: 15, End: 30}
	CHANNEL_DISPLAY_NAME_LEN = utils.Range{Begin: 10, End: 20}
	CHANNEL_NAME_LEN         = utils.Range{Begin: 5, End: 20}
	TEST_IMAGE_FILENAMES     = []string{"test.png", "testjpg.jpg", "testgif.gif"}
)

Functions

func CheckUserDomain

func CheckUserDomain(user *model.User, domains string) bool

Check that a user's email domain matches a list of space-delimited domains as a string.

func ClearStatusCache

func ClearStatusCache()

func CreateProfileImage

func CreateProfileImage(username string, userId string, initialFont string) ([]byte, *model.AppError)

func DisableConfigWatch

func DisableConfigWatch(a *App)

func DoesNotifyPropsAllowPushNotification

func DoesNotifyPropsAllowPushNotification(user *model.User, channelNotifyProps model.StringMap, post *model.Post, wasMentioned bool) bool

func DoesStatusAllowPushNotification

func DoesStatusAllowPushNotification(userNotifyProps model.StringMap, status *model.Status, channelId string) bool

func GeneratePublicLinkHash

func GeneratePublicLinkHash(fileId, salt string) string

func GenerateTurnPassword

func GenerateTurnPassword(username string, secret string) string

func GetMentionsEnabledFields

func GetMentionsEnabledFields(post *model.Post) model.StringArray

Given a post returns the values of the fields in which mentions are possible. post.message, preText and text in the attachment are enabled.

func GetProtocol

func GetProtocol(r *http.Request) string

func GetStatusFromCache

func GetStatusFromCache(userId string) *model.Status

func RegisterAccountMigrationInterface

func RegisterAccountMigrationInterface(f func(*App) einterfaces.AccountMigrationInterface)

func RegisterClusterInterface

func RegisterClusterInterface(f func(*App) einterfaces.ClusterInterface)

func RegisterCommandProvider

func RegisterCommandProvider(newProvider CommandProvider)

func RegisterComplianceInterface

func RegisterComplianceInterface(f func(*App) einterfaces.ComplianceInterface)

func RegisterDataRetentionInterface

func RegisterDataRetentionInterface(f func(*App) einterfaces.DataRetentionInterface)

func RegisterElasticsearchInterface

func RegisterElasticsearchInterface(f func(*App) einterfaces.ElasticsearchInterface)

func RegisterJobsDataRetentionJobInterface

func RegisterJobsDataRetentionJobInterface(f func(*App) ejobs.DataRetentionJobInterface)

func RegisterJobsElasticsearchAggregatorInterface

func RegisterJobsElasticsearchAggregatorInterface(f func(*App) ejobs.ElasticsearchAggregatorInterface)

func RegisterJobsElasticsearchIndexerInterface

func RegisterJobsElasticsearchIndexerInterface(f func(*App) ejobs.ElasticsearchIndexerInterface)

func RegisterJobsLdapSyncInterface

func RegisterJobsLdapSyncInterface(f func(*App) ejobs.LdapSyncInterface)

func RegisterJobsMessageExportJobInterface

func RegisterJobsMessageExportJobInterface(f func(*App) ejobs.MessageExportJobInterface)

func RegisterJobsMigrationsJobInterface

func RegisterJobsMigrationsJobInterface(f func(*App) tjobs.MigrationsJobInterface)

func RegisterLdapInterface

func RegisterLdapInterface(f func(*App) einterfaces.LdapInterface)

func RegisterMessageExportInterface

func RegisterMessageExportInterface(f func(*App) einterfaces.MessageExportInterface)

func RegisterMetricsInterface

func RegisterMetricsInterface(f func(*App) einterfaces.MetricsInterface)

func RegisterMfaInterface

func RegisterMfaInterface(f func(*App) einterfaces.MfaInterface)

func RegisterSamlInterface

func RegisterSamlInterface(f func(*App) einterfaces.SamlInterface)

func RemoveRoles

func RemoveRoles(rolesToRemove []string, roles string) string

func RemoveSamlFile

func RemoveSamlFile(filename string) *model.AppError

func ReturnWebSocketError

func ReturnWebSocketError(conn *WebConn, r *model.WebSocketRequest, err *model.AppError)

func ShouldSendPushNotification

func ShouldSendPushNotification(user *model.User, channelNotifyProps model.StringMap, wasMentioned bool, status *model.Status, post *model.Post) bool

func SlackConvertChannelMentions

func SlackConvertChannelMentions(channels []SlackChannel, posts map[string][]SlackPost) map[string][]SlackPost

func SlackConvertChannelName

func SlackConvertChannelName(channelName string, channelId string) string

func SlackConvertPostsMarkup

func SlackConvertPostsMarkup(posts map[string][]SlackPost) map[string][]SlackPost

func SlackConvertTimeStamp

func SlackConvertTimeStamp(ts string) int64

func SlackConvertUserMentions

func SlackConvertUserMentions(users []SlackUser, posts map[string][]SlackPost) map[string][]SlackPost

func SlackSanitiseChannelProperties

func SlackSanitiseChannelProperties(channel model.Channel) model.Channel

func SplitWebhookPost

func SplitWebhookPost(post *model.Post, maxPostSize int) ([]*model.Post, *model.AppError)

func StopTestStore

func StopTestStore()

func UseTestStore

func UseTestStore(container *storetest.RunningContainer, settings *model.SqlSettings)

UseTestStore sets the container and corresponding settings to use for tests. Once the tests are complete (e.g. at the end of your TestMain implementation), you should call StopTestStore.

func WriteSamlFile

func WriteSamlFile(fileData *multipart.FileHeader) *model.AppError

Types

type App

type App struct {
	Srv *Server

	Log *mlog.Logger

	Plugins                *plugin.Environment
	PluginConfigListenerId string

	EmailBatching    *EmailBatchingJob
	EmailRateLimiter *throttled.GCRARateLimiter

	Hubs                        []*Hub
	HubsStopCheckingForDeadlock chan bool

	Jobs *jobs.JobServer

	AccountMigration einterfaces.AccountMigrationInterface
	Cluster          einterfaces.ClusterInterface
	Compliance       einterfaces.ComplianceInterface
	DataRetention    einterfaces.DataRetentionInterface
	Elasticsearch    einterfaces.ElasticsearchInterface
	Ldap             einterfaces.LdapInterface
	MessageExport    einterfaces.MessageExportInterface
	Metrics          einterfaces.MetricsInterface
	Mfa              einterfaces.MfaInterface
	Saml             einterfaces.SamlInterface
	// contains filtered or unexported fields
}

func New

func New(options ...Option) (outApp *App, outErr error)

New creates a new App. You must call Shutdown when you're done with it. XXX: For now, only one at a time is allowed as some resources are still shared.

func (*App) ActivateMfa

func (a *App) ActivateMfa(userId, token string) *model.AppError

func (*App) AddChannelMember

func (a *App) AddChannelMember(userId string, channel *model.Channel, userRequestorId string, postRootId string) (*model.ChannelMember, *model.AppError)

func (*App) AddClusterLeaderChangedListener

func (a *App) AddClusterLeaderChangedListener(listener func()) string

Registers a given function to be called when the cluster leader may have changed. Returns a unique ID for the listener which can later be used to remove it. If clustering is not enabled in this build, the callback will never be called.

func (*App) AddConfigListener

func (a *App) AddConfigListener(listener func(*model.Config, *model.Config)) string

Registers a function with a given to be called when the config is reloaded and may have changed. The function will be called with two arguments: the old config and the new config. AddConfigListener returns a unique ID for the listener that can later be used to remove it.

func (*App) AddDirectChannels

func (a *App) AddDirectChannels(teamId string, user *model.User) *model.AppError

func (*App) AddLicenseListener

func (a *App) AddLicenseListener(listener func()) string

func (*App) AddNotificationEmailToBatch

func (a *App) AddNotificationEmailToBatch(user *model.User, post *model.Post, team *model.Team) *model.AppError

func (*App) AddSamlIdpCertificate

func (a *App) AddSamlIdpCertificate(fileData *multipart.FileHeader) *model.AppError

func (*App) AddSamlPrivateCertificate

func (a *App) AddSamlPrivateCertificate(fileData *multipart.FileHeader) *model.AppError

func (*App) AddSamlPublicCertificate

func (a *App) AddSamlPublicCertificate(fileData *multipart.FileHeader) *model.AppError

func (*App) AddSessionToCache

func (a *App) AddSessionToCache(session *model.Session)

func (*App) AddStatusCache

func (a *App) AddStatusCache(status *model.Status)

func (*App) AddStatusCacheSkipClusterSend

func (a *App) AddStatusCacheSkipClusterSend(status *model.Status)

func (*App) AddTeamMember

func (a *App) AddTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError)

func (*App) AddTeamMemberByInviteId

func (a *App) AddTeamMemberByInviteId(inviteId, userId string) (*model.TeamMember, *model.AppError)

func (*App) AddTeamMemberByToken

func (a *App) AddTeamMemberByToken(userId, tokenId string) (*model.TeamMember, *model.AppError)

func (*App) AddTeamMembers

func (a *App) AddTeamMembers(teamId string, userIds []string, userRequestorId string) ([]*model.TeamMember, *model.AppError)

func (*App) AddUserToChannel

func (a *App) AddUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelMember, *model.AppError)

func (*App) AddUserToTeam

func (a *App) AddUserToTeam(teamId string, userId string, userRequestorId string) (*model.Team, *model.AppError)

func (*App) AddUserToTeamByInviteId

func (a *App) AddUserToTeamByInviteId(inviteId string, userId string) (*model.Team, *model.AppError)

func (*App) AddUserToTeamByTeamId

func (a *App) AddUserToTeamByTeamId(teamId string, user *model.User) *model.AppError

func (*App) AddUserToTeamByToken

func (a *App) AddUserToTeamByToken(userId string, tokenId string) (*model.Team, *model.AppError)

func (*App) AllowOAuthAppAccessToUser

func (a *App) AllowOAuthAppAccessToUser(userId string, authRequest *model.AuthorizeRequest) (string, *model.AppError)

func (*App) AsymmetricSigningKey

func (a *App) AsymmetricSigningKey() *ecdsa.PrivateKey

AsymmetricSigningKey will return a private key that can be used for asymmetric signing.

func (*App) AttachDeviceId

func (a *App) AttachDeviceId(sessionId string, deviceId string, expiresAt int64) *model.AppError

func (*App) AuthenticateUserForLogin

func (a *App) AuthenticateUserForLogin(id, loginId, password, mfaToken string, ldapOnly bool) (user *model.User, err *model.AppError)

func (*App) AuthorizeOAuthUser

func (a *App) AuthorizeOAuthUser(w http.ResponseWriter, r *http.Request, service, code, state, redirectUri string) (io.ReadCloser, string, map[string]string, *model.AppError)

func (*App) AutocompleteChannels

func (a *App) AutocompleteChannels(teamId string, term string) (*model.ChannelList, *model.AppError)

func (*App) AutocompleteUsersInChannel

func (a *App) AutocompleteUsersInChannel(teamId string, channelId string, term string, searchOptions map[string]bool, asAdmin bool) (*model.UserAutocompleteInChannel, *model.AppError)

func (*App) AutocompleteUsersInTeam

func (a *App) AutocompleteUsersInTeam(teamId string, term string, searchOptions map[string]bool, asAdmin bool) (*model.UserAutocompleteInTeam, *model.AppError)

func (*App) BroadcastStatus

func (a *App) BroadcastStatus(status *model.Status)

func (*App) BulkImport

func (a *App) BulkImport(fileReader io.Reader, dryRun bool, workers int) (*model.AppError, int)

func (*App) CancelJob

func (a *App) CancelJob(jobId string) *model.AppError

func (*App) CheckForClienSideCert

func (a *App) CheckForClienSideCert(r *http.Request) (string, string, string)

func (*App) CheckPasswordAndAllCriteria

func (a *App) CheckPasswordAndAllCriteria(user *model.User, password string, mfaToken string) *model.AppError

func (*App) CheckRolesExist

func (a *App) CheckRolesExist(roleNames []string) *model.AppError

func (*App) CheckUserAllAuthenticationCriteria

func (a *App) CheckUserAllAuthenticationCriteria(user *model.User, mfaToken string) *model.AppError

func (*App) CheckUserMfa

func (a *App) CheckUserMfa(user *model.User, token string) *model.AppError

func (*App) CheckUserPostflightAuthenticationCriteria

func (a *App) CheckUserPostflightAuthenticationCriteria(user *model.User) *model.AppError

func (*App) CheckUserPreflightAuthenticationCriteria

func (a *App) CheckUserPreflightAuthenticationCriteria(user *model.User, mfaToken string) *model.AppError

func (*App) ClearPushNotification

func (a *App) ClearPushNotification(userId string, channelId string)

func (*App) ClearSessionCacheForUser

func (a *App) ClearSessionCacheForUser(userId string)

func (*App) ClearSessionCacheForUserSkipClusterSend

func (a *App) ClearSessionCacheForUserSkipClusterSend(userId string)

func (*App) ClientConfig

func (a *App) ClientConfig() map[string]string

func (*App) ClientConfigHash

func (a *App) ClientConfigHash() string

func (*App) ClientConfigWithComputed

func (a *App) ClientConfigWithComputed() map[string]string

ClientConfigWithComputed gets the configuration in a format suitable for sending to the client.

func (*App) ClientLicense

func (a *App) ClientLicense() map[string]string

func (*App) ClusterClearSessionCacheForUserHandler

func (a *App) ClusterClearSessionCacheForUserHandler(msg *model.ClusterMessage)

func (*App) ClusterInvalidateAllCachesHandler

func (a *App) ClusterInvalidateAllCachesHandler(msg *model.ClusterMessage)

func (*App) ClusterInvalidateCacheForChannelByNameHandler

func (a *App) ClusterInvalidateCacheForChannelByNameHandler(msg *model.ClusterMessage)

func (*App) ClusterInvalidateCacheForChannelHandler

func (a *App) ClusterInvalidateCacheForChannelHandler(msg *model.ClusterMessage)

func (*App) ClusterInvalidateCacheForChannelMembersHandler

func (a *App) ClusterInvalidateCacheForChannelMembersHandler(msg *model.ClusterMessage)

func (*App) ClusterInvalidateCacheForChannelMembersNotifyPropHandler

func (a *App) ClusterInvalidateCacheForChannelMembersNotifyPropHandler(msg *model.ClusterMessage)

func (*App) ClusterInvalidateCacheForChannelPostsHandler

func (a *App) ClusterInvalidateCacheForChannelPostsHandler(msg *model.ClusterMessage)

func (*App) ClusterInvalidateCacheForUserHandler

func (a *App) ClusterInvalidateCacheForUserHandler(msg *model.ClusterMessage)

func (*App) ClusterInvalidateCacheForWebhookHandler

func (a *App) ClusterInvalidateCacheForWebhookHandler(msg *model.ClusterMessage)

func (*App) ClusterPublishHandler

func (a *App) ClusterPublishHandler(msg *model.ClusterMessage)

func (*App) ClusterUpdateStatusHandler

func (a *App) ClusterUpdateStatusHandler(msg *model.ClusterMessage)

func (*App) CompleteOAuth

func (a *App) CompleteOAuth(service string, body io.ReadCloser, teamId string, props map[string]string) (*model.User, *model.AppError)

func (*App) CompleteSwitchWithOAuth

func (a *App) CompleteSwitchWithOAuth(service string, userData io.ReadCloser, email string) (*model.User, *model.AppError)

func (*App) Config

func (a *App) Config() *model.Config

func (*App) ConfigFileName

func (a *App) ConfigFileName() string

func (*App) CopyFileInfos

func (a *App) CopyFileInfos(userId string, fileIds []string) ([]string, *model.AppError)

func (*App) CreateBasicUser

func (a *App) CreateBasicUser(client *model.Client4) *model.AppError

Basic test team and user so you always know one

func (*App) CreateChannel

func (a *App) CreateChannel(channel *model.Channel, addMember bool) (*model.Channel, *model.AppError)

func (*App) CreateChannelWithUser

func (a *App) CreateChannelWithUser(channel *model.Channel, userId string) (*model.Channel, *model.AppError)

func (*App) CreateCommand

func (a *App) CreateCommand(cmd *model.Command) (*model.Command, *model.AppError)

func (*App) CreateCommandPost

func (a *App) CreateCommandPost(post *model.Post, teamId string, response *model.CommandResponse) (*model.Post, *model.AppError)

func (*App) CreateCommandWebhook

func (a *App) CreateCommandWebhook(commandId string, args *model.CommandArgs) (*model.CommandWebhook, *model.AppError)

func (*App) CreateDefaultChannels

func (a *App) CreateDefaultChannels(teamId string) ([]*model.Channel, *model.AppError)

func (*App) CreateDirectChannel

func (a *App) CreateDirectChannel(userId string, otherUserId string) (*model.Channel, *model.AppError)

func (*App) CreateEmoji

func (a *App) CreateEmoji(sessionUserId string, emoji *model.Emoji, multiPartImageData *multipart.Form) (*model.Emoji, *model.AppError)

func (*App) CreateGroupChannel

func (a *App) CreateGroupChannel(userIds []string, creatorId string) (*model.Channel, *model.AppError)

func (*App) CreateIncomingWebhookForChannel

func (a *App) CreateIncomingWebhookForChannel(creatorId string, channel *model.Channel, hook *model.IncomingWebhook) (*model.IncomingWebhook, *model.AppError)

func (*App) CreateJob

func (a *App) CreateJob(job *model.Job) (*model.Job, *model.AppError)

func (*App) CreateOAuthApp

func (a *App) CreateOAuthApp(app *model.OAuthApp) (*model.OAuthApp, *model.AppError)

func (*App) CreateOAuthStateToken

func (a *App) CreateOAuthStateToken(extra string) (*model.Token, *model.AppError)

func (*App) CreateOAuthUser

func (a *App) CreateOAuthUser(service string, userData io.Reader, teamId string) (*model.User, *model.AppError)

func (*App) CreateOutgoingWebhook

func (a *App) CreateOutgoingWebhook(hook *model.OutgoingWebhook) (*model.OutgoingWebhook, *model.AppError)

func (*App) CreatePasswordRecoveryToken

func (a *App) CreatePasswordRecoveryToken(userId string) (*model.Token, *model.AppError)

func (*App) CreatePost

func (a *App) CreatePost(post *model.Post, channel *model.Channel, triggerWebhooks bool) (*model.Post, *model.AppError)

func (*App) CreatePostAsUser

func (a *App) CreatePostAsUser(post *model.Post) (*model.Post, *model.AppError)

func (*App) CreatePostMissingChannel

func (a *App) CreatePostMissingChannel(post *model.Post, triggerWebhooks bool) (*model.Post, *model.AppError)

func (*App) CreateRole

func (a *App) CreateRole(role *model.Role) (*model.Role, *model.AppError)

func (*App) CreateScheme

func (a *App) CreateScheme(scheme *model.Scheme) (*model.Scheme, *model.AppError)

func (*App) CreateSession

func (a *App) CreateSession(session *model.Session) (*model.Session, *model.AppError)

func (*App) CreateTeam

func (a *App) CreateTeam(team *model.Team) (*model.Team, *model.AppError)

func (*App) CreateTeamWithUser

func (a *App) CreateTeamWithUser(team *model.Team, userId string) (*model.Team, *model.AppError)

func (*App) CreateUser

func (a *App) CreateUser(user *model.User) (*model.User, *model.AppError)

func (*App) CreateUserAccessToken

func (a *App) CreateUserAccessToken(token *model.UserAccessToken) (*model.UserAccessToken, *model.AppError)

func (*App) CreateUserAsAdmin

func (a *App) CreateUserAsAdmin(user *model.User) (*model.User, *model.AppError)

func (*App) CreateUserFromSignup

func (a *App) CreateUserFromSignup(user *model.User) (*model.User, *model.AppError)

func (*App) CreateUserWithInviteId

func (a *App) CreateUserWithInviteId(user *model.User, inviteId string) (*model.User, *model.AppError)

func (*App) CreateUserWithToken

func (a *App) CreateUserWithToken(user *model.User, tokenId string) (*model.User, *model.AppError)

func (*App) CreateVerifyEmailToken

func (a *App) CreateVerifyEmailToken(userId string) (*model.Token, *model.AppError)

func (*App) CreateWebhookPost

func (a *App) CreateWebhookPost(userId string, channel *model.Channel, text, overrideUsername, overrideIconUrl string, props model.StringInterface, postType string, postRootId string) (*model.Post, *model.AppError)

func (*App) DeactivateMfa

func (a *App) DeactivateMfa(userId string) *model.AppError

func (*App) DeauthorizeOAuthAppForUser

func (a *App) DeauthorizeOAuthAppForUser(userId, appId string) *model.AppError

func (*App) DeleteChannel

func (a *App) DeleteChannel(channel *model.Channel, userId string) *model.AppError

func (*App) DeleteCommand

func (a *App) DeleteCommand(commandId string) *model.AppError

func (*App) DeleteEmoji

func (a *App) DeleteEmoji(emoji *model.Emoji) *model.AppError

func (*App) DeleteFlaggedPosts

func (a *App) DeleteFlaggedPosts(postId string)

func (*App) DeleteIncomingWebhook

func (a *App) DeleteIncomingWebhook(hookId string) *model.AppError

func (*App) DeleteOAuthApp

func (a *App) DeleteOAuthApp(appId string) *model.AppError

func (*App) DeleteOutgoingWebhook

func (a *App) DeleteOutgoingWebhook(hookId string) *model.AppError

func (*App) DeletePluginKey

func (a *App) DeletePluginKey(pluginId string, key string) *model.AppError

func (*App) DeletePost

func (a *App) DeletePost(postId, deleteByID string) (*model.Post, *model.AppError)

func (*App) DeletePostFiles

func (a *App) DeletePostFiles(post *model.Post)

func (*App) DeletePreferences

func (a *App) DeletePreferences(userId string, preferences model.Preferences) *model.AppError

func (*App) DeleteReactionForPost

func (a *App) DeleteReactionForPost(reaction *model.Reaction) *model.AppError

func (*App) DeleteScheme

func (a *App) DeleteScheme(schemeId string) (*model.Scheme, *model.AppError)

func (*App) DeleteToken

func (a *App) DeleteToken(token *model.Token) *model.AppError

func (*App) Desanitize

func (a *App) Desanitize(cfg *model.Config)

func (*App) DiagnosticId

func (a *App) DiagnosticId() string

func (*App) DisableAutoResponder

func (a *App) DisableAutoResponder(userId string, asAdmin bool) *model.AppError

func (*App) DisableConfigWatch

func (a *App) DisableConfigWatch()

func (*App) DisablePlugin

func (a *App) DisablePlugin(id string) *model.AppError

DisablePlugin will set the config for an installed plugin to disabled, triggering deactivation if active.

func (*App) DisableUserAccessToken

func (a *App) DisableUserAccessToken(token *model.UserAccessToken) *model.AppError

func (*App) DoAdvancedPermissionsMigration

func (a *App) DoAdvancedPermissionsMigration()

This function migrates the default built in roles from code/config to the database.

func (*App) DoEmojisPermissionsMigration

func (a *App) DoEmojisPermissionsMigration()

func (*App) DoLogin

func (a *App) DoLogin(w http.ResponseWriter, r *http.Request, user *model.User, deviceId string) (*model.Session, *model.AppError)

func (*App) DoPostAction

func (a *App) DoPostAction(postId string, actionId string, userId string) *model.AppError

func (*App) DoSecurityUpdateCheck

func (a *App) DoSecurityUpdateCheck()

func (*App) DoUploadFile

func (a *App) DoUploadFile(now time.Time, rawTeamId string, rawChannelId string, rawUserId string, rawFilename string, data []byte) (*model.FileInfo, *model.AppError)

func (*App) DoUploadFileExpectModification

func (a *App) DoUploadFileExpectModification(now time.Time, rawTeamId string, rawChannelId string, rawUserId string, rawFilename string, data []byte) (*model.FileInfo, []byte, *model.AppError)

func (*App) EnableConfigWatch

func (a *App) EnableConfigWatch()

func (*App) EnablePlugin

func (a *App) EnablePlugin(id string) *model.AppError

EnablePlugin will set the config for an installed plugin to enabled, triggering asynchronous activation if inactive anywhere in the cluster.

func (*App) EnableUserAccessToken

func (a *App) EnableUserAccessToken(token *model.UserAccessToken) *model.AppError

func (*App) EnsureDiagnosticId

func (a *App) EnsureDiagnosticId()

func (*App) EnvironmentConfig

func (a *App) EnvironmentConfig() map[string]interface{}

func (*App) ExecuteCommand

func (a *App) ExecuteCommand(args *model.CommandArgs) (*model.CommandResponse, *model.AppError)

func (*App) ExecutePluginCommand

func (a *App) ExecutePluginCommand(args *model.CommandArgs) (*model.Command, *model.CommandResponse, *model.AppError)

func (*App) ExportPermissions

func (a *App) ExportPermissions(w io.Writer) error

func (*App) FileBackend

func (a *App) FileBackend() (utils.FileBackend, *model.AppError)

func (*App) FileExists

func (a *App) FileExists(path string) (bool, *model.AppError)

func (*App) FileReader

func (a *App) FileReader(path string) (io.ReadCloser, *model.AppError)

Caller must close the first return value

func (*App) FillInChannelProps

func (a *App) FillInChannelProps(channel *model.Channel) *model.AppError

func (*App) FillInChannelsProps

func (a *App) FillInChannelsProps(channelList *model.ChannelList) *model.AppError

func (*App) FillInPostProps

func (a *App) FillInPostProps(post *model.Post, channel *model.Channel) *model.AppError

FillInPostProps should be invoked before saving posts to fill in properties such as channel_mentions.

If channel is nil, FillInPostProps will look up the channel corresponding to the post.

func (*App) FindTeamByName

func (a *App) FindTeamByName(name string) bool

func (*App) FindTeamIdForFilename

func (a *App) FindTeamIdForFilename(post *model.Post, filename string) string

func (*App) GenerateMfaSecret

func (a *App) GenerateMfaSecret(userId string) (*model.MfaSecret, *model.AppError)
func (a *App) GeneratePublicLink(siteURL string, info *model.FileInfo) string

func (*App) GetActivePluginManifests

func (a *App) GetActivePluginManifests() ([]*model.Manifest, *model.AppError)

func (*App) GetAllOpenTeams

func (a *App) GetAllOpenTeams() ([]*model.Team, *model.AppError)

func (*App) GetAllOpenTeamsPage

func (a *App) GetAllOpenTeamsPage(offset int, limit int) ([]*model.Team, *model.AppError)

func (*App) GetAllStatuses

func (a *App) GetAllStatuses() map[string]*model.Status

func (*App) GetAllTeams

func (a *App) GetAllTeams() ([]*model.Team, *model.AppError)

func (*App) GetAllTeamsPage

func (a *App) GetAllTeamsPage(offset int, limit int) ([]*model.Team, *model.AppError)

func (*App) GetAnalytics

func (a *App) GetAnalytics(name string, teamId string) (model.AnalyticsRows, *model.AppError)

func (*App) GetAudits

func (a *App) GetAudits(userId string, limit int) (model.Audits, *model.AppError)

func (*App) GetAuditsPage

func (a *App) GetAuditsPage(userId string, page int, perPage int) (model.Audits, *model.AppError)

func (*App) GetAuthorizationCode

func (a *App) GetAuthorizationCode(w http.ResponseWriter, r *http.Request, service string, props map[string]string, loginHint string) (string, *model.AppError)

func (*App) GetAuthorizedAppsForUser

func (a *App) GetAuthorizedAppsForUser(userId string, page, perPage int) ([]*model.OAuthApp, *model.AppError)

func (*App) GetBrandImage

func (a *App) GetBrandImage() ([]byte, *model.AppError)

func (*App) GetChannel

func (a *App) GetChannel(channelId string) (*model.Channel, *model.AppError)

func (*App) GetChannelByName

func (a *App) GetChannelByName(channelName, teamId string, includeDeleted bool) (*model.Channel, *model.AppError)

func (*App) GetChannelByNameForTeamName

func (a *App) GetChannelByNameForTeamName(channelName, teamName string, includeDeleted bool) (*model.Channel, *model.AppError)

func (*App) GetChannelCounts

func (a *App) GetChannelCounts(teamId string, userId string) (*model.ChannelCounts, *model.AppError)

func (*App) GetChannelMember

func (a *App) GetChannelMember(channelId string, userId string) (*model.ChannelMember, *model.AppError)

func (*App) GetChannelMemberCount

func (a *App) GetChannelMemberCount(channelId string) (int64, *model.AppError)

func (*App) GetChannelMembersByIds

func (a *App) GetChannelMembersByIds(channelId string, userIds []string) (*model.ChannelMembers, *model.AppError)

func (*App) GetChannelMembersForUser

func (a *App) GetChannelMembersForUser(teamId string, userId string) (*model.ChannelMembers, *model.AppError)

func (*App) GetChannelMembersPage

func (a *App) GetChannelMembersPage(channelId string, page, perPage int) (*model.ChannelMembers, *model.AppError)

func (*App) GetChannelUnread

func (a *App) GetChannelUnread(channelId, userId string) (*model.ChannelUnread, *model.AppError)

func (*App) GetChannelsByNames

func (a *App) GetChannelsByNames(channelNames []string, teamId string) ([]*model.Channel, *model.AppError)

func (*App) GetChannelsForScheme

func (a *App) GetChannelsForScheme(scheme *model.Scheme, offset int, limit int) (model.ChannelList, *model.AppError)

func (*App) GetChannelsForSchemePage

func (a *App) GetChannelsForSchemePage(scheme *model.Scheme, page int, perPage int) (model.ChannelList, *model.AppError)

func (*App) GetChannelsForUser

func (a *App) GetChannelsForUser(teamId string, userId string, includeDeleted bool) (*model.ChannelList, *model.AppError)

func (*App) GetChannelsUserNotIn

func (a *App) GetChannelsUserNotIn(teamId string, userId string, offset int, limit int) (*model.ChannelList, *model.AppError)

func (*App) GetClientLicenseEtag

func (a *App) GetClientLicenseEtag(useSanitized bool) string

func (*App) GetClusterId

func (a *App) GetClusterId() string

func (*App) GetClusterPluginStatuses

func (a *App) GetClusterPluginStatuses() (model.PluginStatuses, *model.AppError)

GetClusterPluginStatuses returns the status for plugins installed anywhere in the cluster.

func (*App) GetClusterStatus

func (a *App) GetClusterStatus() []*model.ClusterInfo

func (*App) GetCommand

func (a *App) GetCommand(commandId string) (*model.Command, *model.AppError)

func (*App) GetComplianceFile

func (a *App) GetComplianceFile(job *model.Compliance) ([]byte, *model.AppError)

func (*App) GetComplianceReport

func (a *App) GetComplianceReport(reportId string) (*model.Compliance, *model.AppError)

func (*App) GetComplianceReports

func (a *App) GetComplianceReports(page, perPage int) (model.Compliances, *model.AppError)

func (*App) GetConfig

func (a *App) GetConfig() *model.Config

func (*App) GetCookieDomain

func (a *App) GetCookieDomain() string

func (*App) GetDataRetentionPolicy

func (a *App) GetDataRetentionPolicy() (*model.DataRetentionPolicy, *model.AppError)

func (*App) GetDeletedChannels

func (a *App) GetDeletedChannels(teamId string, offset int, limit int) (*model.ChannelList, *model.AppError)

func (*App) GetDirectChannel

func (a *App) GetDirectChannel(userId1, userId2 string) (*model.Channel, *model.AppError)

func (*App) GetEmoji

func (a *App) GetEmoji(emojiId string) (*model.Emoji, *model.AppError)

func (*App) GetEmojiByName

func (a *App) GetEmojiByName(emojiName string) (*model.Emoji, *model.AppError)

func (*App) GetEmojiImage

func (a *App) GetEmojiImage(emojiId string) (imageByte []byte, imageType string, err *model.AppError)

func (*App) GetEmojiList

func (a *App) GetEmojiList(page, perPage int, sort string) ([]*model.Emoji, *model.AppError)

func (*App) GetEnvironmentConfig

func (a *App) GetEnvironmentConfig() map[string]interface{}

func (*App) GetFileInfo

func (a *App) GetFileInfo(fileId string) (*model.FileInfo, *model.AppError)

func (*App) GetFileInfosForPost

func (a *App) GetFileInfosForPost(postId string, readFromMaster bool) ([]*model.FileInfo, *model.AppError)

func (*App) GetFlaggedPosts

func (a *App) GetFlaggedPosts(userId string, offset int, limit int) (*model.PostList, *model.AppError)

func (*App) GetFlaggedPostsForChannel

func (a *App) GetFlaggedPostsForChannel(userId, channelId string, offset int, limit int) (*model.PostList, *model.AppError)

func (*App) GetFlaggedPostsForTeam

func (a *App) GetFlaggedPostsForTeam(userId, teamId string, offset int, limit int) (*model.PostList, *model.AppError)

func (*App) GetGroupChannel

func (a *App) GetGroupChannel(userIds []string) (*model.Channel, *model.AppError)

func (*App) GetHubForUserId

func (a *App) GetHubForUserId(userId string) *Hub

func (*App) GetIncomingWebhook

func (a *App) GetIncomingWebhook(hookId string) (*model.IncomingWebhook, *model.AppError)

func (*App) GetIncomingWebhooksForTeamPage

func (a *App) GetIncomingWebhooksForTeamPage(teamId string, page, perPage int) ([]*model.IncomingWebhook, *model.AppError)

func (*App) GetIncomingWebhooksPage

func (a *App) GetIncomingWebhooksPage(page, perPage int) ([]*model.IncomingWebhook, *model.AppError)

func (*App) GetInfoForFilename

func (a *App) GetInfoForFilename(post *model.Post, teamId string, filename string) *model.FileInfo

func (*App) GetJob

func (a *App) GetJob(id string) (*model.Job, *model.AppError)

func (*App) GetJobs

func (a *App) GetJobs(offset int, limit int) ([]*model.Job, *model.AppError)

func (*App) GetJobsByType

func (a *App) GetJobsByType(jobType string, offset int, limit int) ([]*model.Job, *model.AppError)

func (*App) GetJobsByTypePage

func (a *App) GetJobsByTypePage(jobType string, page int, perPage int) ([]*model.Job, *model.AppError)

func (*App) GetJobsPage

func (a *App) GetJobsPage(page int, perPage int) ([]*model.Job, *model.AppError)

func (*App) GetLogs

func (a *App) GetLogs(page, perPage int) ([]string, *model.AppError)

func (*App) GetLogsSkipSend

func (a *App) GetLogsSkipSend(page, perPage int) ([]string, *model.AppError)

func (*App) GetMentionKeywordsInChannel

func (a *App) GetMentionKeywordsInChannel(profiles map[string]*model.User, lookForSpecialMentions bool) map[string][]string

Given a map of user IDs to profiles, returns a list of mention keywords for all users in the channel.

func (*App) GetMessageForNotification

func (a *App) GetMessageForNotification(post *model.Post, translateFunc i18n.TranslateFunc) string

func (*App) GetNewUsersForTeamPage

func (a *App) GetNewUsersForTeamPage(teamId string, page, perPage int, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) GetNumberOfChannelsOnTeam

func (a *App) GetNumberOfChannelsOnTeam(teamId string) (int, *model.AppError)

func (*App) GetOAuthAccessTokenForCodeFlow

func (a *App) GetOAuthAccessTokenForCodeFlow(clientId, grantType, redirectUri, code, secret, refreshToken string) (*model.AccessResponse, *model.AppError)

func (*App) GetOAuthAccessTokenForImplicitFlow

func (a *App) GetOAuthAccessTokenForImplicitFlow(userId string, authRequest *model.AuthorizeRequest) (*model.Session, *model.AppError)

func (*App) GetOAuthApp

func (a *App) GetOAuthApp(appId string) (*model.OAuthApp, *model.AppError)

func (*App) GetOAuthApps

func (a *App) GetOAuthApps(page, perPage int) ([]*model.OAuthApp, *model.AppError)

func (*App) GetOAuthAppsByCreator

func (a *App) GetOAuthAppsByCreator(userId string, page, perPage int) ([]*model.OAuthApp, *model.AppError)

func (*App) GetOAuthCodeRedirect

func (a *App) GetOAuthCodeRedirect(userId string, authRequest *model.AuthorizeRequest) (string, *model.AppError)

func (*App) GetOAuthImplicitRedirect

func (a *App) GetOAuthImplicitRedirect(userId string, authRequest *model.AuthorizeRequest) (string, *model.AppError)

func (*App) GetOAuthLoginEndpoint

func (a *App) GetOAuthLoginEndpoint(w http.ResponseWriter, r *http.Request, service, teamId, action, redirectTo, loginHint string) (string, *model.AppError)

func (*App) GetOAuthSignupEndpoint

func (a *App) GetOAuthSignupEndpoint(w http.ResponseWriter, r *http.Request, service, teamId string) (string, *model.AppError)

func (*App) GetOAuthStateToken

func (a *App) GetOAuthStateToken(token string) (*model.Token, *model.AppError)

func (*App) GetOpenGraphMetadata

func (a *App) GetOpenGraphMetadata(requestURL string) *opengraph.OpenGraph

func (*App) GetOutgoingWebhook

func (a *App) GetOutgoingWebhook(hookId string) (*model.OutgoingWebhook, *model.AppError)

func (*App) GetOutgoingWebhooksForChannelPage

func (a *App) GetOutgoingWebhooksForChannelPage(channelId string, page, perPage int) ([]*model.OutgoingWebhook, *model.AppError)

func (*App) GetOutgoingWebhooksForTeamPage

func (a *App) GetOutgoingWebhooksForTeamPage(teamId string, page, perPage int) ([]*model.OutgoingWebhook, *model.AppError)

func (*App) GetOutgoingWebhooksPage

func (a *App) GetOutgoingWebhooksPage(page, perPage int) ([]*model.OutgoingWebhook, *model.AppError)

func (*App) GetPasswordRecoveryToken

func (a *App) GetPasswordRecoveryToken(token string) (*model.Token, *model.AppError)

func (*App) GetPermalinkPost

func (a *App) GetPermalinkPost(postId string, userId string) (*model.PostList, *model.AppError)

func (*App) GetPinnedPosts

func (a *App) GetPinnedPosts(channelId string) (*model.PostList, *model.AppError)

func (*App) GetPluginKey

func (a *App) GetPluginKey(pluginId string, key string) ([]byte, *model.AppError)

func (*App) GetPluginStatuses

func (a *App) GetPluginStatuses() (model.PluginStatuses, *model.AppError)

GetPluginStatuses returns the status for plugins installed on this server.

func (*App) GetPlugins

func (a *App) GetPlugins() (*model.PluginsResponse, *model.AppError)

func (*App) GetPostThread

func (a *App) GetPostThread(postId string) (*model.PostList, *model.AppError)

func (*App) GetPosts

func (a *App) GetPosts(channelId string, offset int, limit int) (*model.PostList, *model.AppError)

func (*App) GetPostsAfterPost

func (a *App) GetPostsAfterPost(channelId, postId string, page, perPage int) (*model.PostList, *model.AppError)

func (*App) GetPostsAroundPost

func (a *App) GetPostsAroundPost(postId, channelId string, offset, limit int, before bool) (*model.PostList, *model.AppError)

func (*App) GetPostsBeforePost

func (a *App) GetPostsBeforePost(channelId, postId string, page, perPage int) (*model.PostList, *model.AppError)

func (*App) GetPostsEtag

func (a *App) GetPostsEtag(channelId string) string

func (*App) GetPostsPage

func (a *App) GetPostsPage(channelId string, page int, perPage int) (*model.PostList, *model.AppError)

func (*App) GetPostsSince

func (a *App) GetPostsSince(channelId string, time int64) (*model.PostList, *model.AppError)

func (*App) GetPreferenceByCategoryAndNameForUser

func (a *App) GetPreferenceByCategoryAndNameForUser(userId string, category string, preferenceName string) (*model.Preference, *model.AppError)

func (*App) GetPreferenceByCategoryForUser

func (a *App) GetPreferenceByCategoryForUser(userId string, category string) (model.Preferences, *model.AppError)

func (*App) GetPreferencesForUser

func (a *App) GetPreferencesForUser(userId string) (model.Preferences, *model.AppError)

func (*App) GetProfileImage

func (a *App) GetProfileImage(user *model.User) ([]byte, bool, *model.AppError)

func (*App) GetPublicChannelsByIdsForTeam

func (a *App) GetPublicChannelsByIdsForTeam(teamId string, channelIds []string) (*model.ChannelList, *model.AppError)

func (*App) GetPublicChannelsForTeam

func (a *App) GetPublicChannelsForTeam(teamId string, offset int, limit int) (*model.ChannelList, *model.AppError)

func (*App) GetReactionsForPost

func (a *App) GetReactionsForPost(postId string) ([]*model.Reaction, *model.AppError)

func (*App) GetRecentlyActiveUsersForTeam

func (a *App) GetRecentlyActiveUsersForTeam(teamId string) (map[string]*model.User, *model.AppError)

func (*App) GetRecentlyActiveUsersForTeamPage

func (a *App) GetRecentlyActiveUsersForTeamPage(teamId string, page, perPage int, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) GetRole

func (a *App) GetRole(id string) (*model.Role, *model.AppError)

func (*App) GetRoleByName

func (a *App) GetRoleByName(name string) (*model.Role, *model.AppError)

func (*App) GetRolesByNames

func (a *App) GetRolesByNames(names []string) ([]*model.Role, *model.AppError)

func (*App) GetSamlCertificateStatus

func (a *App) GetSamlCertificateStatus() *model.SamlCertificateStatus

func (*App) GetSamlMetadata

func (a *App) GetSamlMetadata() (string, *model.AppError)

func (*App) GetSanitizedClientLicense

func (a *App) GetSanitizedClientLicense() map[string]string

func (*App) GetScheme

func (a *App) GetScheme(id string) (*model.Scheme, *model.AppError)

func (*App) GetSchemeByName

func (a *App) GetSchemeByName(name string) (*model.Scheme, *model.AppError)

func (*App) GetSchemeRolesForChannel

func (a *App) GetSchemeRolesForChannel(channelId string) (string, string, *model.AppError)

func (*App) GetSchemeRolesForTeam

func (a *App) GetSchemeRolesForTeam(teamId string) (string, string, *model.AppError)

func (*App) GetSchemes

func (a *App) GetSchemes(scope string, offset int, limit int) ([]*model.Scheme, *model.AppError)

func (*App) GetSchemesPage

func (a *App) GetSchemesPage(scope string, page int, perPage int) ([]*model.Scheme, *model.AppError)

func (*App) GetSession

func (a *App) GetSession(token string) (*model.Session, *model.AppError)

func (*App) GetSessionById

func (a *App) GetSessionById(sessionId string) (*model.Session, *model.AppError)

func (*App) GetSessions

func (a *App) GetSessions(userId string) ([]*model.Session, *model.AppError)

func (*App) GetSinglePost

func (a *App) GetSinglePost(postId string) (*model.Post, *model.AppError)

func (*App) GetSiteURL

func (a *App) GetSiteURL() string

func (*App) GetStatus

func (a *App) GetStatus(userId string) (*model.Status, *model.AppError)

func (*App) GetStatusesByIds

func (a *App) GetStatusesByIds(userIds []string) (map[string]interface{}, *model.AppError)

func (*App) GetTeam

func (a *App) GetTeam(teamId string) (*model.Team, *model.AppError)

func (*App) GetTeamByInviteId

func (a *App) GetTeamByInviteId(inviteId string) (*model.Team, *model.AppError)

func (*App) GetTeamByName

func (a *App) GetTeamByName(name string) (*model.Team, *model.AppError)

func (*App) GetTeamIcon

func (a *App) GetTeamIcon(team *model.Team) ([]byte, *model.AppError)

func (*App) GetTeamIdFromQuery

func (a *App) GetTeamIdFromQuery(query url.Values) (string, *model.AppError)

func (*App) GetTeamMember

func (a *App) GetTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError)

func (*App) GetTeamMembers

func (a *App) GetTeamMembers(teamId string, offset int, limit int) ([]*model.TeamMember, *model.AppError)

func (*App) GetTeamMembersByIds

func (a *App) GetTeamMembersByIds(teamId string, userIds []string) ([]*model.TeamMember, *model.AppError)

func (*App) GetTeamMembersForUser

func (a *App) GetTeamMembersForUser(userId string) ([]*model.TeamMember, *model.AppError)

func (*App) GetTeamStats

func (a *App) GetTeamStats(teamId string) (*model.TeamStats, *model.AppError)

func (*App) GetTeamUnread

func (a *App) GetTeamUnread(teamId, userId string) (*model.TeamUnread, *model.AppError)

func (*App) GetTeamsForScheme

func (a *App) GetTeamsForScheme(scheme *model.Scheme, offset int, limit int) ([]*model.Team, *model.AppError)

func (*App) GetTeamsForSchemePage

func (a *App) GetTeamsForSchemePage(scheme *model.Scheme, page int, perPage int) ([]*model.Team, *model.AppError)

func (*App) GetTeamsForUser

func (a *App) GetTeamsForUser(userId string) ([]*model.Team, *model.AppError)

func (*App) GetTeamsUnreadForUser

func (a *App) GetTeamsUnreadForUser(excludeTeamId string, userId string) ([]*model.TeamUnread, *model.AppError)

func (*App) GetTotalUsersStats

func (a *App) GetTotalUsersStats() (*model.UsersStats, *model.AppError)

func (*App) GetUser

func (a *App) GetUser(userId string) (*model.User, *model.AppError)

func (*App) GetUserAccessToken

func (a *App) GetUserAccessToken(tokenId string, sanitize bool) (*model.UserAccessToken, *model.AppError)

func (*App) GetUserAccessTokens

func (a *App) GetUserAccessTokens(page, perPage int) ([]*model.UserAccessToken, *model.AppError)

func (*App) GetUserAccessTokensForUser

func (a *App) GetUserAccessTokensForUser(userId string, page, perPage int) ([]*model.UserAccessToken, *model.AppError)

func (*App) GetUserByAuth

func (a *App) GetUserByAuth(authData *string, authService string) (*model.User, *model.AppError)

func (*App) GetUserByEmail

func (a *App) GetUserByEmail(email string) (*model.User, *model.AppError)

func (*App) GetUserByUsername

func (a *App) GetUserByUsername(username string) (*model.User, *model.AppError)

func (*App) GetUserForLogin

func (a *App) GetUserForLogin(id, loginId string) (*model.User, *model.AppError)

func (*App) GetUserStatusesByIds

func (a *App) GetUserStatusesByIds(userIds []string) ([]*model.Status, *model.AppError)

GetUserStatusesByIds used by apiV4

func (*App) GetUsers

func (a *App) GetUsers(offset int, limit int) ([]*model.User, *model.AppError)

func (*App) GetUsersByIds

func (a *App) GetUsersByIds(userIds []string, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) GetUsersByUsernames

func (a *App) GetUsersByUsernames(usernames []string, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) GetUsersEtag

func (a *App) GetUsersEtag() string

func (*App) GetUsersInChannel

func (a *App) GetUsersInChannel(channelId string, offset int, limit int) ([]*model.User, *model.AppError)

func (*App) GetUsersInChannelByStatus

func (a *App) GetUsersInChannelByStatus(channelId string, offset int, limit int) ([]*model.User, *model.AppError)

func (*App) GetUsersInChannelMap

func (a *App) GetUsersInChannelMap(channelId string, offset int, limit int, asAdmin bool) (map[string]*model.User, *model.AppError)

func (*App) GetUsersInChannelPage

func (a *App) GetUsersInChannelPage(channelId string, page int, perPage int, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) GetUsersInChannelPageByStatus

func (a *App) GetUsersInChannelPageByStatus(channelId string, page int, perPage int, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) GetUsersInTeam

func (a *App) GetUsersInTeam(teamId string, offset int, limit int) ([]*model.User, *model.AppError)

func (*App) GetUsersInTeamEtag

func (a *App) GetUsersInTeamEtag(teamId string) string

func (*App) GetUsersInTeamMap

func (a *App) GetUsersInTeamMap(teamId string, offset int, limit int, asAdmin bool) (map[string]*model.User, *model.AppError)

func (*App) GetUsersInTeamPage

func (a *App) GetUsersInTeamPage(teamId string, page int, perPage int, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) GetUsersMap

func (a *App) GetUsersMap(offset int, limit int, asAdmin bool) (map[string]*model.User, *model.AppError)

func (*App) GetUsersNotInChannel

func (a *App) GetUsersNotInChannel(teamId string, channelId string, offset int, limit int) ([]*model.User, *model.AppError)

func (*App) GetUsersNotInChannelMap

func (a *App) GetUsersNotInChannelMap(teamId string, channelId string, offset int, limit int, asAdmin bool) (map[string]*model.User, *model.AppError)

func (*App) GetUsersNotInChannelPage

func (a *App) GetUsersNotInChannelPage(teamId string, channelId string, page int, perPage int, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) GetUsersNotInTeam

func (a *App) GetUsersNotInTeam(teamId string, offset int, limit int) ([]*model.User, *model.AppError)

func (*App) GetUsersNotInTeamEtag

func (a *App) GetUsersNotInTeamEtag(teamId string) string

func (*App) GetUsersNotInTeamPage

func (a *App) GetUsersNotInTeamPage(teamId string, page int, perPage int, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) GetUsersPage

func (a *App) GetUsersPage(page int, perPage int, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) GetUsersWithoutTeam

func (a *App) GetUsersWithoutTeam(offset int, limit int) ([]*model.User, *model.AppError)

func (*App) GetUsersWithoutTeamPage

func (a *App) GetUsersWithoutTeamPage(page int, perPage int, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) GetVerifyEmailToken

func (a *App) GetVerifyEmailToken(token string) (*model.Token, *model.AppError)

func (*App) GetWebrtcInfoForSession

func (a *App) GetWebrtcInfoForSession(sessionId string) (*model.WebrtcInfoResponse, *model.AppError)

func (*App) GetWebrtcToken

func (a *App) GetWebrtcToken(sessionId string) (string, *model.AppError)

func (*App) Go

func (a *App) Go(f func())

Go creates a goroutine, but maintains a record of it to ensure that execution completes before the app is destroyed.

func (*App) HTMLTemplates

func (a *App) HTMLTemplates() *template.Template

func (*App) HTTPClient

func (a *App) HTTPClient(trustURLs bool) *http.Client

func (*App) Handle404

func (a *App) Handle404(w http.ResponseWriter, r *http.Request)

func (*App) HandleCommandResponse

func (a *App) HandleCommandResponse(command *model.Command, args *model.CommandArgs, response *model.CommandResponse, builtIn bool) (*model.CommandResponse, *model.AppError)

func (*App) HandleCommandWebhook

func (a *App) HandleCommandWebhook(hookId string, response *model.CommandResponse) *model.AppError

func (*App) HandleImages

func (a *App) HandleImages(previewPathList []string, thumbnailPathList []string, fileData [][]byte)

func (*App) HandleIncomingWebhook

func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookRequest) *model.AppError

func (*App) HasPermissionTo

func (a *App) HasPermissionTo(askingUserId string, permission *model.Permission) bool

func (*App) HasPermissionToChannel

func (a *App) HasPermissionToChannel(askingUserId string, channelId string, permission *model.Permission) bool

func (*App) HasPermissionToChannelByPost

func (a *App) HasPermissionToChannelByPost(askingUserId string, postId string, permission *model.Permission) bool

func (*App) HasPermissionToTeam

func (a *App) HasPermissionToTeam(askingUserId string, teamId string, permission *model.Permission) bool

func (*App) HasPermissionToUser

func (a *App) HasPermissionToUser(askingUserId string, userId string) bool

func (*App) HubRegister

func (a *App) HubRegister(webConn *WebConn)

func (*App) HubStart

func (a *App) HubStart()

func (*App) HubStop

func (a *App) HubStop()

func (*App) HubUnregister

func (a *App) HubUnregister(webConn *WebConn)

func (*App) ImageProxyAdder

func (a *App) ImageProxyAdder() func(string) string

func (*App) ImageProxyRemover

func (a *App) ImageProxyRemover() (f func(string) string)

func (*App) ImportAttachment

func (a *App) ImportAttachment(data *AttachmentImportData, post *model.Post, teamId string, dryRun bool) (*model.FileInfo, *model.AppError)

func (*App) ImportChannel

func (a *App) ImportChannel(data *ChannelImportData, dryRun bool) *model.AppError

func (*App) ImportDirectChannel

func (a *App) ImportDirectChannel(data *DirectChannelImportData, dryRun bool) *model.AppError

func (*App) ImportDirectPost

func (a *App) ImportDirectPost(data *DirectPostImportData, dryRun bool) *model.AppError

func (*App) ImportEmoji

func (a *App) ImportEmoji(data *EmojiImportData, dryRun bool) *model.AppError

func (*App) ImportLine

func (a *App) ImportLine(line LineImportData, dryRun bool) *model.AppError

func (*App) ImportPermissions

func (a *App) ImportPermissions(jsonl io.Reader) error

func (*App) ImportPost

func (a *App) ImportPost(data *PostImportData, dryRun bool) *model.AppError

func (*App) ImportReaction

func (a *App) ImportReaction(data *ReactionImportData, post *model.Post, dryRun bool) *model.AppError

func (*App) ImportReply

func (a *App) ImportReply(data *ReplyImportData, post *model.Post, teamId string, dryRun bool) *model.AppError

func (*App) ImportRole

func (a *App) ImportRole(data *RoleImportData, dryRun bool, isSchemeRole bool) *model.AppError

func (*App) ImportScheme

func (a *App) ImportScheme(data *SchemeImportData, dryRun bool) *model.AppError

func (*App) ImportTeam

func (a *App) ImportTeam(data *TeamImportData, dryRun bool) *model.AppError

func (*App) ImportUser

func (a *App) ImportUser(data *UserImportData, dryRun bool) *model.AppError

func (*App) ImportUserChannels

func (a *App) ImportUserChannels(user *model.User, team *model.Team, teamMember *model.TeamMember, data *[]UserChannelImportData) *model.AppError

func (*App) ImportUserTeams

func (a *App) ImportUserTeams(user *model.User, data *[]UserTeamImportData) *model.AppError

func (*App) InitEmailBatching

func (a *App) InitEmailBatching()

func (*App) InitPlugins

func (a *App) InitPlugins(pluginDir, webappPluginDir string)

func (*App) InstallPlugin

func (a *App) InstallPlugin(pluginFile io.Reader, replace bool) (*model.Manifest, *model.AppError)

InstallPlugin unpacks and installs a plugin but does not enable or activate it.

func (*App) InvalidateAllCaches

func (a *App) InvalidateAllCaches() *model.AppError

func (*App) InvalidateAllCachesSkipSend

func (a *App) InvalidateAllCachesSkipSend()

func (*App) InvalidateCacheForChannel

func (a *App) InvalidateCacheForChannel(channel *model.Channel)

func (*App) InvalidateCacheForChannelByNameSkipClusterSend

func (a *App) InvalidateCacheForChannelByNameSkipClusterSend(teamId, name string)

func (*App) InvalidateCacheForChannelMembers

func (a *App) InvalidateCacheForChannelMembers(channelId string)

func (*App) InvalidateCacheForChannelMembersNotifyProps

func (a *App) InvalidateCacheForChannelMembersNotifyProps(channelId string)

func (*App) InvalidateCacheForChannelMembersNotifyPropsSkipClusterSend

func (a *App) InvalidateCacheForChannelMembersNotifyPropsSkipClusterSend(channelId string)

func (*App) InvalidateCacheForChannelMembersSkipClusterSend

func (a *App) InvalidateCacheForChannelMembersSkipClusterSend(channelId string)

func (*App) InvalidateCacheForChannelPosts

func (a *App) InvalidateCacheForChannelPosts(channelId string)

func (*App) InvalidateCacheForChannelPostsSkipClusterSend

func (a *App) InvalidateCacheForChannelPostsSkipClusterSend(channelId string)

func (*App) InvalidateCacheForChannelSkipClusterSend

func (a *App) InvalidateCacheForChannelSkipClusterSend(channelId string)

func (*App) InvalidateCacheForUser

func (a *App) InvalidateCacheForUser(userId string)

func (*App) InvalidateCacheForUserSkipClusterSend

func (a *App) InvalidateCacheForUserSkipClusterSend(userId string)

func (*App) InvalidateCacheForWebhook

func (a *App) InvalidateCacheForWebhook(webhookId string)

func (*App) InvalidateCacheForWebhookSkipClusterSend

func (a *App) InvalidateCacheForWebhookSkipClusterSend(webhookId string)

func (*App) InvalidateWebConnSessionCacheForUser

func (a *App) InvalidateWebConnSessionCacheForUser(userId string)

func (*App) InviteNewUsersToTeam

func (a *App) InviteNewUsersToTeam(emailList []string, teamId, senderId string) *model.AppError

func (*App) InvokeClusterLeaderChangedListeners

func (a *App) InvokeClusterLeaderChangedListeners()

func (*App) InvokeConfigListeners

func (a *App) InvokeConfigListeners(old, current *model.Config)

func (*App) IsFirstUserAccount

func (a *App) IsFirstUserAccount() bool

func (*App) IsLeader

func (a *App) IsLeader() bool

func (*App) IsPasswordValid

func (a *App) IsPasswordValid(password string) *model.AppError

func (*App) IsPhase2MigrationCompleted

func (a *App) IsPhase2MigrationCompleted() *model.AppError

func (*App) IsUserAway

func (a *App) IsUserAway(lastActivityAt int64) bool

func (*App) IsUserSignUpAllowed

func (a *App) IsUserSignUpAllowed() *model.AppError

func (*App) IsUsernameTaken

func (a *App) IsUsernameTaken(name string) bool

Check if the username is already used by another user. Return false if the username is invalid.

func (*App) JoinChannel

func (a *App) JoinChannel(channel *model.Channel, userId string) *model.AppError

func (*App) JoinDefaultChannels

func (a *App) JoinDefaultChannels(teamId string, user *model.User, shouldBeAdmin bool, userRequestorId string) *model.AppError

func (*App) JoinUserToTeam

func (a *App) JoinUserToTeam(team *model.Team, user *model.User, userRequestorId string) *model.AppError

func (*App) LeaveChannel

func (a *App) LeaveChannel(channelId string, userId string) *model.AppError

func (*App) LeaveTeam

func (a *App) LeaveTeam(team *model.Team, user *model.User, requestorId string) *model.AppError

func (*App) License

func (a *App) License() *model.License

License returns the currently active license or nil if the application is unlicensed.

func (*App) LimitedClientConfig

func (a *App) LimitedClientConfig() map[string]string

func (*App) LimitedClientConfigWithComputed

func (a *App) LimitedClientConfigWithComputed() map[string]string

LimitedClientConfigWithComputed gets the configuration in a format suitable for sending to the client.

func (*App) ListAllCommands

func (a *App) ListAllCommands(teamId string, T goi18n.TranslateFunc) ([]*model.Command, *model.AppError)

func (*App) ListAutocompleteCommands

func (a *App) ListAutocompleteCommands(teamId string, T goi18n.TranslateFunc) ([]*model.Command, *model.AppError)

previous ListCommands now ListAutocompleteCommands

func (*App) ListTeamCommands

func (a *App) ListTeamCommands(teamId string) ([]*model.Command, *model.AppError)

func (*App) LoadConfig

func (a *App) LoadConfig(configFile string) *model.AppError

func (*App) LoadLicense

func (a *App) LoadLicense()

func (*App) LoadTimezones

func (a *App) LoadTimezones()

func (*App) LoginByOAuth

func (a *App) LoginByOAuth(service string, userData io.Reader, teamId string) (*model.User, *model.AppError)

func (*App) MaxPostSize

func (a *App) MaxPostSize() int

func (*App) MigrateFilenamesToFileInfos

func (a *App) MigrateFilenamesToFileInfos(post *model.Post) []*model.FileInfo

Creates and stores FileInfos for a post created before the FileInfos table existed.

func (*App) MoveChannel

func (a *App) MoveChannel(team *model.Team, channel *model.Channel, user *model.User) *model.AppError

This function is intended for use from the CLI. It is not robust against people joining the channel while the move is in progress, and therefore should not be used from the API without first fixing this potential race condition.

func (*App) MoveCommand

func (a *App) MoveCommand(team *model.Team, command *model.Command) *model.AppError

func (*App) MoveFile

func (a *App) MoveFile(oldPath, newPath string) *model.AppError

func (*App) NewClusterDiscoveryService

func (a *App) NewClusterDiscoveryService() *ClusterDiscoveryService

func (*App) NewEmailTemplate

func (a *App) NewEmailTemplate(name, locale string) *utils.HTMLTemplate

func (*App) NewPluginAPI

func (a *App) NewPluginAPI(manifest *model.Manifest) plugin.API

func (*App) NewWebConn

func (a *App) NewWebConn(ws *websocket.Conn, session model.Session, t goi18n.TranslateFunc, locale string) *WebConn

func (*App) NewWebHub

func (a *App) NewWebHub() *Hub

func (*App) OldImportChannel

func (a *App) OldImportChannel(channel *model.Channel) *model.Channel

func (*App) OldImportFile

func (a *App) OldImportFile(timestamp time.Time, file io.Reader, teamId string, channelId string, userId string, fileName string) (*model.FileInfo, error)

func (*App) OldImportIncomingWebhookPost

func (a *App) OldImportIncomingWebhookPost(post *model.Post, props model.StringInterface)

func (*App) OldImportPost

func (a *App) OldImportPost(post *model.Post)

func (*App) OldImportUser

func (a *App) OldImportUser(team *model.Team, user *model.User) *model.User

func (*App) OriginChecker

func (a *App) OriginChecker() func(*http.Request) bool

func (*App) PatchChannel

func (a *App) PatchChannel(channel *model.Channel, patch *model.ChannelPatch, userId string) (*model.Channel, *model.AppError)

func (*App) PatchPost

func (a *App) PatchPost(postId string, patch *model.PostPatch) (*model.Post, *model.AppError)

func (*App) PatchRole

func (a *App) PatchRole(role *model.Role, patch *model.RolePatch) (*model.Role, *model.AppError)

func (*App) PatchScheme

func (a *App) PatchScheme(scheme *model.Scheme, patch *model.SchemePatch) (*model.Scheme, *model.AppError)

func (*App) PatchTeam

func (a *App) PatchTeam(teamId string, patch *model.TeamPatch) (*model.Team, *model.AppError)

func (*App) PatchUser

func (a *App) PatchUser(userId string, patch *model.UserPatch, asAdmin bool) (*model.User, *model.AppError)

func (*App) PermanentDeleteAllUsers

func (a *App) PermanentDeleteAllUsers() *model.AppError

func (*App) PermanentDeleteChannel

func (a *App) PermanentDeleteChannel(channel *model.Channel) *model.AppError

func (*App) PermanentDeleteTeam

func (a *App) PermanentDeleteTeam(team *model.Team) *model.AppError

func (*App) PermanentDeleteTeamId

func (a *App) PermanentDeleteTeamId(teamId string) *model.AppError

func (*App) PermanentDeleteUser

func (a *App) PermanentDeleteUser(user *model.User) *model.AppError

func (*App) PersistConfig

func (a *App) PersistConfig()

func (*App) PluginCommandsForTeam

func (a *App) PluginCommandsForTeam(teamId string) []*model.Command

func (*App) PluginsReady

func (a *App) PluginsReady() bool

func (*App) PostAddToChannelMessage

func (a *App) PostAddToChannelMessage(user *model.User, addedUser *model.User, channel *model.Channel, postRootId string) *model.AppError

func (*App) PostListWithProxyAddedToImageURLs

func (a *App) PostListWithProxyAddedToImageURLs(list *model.PostList) *model.PostList

func (*App) PostPatchWithProxyRemovedFromImageURLs

func (a *App) PostPatchWithProxyRemovedFromImageURLs(patch *model.PostPatch) *model.PostPatch

func (*App) PostUpdateChannelDisplayNameMessage

func (a *App) PostUpdateChannelDisplayNameMessage(userId string, channel *model.Channel, oldChannelDisplayName, newChannelDisplayName string) *model.AppError

func (*App) PostUpdateChannelHeaderMessage

func (a *App) PostUpdateChannelHeaderMessage(userId string, channel *model.Channel, oldChannelHeader, newChannelHeader string) *model.AppError

func (*App) PostUpdateChannelPurposeMessage

func (a *App) PostUpdateChannelPurposeMessage(userId string, channel *model.Channel, oldChannelPurpose string, newChannelPurpose string) *model.AppError

func (*App) PostWithProxyAddedToImageURLs

func (a *App) PostWithProxyAddedToImageURLs(post *model.Post) *model.Post

func (*App) PostWithProxyRemovedFromImageURLs

func (a *App) PostWithProxyRemovedFromImageURLs(post *model.Post) *model.Post

func (*App) ProcessSlackAttachments

func (app *App) ProcessSlackAttachments(a []*model.SlackAttachment) []*model.SlackAttachment

Expand announcements in incoming webhooks from Slack. Those announcements can be found in the text attribute, or in the pretext, text, title and value attributes of the attachment structure. The Slack attachment structure is documented here: https://api.slack.com/docs/attachments

func (*App) ProcessSlackText

func (a *App) ProcessSlackText(text string) string

func (*App) Publish

func (a *App) Publish(message *model.WebSocketEvent)

func (*App) PublishSkipClusterSend

func (a *App) PublishSkipClusterSend(message *model.WebSocketEvent)

func (*App) PurgeElasticsearchIndexes

func (a *App) PurgeElasticsearchIndexes() *model.AppError

func (*App) ReadFile

func (a *App) ReadFile(path string) ([]byte, *model.AppError)

func (*App) RecycleDatabaseConnection

func (a *App) RecycleDatabaseConnection()

func (*App) RegenCommandToken

func (a *App) RegenCommandToken(cmd *model.Command) (*model.Command, *model.AppError)

func (*App) RegenOutgoingWebhookToken

func (a *App) RegenOutgoingWebhookToken(hook *model.OutgoingWebhook) (*model.OutgoingWebhook, *model.AppError)

func (*App) RegenerateOAuthAppSecret

func (a *App) RegenerateOAuthAppSecret(app *model.OAuthApp) (*model.OAuthApp, *model.AppError)

func (*App) RegisterAllClusterMessageHandlers

func (a *App) RegisterAllClusterMessageHandlers()

func (*App) RegisterPluginCommand

func (a *App) RegisterPluginCommand(pluginId string, command *model.Command) error

func (*App) ReloadConfig

func (a *App) ReloadConfig() *model.AppError

func (*App) RemoveClusterLeaderChangedListener

func (a *App) RemoveClusterLeaderChangedListener(id string)

Removes a listener function by the unique ID returned when AddConfigListener was called

func (*App) RemoveConfigListener

func (a *App) RemoveConfigListener(id string)

Removes a listener function by the unique ID returned when AddConfigListener was called

func (*App) RemoveFile

func (a *App) RemoveFile(path string) *model.AppError

func (*App) RemoveLicense

func (a *App) RemoveLicense() *model.AppError

func (*App) RemoveLicenseListener

func (a *App) RemoveLicenseListener(id string)

func (*App) RemovePlugin

func (a *App) RemovePlugin(id string) *model.AppError

func (*App) RemoveSamlIdpCertificate

func (a *App) RemoveSamlIdpCertificate() *model.AppError

func (*App) RemoveSamlPrivateCertificate

func (a *App) RemoveSamlPrivateCertificate() *model.AppError

func (*App) RemoveSamlPublicCertificate

func (a *App) RemoveSamlPublicCertificate() *model.AppError

func (*App) RemoveTeamIcon

func (a *App) RemoveTeamIcon(teamId string) *model.AppError

func (*App) RemoveUserFromChannel

func (a *App) RemoveUserFromChannel(userIdToRemove string, removerUserId string, channel *model.Channel) *model.AppError

func (*App) RemoveUserFromTeam

func (a *App) RemoveUserFromTeam(teamId string, userId string, requestorId string) *model.AppError

func (*App) RenameChannel

func (a *App) RenameChannel(channel *model.Channel, newChannelName string, newDisplayName string) (*model.Channel, *model.AppError)

RenameChannel is used to rename the channel Name and the DisplayName fields

func (*App) ResetPasswordFromToken

func (a *App) ResetPasswordFromToken(userSuppliedTokenString, newPassword string) *model.AppError

func (*App) ResetPermissionsSystem

func (a *App) ResetPermissionsSystem() *model.AppError

func (*App) RestoreChannel

func (a *App) RestoreChannel(channel *model.Channel) (*model.Channel, *model.AppError)

func (*App) RevokeAccessToken

func (a *App) RevokeAccessToken(token string) *model.AppError

func (*App) RevokeAllSessions

func (a *App) RevokeAllSessions(userId string) *model.AppError

func (*App) RevokeSession

func (a *App) RevokeSession(session *model.Session) *model.AppError

func (*App) RevokeSessionById

func (a *App) RevokeSessionById(sessionId string) *model.AppError

func (*App) RevokeSessionsForDeviceId

func (a *App) RevokeSessionsForDeviceId(userId string, deviceId string, currentSessionId string) *model.AppError

func (*App) RevokeUserAccessToken

func (a *App) RevokeUserAccessToken(token *model.UserAccessToken) *model.AppError

func (*App) RevokeWebrtcToken

func (a *App) RevokeWebrtcToken(sessionId string)

func (*App) RolesGrantPermission

func (a *App) RolesGrantPermission(roleNames []string, permissionId string) bool

func (*App) SanitizeProfile

func (a *App) SanitizeProfile(user *model.User, asAdmin bool)

func (*App) SanitizeTeam

func (a *App) SanitizeTeam(session model.Session, team *model.Team) *model.Team

func (*App) SanitizeTeams

func (a *App) SanitizeTeams(session model.Session, teams []*model.Team) []*model.Team

func (*App) SaveAndBroadcastStatus

func (a *App) SaveAndBroadcastStatus(status *model.Status)

func (*App) SaveBrandImage

func (a *App) SaveBrandImage(imageData *multipart.FileHeader) *model.AppError

func (*App) SaveComplianceReport

func (a *App) SaveComplianceReport(job *model.Compliance) (*model.Compliance, *model.AppError)

func (*App) SaveConfig

func (a *App) SaveConfig(cfg *model.Config, sendConfigChangeClusterMessage bool) *model.AppError

func (*App) SaveLicense

func (a *App) SaveLicense(licenseBytes []byte) (*model.License, *model.AppError)

func (*App) SaveReactionForPost

func (a *App) SaveReactionForPost(reaction *model.Reaction) (*model.Reaction, *model.AppError)

func (*App) SchemesIterator

func (a *App) SchemesIterator(batchSize int) func() []*model.Scheme

func (*App) SearchAllTeams

func (a *App) SearchAllTeams(term string) ([]*model.Team, *model.AppError)

func (*App) SearchChannels

func (a *App) SearchChannels(teamId string, term string) (*model.ChannelList, *model.AppError)

func (*App) SearchChannelsUserNotIn

func (a *App) SearchChannelsUserNotIn(teamId string, userId string, term string) (*model.ChannelList, *model.AppError)

func (*App) SearchEmoji

func (a *App) SearchEmoji(name string, prefixOnly bool, limit int) ([]*model.Emoji, *model.AppError)

func (*App) SearchOpenTeams

func (a *App) SearchOpenTeams(term string) ([]*model.Team, *model.AppError)

func (*App) SearchPostsInTeam

func (a *App) SearchPostsInTeam(terms string, userId string, teamId string, isOrSearch bool, includeDeletedChannels bool) (*model.PostSearchResults, *model.AppError)

func (*App) SearchUserAccessTokens

func (a *App) SearchUserAccessTokens(term string) ([]*model.UserAccessToken, *model.AppError)

func (*App) SearchUsers

func (a *App) SearchUsers(props *model.UserSearch, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) SearchUsersInChannel

func (a *App) SearchUsersInChannel(channelId string, term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) SearchUsersInTeam

func (a *App) SearchUsersInTeam(teamId string, term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) SearchUsersNotInChannel

func (a *App) SearchUsersNotInChannel(teamId string, channelId string, term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) SearchUsersNotInTeam

func (a *App) SearchUsersNotInTeam(notInTeamId string, term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) SearchUsersWithoutTeam

func (a *App) SearchUsersWithoutTeam(term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError)

func (*App) SendAutoResponse

func (a *App) SendAutoResponse(channel *model.Channel, receiver *model.User, rootId string)

func (*App) SendChangeUsernameEmail

func (a *App) SendChangeUsernameEmail(oldUsername, newUsername, email, locale, siteURL string) *model.AppError

func (*App) SendDailyDiagnostics

func (a *App) SendDailyDiagnostics()

func (*App) SendDeactivateAccountEmail

func (a *App) SendDeactivateAccountEmail(email string, locale, siteURL string) *model.AppError

func (*App) SendDiagnostic

func (a *App) SendDiagnostic(event string, properties map[string]interface{})

func (*App) SendEmailChangeEmail

func (a *App) SendEmailChangeEmail(oldEmail, newEmail, locale, siteURL string) *model.AppError

func (*App) SendEmailChangeVerifyEmail

func (a *App) SendEmailChangeVerifyEmail(newUserEmail, locale, siteURL, token string) *model.AppError

func (*App) SendEmailVerification

func (a *App) SendEmailVerification(user *model.User) *model.AppError

func (*App) SendEphemeralPost

func (a *App) SendEphemeralPost(userId string, post *model.Post) *model.Post

func (*App) SendInviteEmails

func (a *App) SendInviteEmails(team *model.Team, senderName string, senderUserId string, invites []string, siteURL string)

func (*App) SendMail

func (a *App) SendMail(to, subject, htmlBody string) *model.AppError

func (*App) SendMessageToExtension

func (a *App) SendMessageToExtension(w http.ResponseWriter, extensionId string, token string) *model.AppError

func (*App) SendMfaChangeEmail

func (a *App) SendMfaChangeEmail(email string, activated bool, locale, siteURL string) *model.AppError

func (*App) SendNotifications

func (a *App) SendNotifications(post *model.Post, team *model.Team, channel *model.Channel, sender *model.User, parentPostList *model.PostList) ([]string, *model.AppError)

func (*App) SendPasswordChangeEmail

func (a *App) SendPasswordChangeEmail(email, method, locale, siteURL string) *model.AppError

func (*App) SendPasswordReset

func (a *App) SendPasswordReset(email string, siteURL string) (bool, *model.AppError)

func (*App) SendPasswordResetEmail

func (a *App) SendPasswordResetEmail(email string, token *model.Token, locale, siteURL string) (bool, *model.AppError)

func (*App) SendSignInChangeEmail

func (a *App) SendSignInChangeEmail(email, method, locale, siteURL string) *model.AppError

func (*App) SendUserAccessTokenAddedEmail

func (a *App) SendUserAccessTokenAddedEmail(email, locale, siteURL string) *model.AppError

func (*App) SendVerifyEmail

func (a *App) SendVerifyEmail(userEmail, locale, siteURL, token string) *model.AppError

func (*App) SendWelcomeEmail

func (a *App) SendWelcomeEmail(userId string, email string, verified bool, locale, siteURL string) *model.AppError

func (*App) ServePluginRequest

func (a *App) ServePluginRequest(w http.ResponseWriter, r *http.Request)

func (*App) SessionCacheLength

func (a *App) SessionCacheLength() int

func (*App) SessionHasPermissionTo

func (a *App) SessionHasPermissionTo(session model.Session, permission *model.Permission) bool

func (*App) SessionHasPermissionToChannel

func (a *App) SessionHasPermissionToChannel(session model.Session, channelId string, permission *model.Permission) bool

func (*App) SessionHasPermissionToChannelByPost

func (a *App) SessionHasPermissionToChannelByPost(session model.Session, postId string, permission *model.Permission) bool

func (*App) SessionHasPermissionToTeam

func (a *App) SessionHasPermissionToTeam(session model.Session, teamId string, permission *model.Permission) bool

/ DO NOT USE: LEGACY

func (*App) SessionHasPermissionToUser

func (a *App) SessionHasPermissionToUser(session model.Session, userId string) bool

func (*App) SetActiveChannel

func (a *App) SetActiveChannel(userId string, channelId string) *model.AppError

func (*App) SetAutoResponderStatus

func (a *App) SetAutoResponderStatus(user *model.User, oldNotifyProps model.StringMap)

func (*App) SetClientLicense

func (a *App) SetClientLicense(m map[string]string)

func (*App) SetDiagnosticId

func (a *App) SetDiagnosticId(id string)

func (*App) SetLicense

func (a *App) SetLicense(license *model.License) bool

func (*App) SetPhase2PermissionsMigrationStatus

func (a *App) SetPhase2PermissionsMigrationStatus(isComplete bool) error

func (*App) SetPluginKey

func (a *App) SetPluginKey(pluginId string, key string, value []byte) *model.AppError

func (*App) SetProfileImage

func (a *App) SetProfileImage(userId string, imageData *multipart.FileHeader) *model.AppError

func (*App) SetProfileImageFromFile

func (a *App) SetProfileImageFromFile(userId string, file multipart.File) *model.AppError

func (*App) SetStatusAwayIfNeeded

func (a *App) SetStatusAwayIfNeeded(userId string, manual bool)

func (*App) SetStatusDoNotDisturb

func (a *App) SetStatusDoNotDisturb(userId string)

func (*App) SetStatusLastActivityAt

func (a *App) SetStatusLastActivityAt(userId string, activityAt int64)

SetStatusLastActivityAt sets the last activity at for a user on the local app server and updates status to away if needed. Used by the WS to set status to away if an 'online' device disconnects while an 'away' device is still connected

func (*App) SetStatusOffline

func (a *App) SetStatusOffline(userId string, manual bool)

func (*App) SetStatusOnline

func (a *App) SetStatusOnline(userId string, manual bool)

func (*App) SetStatusOutOfOffice

func (a *App) SetStatusOutOfOffice(userId string)

func (*App) SetTeamIcon

func (a *App) SetTeamIcon(teamId string, imageData *multipart.FileHeader) *model.AppError

func (*App) SetTeamIconFromFile

func (a *App) SetTeamIconFromFile(teamId string, file multipart.File) *model.AppError

func (*App) SetupInviteEmailRateLimiting

func (a *App) SetupInviteEmailRateLimiting() error

func (*App) ShutDownPlugins

func (a *App) ShutDownPlugins()

func (*App) Shutdown

func (a *App) Shutdown()

func (*App) SlackAddBotUser

func (a *App) SlackAddBotUser(teamId string, log *bytes.Buffer) *model.User

func (*App) SlackAddChannels

func (a *App) SlackAddChannels(teamId string, slackchannels []SlackChannel, posts map[string][]SlackPost, users map[string]*model.User, uploads map[string]*zip.File, botUser *model.User, importerLog *bytes.Buffer) map[string]*model.Channel

func (*App) SlackAddPosts

func (a *App) SlackAddPosts(teamId string, channel *model.Channel, posts []SlackPost, users map[string]*model.User, uploads map[string]*zip.File, botUser *model.User)

func (*App) SlackAddUsers

func (a *App) SlackAddUsers(teamId string, slackusers []SlackUser, importerLog *bytes.Buffer) map[string]*model.User

func (*App) SlackImport

func (a *App) SlackImport(fileData multipart.File, fileSize int64, teamID string) (*model.AppError, *bytes.Buffer)

func (*App) SlackUploadFile

func (a *App) SlackUploadFile(sPost SlackPost, uploads map[string]*zip.File, teamId string, channelId string, userId string) (*model.FileInfo, bool)

func (*App) SoftDeleteTeam

func (a *App) SoftDeleteTeam(teamId string) *model.AppError

func (*App) StartElasticsearch

func (a *App) StartElasticsearch()

func (*App) StartServer

func (a *App) StartServer() error

func (*App) StopServer

func (a *App) StopServer()

func (*App) SwitchEmailToLdap

func (a *App) SwitchEmailToLdap(email, password, code, ldapLoginId, ldapPassword string) (string, *model.AppError)

func (*App) SwitchEmailToOAuth

func (a *App) SwitchEmailToOAuth(w http.ResponseWriter, r *http.Request, email, password, code, service string) (string, *model.AppError)

func (*App) SwitchLdapToEmail

func (a *App) SwitchLdapToEmail(ldapPassword, code, email, newPassword string) (string, *model.AppError)

func (*App) SwitchOAuthToEmail

func (a *App) SwitchOAuthToEmail(email, password, requesterId string) (string, *model.AppError)

func (*App) SyncLdap

func (a *App) SyncLdap()

func (*App) SyncPluginsActiveState

func (a *App) SyncPluginsActiveState()

func (*App) TestElasticsearch

func (a *App) TestElasticsearch(cfg *model.Config) *model.AppError

func (*App) TestEmail

func (a *App) TestEmail(userId string, cfg *model.Config) *model.AppError

func (*App) TestLdap

func (a *App) TestLdap() *model.AppError

func (*App) Timezones

func (a *App) Timezones() model.SupportedTimezones

func (*App) ToggleMuteChannel

func (a *App) ToggleMuteChannel(channelId string, userId string) *model.ChannelMember

func (*App) TotalWebsocketConnections

func (a *App) TotalWebsocketConnections() int

func (*App) TriggerWebhook

func (a *App) TriggerWebhook(payload *model.OutgoingWebhookPayload, hook *model.OutgoingWebhook, post *model.Post, channel *model.Channel)

func (*App) UnregisterPluginCommand

func (a *App) UnregisterPluginCommand(pluginId, teamId, trigger string)

func (*App) UnregisterPluginCommands

func (a *App) UnregisterPluginCommands(pluginId string)

func (*App) UpdateActive

func (a *App) UpdateActive(user *model.User, active bool) (*model.User, *model.AppError)

func (*App) UpdateChannel

func (a *App) UpdateChannel(channel *model.Channel) (*model.Channel, *model.AppError)

func (*App) UpdateChannelLastViewedAt

func (a *App) UpdateChannelLastViewedAt(channelIds []string, userId string) *model.AppError

func (*App) UpdateChannelMemberNotifyProps

func (a *App) UpdateChannelMemberNotifyProps(data map[string]string, channelId string, userId string) (*model.ChannelMember, *model.AppError)

func (*App) UpdateChannelMemberRoles

func (a *App) UpdateChannelMemberRoles(channelId string, userId string, newRoles string) (*model.ChannelMember, *model.AppError)

func (*App) UpdateChannelMemberSchemeRoles

func (a *App) UpdateChannelMemberSchemeRoles(channelId string, userId string, isSchemeUser bool, isSchemeAdmin bool) (*model.ChannelMember, *model.AppError)

func (*App) UpdateChannelPrivacy

func (a *App) UpdateChannelPrivacy(oldChannel *model.Channel, user *model.User) (*model.Channel, *model.AppError)

func (*App) UpdateChannelScheme

func (a *App) UpdateChannelScheme(channel *model.Channel) (*model.Channel, *model.AppError)

func (*App) UpdateCommand

func (a *App) UpdateCommand(oldCmd, updatedCmd *model.Command) (*model.Command, *model.AppError)

func (*App) UpdateConfig

func (a *App) UpdateConfig(f func(*model.Config))

func (*App) UpdateFileInfoWithPostId

func (a *App) UpdateFileInfoWithPostId(post *model.Post)

func (*App) UpdateIncomingWebhook

func (a *App) UpdateIncomingWebhook(oldHook, updatedHook *model.IncomingWebhook) (*model.IncomingWebhook, *model.AppError)

func (*App) UpdateLastActivityAtIfNeeded

func (a *App) UpdateLastActivityAtIfNeeded(session model.Session)

func (*App) UpdateMfa

func (a *App) UpdateMfa(activate bool, userId, token string) *model.AppError

func (*App) UpdateOAuthUserAttrs

func (a *App) UpdateOAuthUserAttrs(userData io.Reader, user *model.User, provider einterfaces.OauthProvider, service string) *model.AppError

func (*App) UpdateOauthApp

func (a *App) UpdateOauthApp(oldApp, updatedApp *model.OAuthApp) (*model.OAuthApp, *model.AppError)

func (*App) UpdateOutgoingWebhook

func (a *App) UpdateOutgoingWebhook(oldHook, updatedHook *model.OutgoingWebhook) (*model.OutgoingWebhook, *model.AppError)

func (*App) UpdatePassword

func (a *App) UpdatePassword(user *model.User, newPassword string) *model.AppError

func (*App) UpdatePasswordAsUser

func (a *App) UpdatePasswordAsUser(userId, currentPassword, newPassword string) *model.AppError

func (*App) UpdatePasswordByUserIdSendEmail

func (a *App) UpdatePasswordByUserIdSendEmail(userId, newPassword, method string) *model.AppError

func (*App) UpdatePasswordSendEmail

func (a *App) UpdatePasswordSendEmail(user *model.User, newPassword, method string) *model.AppError

func (*App) UpdatePost

func (a *App) UpdatePost(post *model.Post, safeUpdate bool) (*model.Post, *model.AppError)

func (*App) UpdatePreferences

func (a *App) UpdatePreferences(userId string, preferences model.Preferences) *model.AppError

func (*App) UpdateRole

func (a *App) UpdateRole(role *model.Role) (*model.Role, *model.AppError)

func (*App) UpdateScheme

func (a *App) UpdateScheme(scheme *model.Scheme) (*model.Scheme, *model.AppError)

func (*App) UpdateTeam

func (a *App) UpdateTeam(team *model.Team) (*model.Team, *model.AppError)

func (*App) UpdateTeamMemberRoles

func (a *App) UpdateTeamMemberRoles(teamId string, userId string, newRoles string) (*model.TeamMember, *model.AppError)

func (*App) UpdateTeamMemberSchemeRoles

func (a *App) UpdateTeamMemberSchemeRoles(teamId string, userId string, isSchemeUser bool, isSchemeAdmin bool) (*model.TeamMember, *model.AppError)

func (*App) UpdateTeamScheme

func (a *App) UpdateTeamScheme(team *model.Team) (*model.Team, *model.AppError)

func (*App) UpdateUser

func (a *App) UpdateUser(user *model.User, sendNotifications bool) (*model.User, *model.AppError)

func (*App) UpdateUserAsUser

func (a *App) UpdateUserAsUser(user *model.User, asAdmin bool) (*model.User, *model.AppError)

func (*App) UpdateUserAuth

func (a *App) UpdateUserAuth(userId string, userAuth *model.UserAuth) (*model.UserAuth, *model.AppError)

func (*App) UpdateUserNotifyProps

func (a *App) UpdateUserNotifyProps(userId string, props map[string]string) (*model.User, *model.AppError)

func (*App) UpdateUserRoles

func (a *App) UpdateUserRoles(userId string, newRoles string, sendWebSocketEvent bool) (*model.User, *model.AppError)

func (*App) UpdateWebConnUserActivity

func (a *App) UpdateWebConnUserActivity(session model.Session, activityAt int64)

func (*App) UploadEmojiImage

func (a *App) UploadEmojiImage(id string, imageData *multipart.FileHeader) *model.AppError

func (*App) UploadFiles

func (a *App) UploadFiles(teamId string, channelId string, userId string, files []io.ReadCloser, filenames []string, clientIds []string, now time.Time) (*model.FileUploadResponse, *model.AppError)

Uploads some files to the given team and channel as the given user. files and filenames should have the same length. clientIds should either not be provided or have the same length as files and filenames. The provided files should be closed by the caller so that they are not leaked.

func (*App) UploadMultipartFiles

func (a *App) UploadMultipartFiles(teamId string, channelId string, userId string, fileHeaders []*multipart.FileHeader, clientIds []string, now time.Time) (*model.FileUploadResponse, *model.AppError)

func (*App) ValidateAndSetLicenseBytes

func (a *App) ValidateAndSetLicenseBytes(b []byte)

func (*App) ValidateExtension

func (a *App) ValidateExtension(extensionId string) *model.AppError

func (*App) VerifyEmailFromToken

func (a *App) VerifyEmailFromToken(userSuppliedTokenString string) *model.AppError

func (*App) VerifyUserEmail

func (a *App) VerifyUserEmail(userId string) *model.AppError

func (*App) ViewChannel

func (a *App) ViewChannel(view *model.ChannelView, userId string, clearPushNotifications bool) (map[string]int64, *model.AppError)

func (*App) WaitForChannelMembership

func (a *App) WaitForChannelMembership(channelId string, userId string)

func (*App) WaitForGoroutines

func (a *App) WaitForGoroutines()

WaitForGoroutines blocks until all goroutines created by App.Go exit.

func (*App) WriteFile

func (a *App) WriteFile(fr io.Reader, path string) (int64, *model.AppError)

type AttachmentImportData

type AttachmentImportData struct {
	Path *string `json:"path"`
}

type AutoChannelCreator

type AutoChannelCreator struct {
	Fuzzy              bool
	DisplayNameLen     utils.Range
	DisplayNameCharset string
	NameLen            utils.Range
	NameCharset        string
	ChannelType        string
	// contains filtered or unexported fields
}

func NewAutoChannelCreator

func NewAutoChannelCreator(client *model.Client4, team *model.Team) *AutoChannelCreator

func (*AutoChannelCreator) CreateTestChannels

func (cfg *AutoChannelCreator) CreateTestChannels(num utils.Range) ([]*model.Channel, bool)

type AutoPostCreator

type AutoPostCreator struct {
	Fuzzy          bool
	TextLength     utils.Range
	HasImage       bool
	ImageFilenames []string
	Users          []string
	Mentions       utils.Range
	Tags           utils.Range
	// contains filtered or unexported fields
}

func NewAutoPostCreator

func NewAutoPostCreator(client *model.Client4, channelid string) *AutoPostCreator

Automatic poster used for testing

func (*AutoPostCreator) CreateRandomPost

func (cfg *AutoPostCreator) CreateRandomPost() (*model.Post, bool)

func (*AutoPostCreator) UploadTestFile

func (cfg *AutoPostCreator) UploadTestFile() ([]string, bool)

type AutoTeamCreator

type AutoTeamCreator struct {
	Fuzzy         bool
	NameLength    utils.Range
	NameCharset   string
	DomainLength  utils.Range
	DomainCharset string
	EmailLength   utils.Range
	EmailCharset  string
	// contains filtered or unexported fields
}

func NewAutoTeamCreator

func NewAutoTeamCreator(client *model.Client4) *AutoTeamCreator

func (*AutoTeamCreator) CreateTestTeams

func (cfg *AutoTeamCreator) CreateTestTeams(num utils.Range) ([]*model.Team, bool)

type AutoUserCreator

type AutoUserCreator struct {
	EmailLength  utils.Range
	EmailCharset string
	NameLength   utils.Range
	NameCharset  string
	Fuzzy        bool
	// contains filtered or unexported fields
}

func NewAutoUserCreator

func NewAutoUserCreator(a *App, client *model.Client4, team *model.Team) *AutoUserCreator

func (*AutoUserCreator) CreateTestUsers

func (cfg *AutoUserCreator) CreateTestUsers(num utils.Range) ([]*model.User, bool)

type AwayProvider

type AwayProvider struct {
}

func (*AwayProvider) DoCommand

func (me *AwayProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*AwayProvider) GetCommand

func (me *AwayProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*AwayProvider) GetTrigger

func (me *AwayProvider) GetTrigger() string

type ChannelImportData

type ChannelImportData struct {
	Team        *string `json:"team"`
	Name        *string `json:"name"`
	DisplayName *string `json:"display_name"`
	Type        *string `json:"type"`
	Header      *string `json:"header"`
	Purpose     *string `json:"purpose"`
	Scheme      *string `json:"scheme"`
}

type ClusterDiscoveryService

type ClusterDiscoveryService struct {
	model.ClusterDiscovery
	// contains filtered or unexported fields
}

func (*ClusterDiscoveryService) Start

func (me *ClusterDiscoveryService) Start()

func (*ClusterDiscoveryService) Stop

func (me *ClusterDiscoveryService) Stop()

type CodeProvider

type CodeProvider struct {
}

func (*CodeProvider) DoCommand

func (me *CodeProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*CodeProvider) GetCommand

func (me *CodeProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*CodeProvider) GetTrigger

func (me *CodeProvider) GetTrigger() string

type CollapseProvider

type CollapseProvider struct {
}

func (*CollapseProvider) DoCommand

func (me *CollapseProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*CollapseProvider) GetCommand

func (me *CollapseProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*CollapseProvider) GetTrigger

func (me *CollapseProvider) GetTrigger() string

type CommandProvider

type CommandProvider interface {
	GetTrigger() string
	GetCommand(a *App, T goi18n.TranslateFunc) *model.Command
	DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse
}

func GetCommandProvider

func GetCommandProvider(name string) CommandProvider

type DirectChannelImportData

type DirectChannelImportData struct {
	Members     *[]string `json:"members"`
	FavoritedBy *[]string `json:"favorited_by"`

	Header *string `json:"header"`
}

type DirectPostImportData

type DirectPostImportData struct {
	ChannelMembers *[]string `json:"channel_members"`
	User           *string   `json:"user"`

	Message  *string `json:"message"`
	CreateAt *int64  `json:"create_at"`

	FlaggedBy *[]string             `json:"flagged_by"`
	Reactions *[]ReactionImportData `json:"reactions"`
	Replies   *[]ReplyImportData    `json:"replies"`
}

type DndProvider

type DndProvider struct {
}

func (*DndProvider) DoCommand

func (me *DndProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*DndProvider) GetCommand

func (me *DndProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*DndProvider) GetTrigger

func (me *DndProvider) GetTrigger() string

type EchoProvider

type EchoProvider struct {
}

func (*EchoProvider) DoCommand

func (me *EchoProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*EchoProvider) GetCommand

func (me *EchoProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*EchoProvider) GetTrigger

func (me *EchoProvider) GetTrigger() string

type EmailBatchingJob

type EmailBatchingJob struct {
	// contains filtered or unexported fields
}

func NewEmailBatchingJob

func NewEmailBatchingJob(a *App, bufferSize int) *EmailBatchingJob

func (*EmailBatchingJob) Add

func (job *EmailBatchingJob) Add(user *model.User, post *model.Post, team *model.Team) bool

func (*EmailBatchingJob) CheckPendingEmails

func (job *EmailBatchingJob) CheckPendingEmails()

func (*EmailBatchingJob) Start

func (job *EmailBatchingJob) Start()

type EmojiImportData

type EmojiImportData struct {
	Name  *string `json:"name"`
	Image *string `json:"image"`
}

type ExpandProvider

type ExpandProvider struct {
}

func (*ExpandProvider) DoCommand

func (me *ExpandProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*ExpandProvider) GetCommand

func (me *ExpandProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*ExpandProvider) GetTrigger

func (me *ExpandProvider) GetTrigger() string

type ExplicitMentions

type ExplicitMentions struct {
	// MentionedUserIds contains a key for each user mentioned by keyword.
	MentionedUserIds map[string]bool

	// OtherPotentialMentions contains a list of strings that looked like mentions, but didn't have
	// a corresponding keyword.
	OtherPotentialMentions []string

	// HereMentioned is true if the message contained @here.
	HereMentioned bool

	// AllMentioned is true if the message contained @all.
	AllMentioned bool

	// ChannelMentioned is true if the message contained @channel.
	ChannelMentioned bool
}

func GetExplicitMentions

func GetExplicitMentions(post *model.Post, keywords map[string][]string) *ExplicitMentions

Given a message and a map mapping mention keywords to the users who use them, returns a map of mentioned users and a slice of potential mention users not in the channel and whether or not @here was mentioned.

type FakeClusterInterface

type FakeClusterInterface struct {
	// contains filtered or unexported fields
}

func (*FakeClusterInterface) ConfigChanged

func (me *FakeClusterInterface) ConfigChanged(previousConfig *model.Config, newConfig *model.Config, sendToOtherServer bool) *model.AppError

func (*FakeClusterInterface) GetClusterId

func (me *FakeClusterInterface) GetClusterId() string

func (*FakeClusterInterface) GetClusterInfos

func (me *FakeClusterInterface) GetClusterInfos() []*model.ClusterInfo

func (*FakeClusterInterface) GetClusterStats

func (me *FakeClusterInterface) GetClusterStats() ([]*model.ClusterStats, *model.AppError)

func (*FakeClusterInterface) GetLogs

func (me *FakeClusterInterface) GetLogs(page, perPage int) ([]string, *model.AppError)

func (*FakeClusterInterface) GetMyClusterInfo

func (me *FakeClusterInterface) GetMyClusterInfo() *model.ClusterInfo

func (*FakeClusterInterface) GetPluginStatuses

func (me *FakeClusterInterface) GetPluginStatuses() (model.PluginStatuses, *model.AppError)

func (*FakeClusterInterface) IsLeader

func (me *FakeClusterInterface) IsLeader() bool

func (*FakeClusterInterface) NotifyMsg

func (me *FakeClusterInterface) NotifyMsg(buf []byte)

func (*FakeClusterInterface) RegisterClusterMessageHandler

func (me *FakeClusterInterface) RegisterClusterMessageHandler(event string, crm einterfaces.ClusterMessageHandler)

func (*FakeClusterInterface) SendClusterMessage

func (me *FakeClusterInterface) SendClusterMessage(cluster *model.ClusterMessage)

func (*FakeClusterInterface) StartInterNodeCommunication

func (me *FakeClusterInterface) StartInterNodeCommunication()

func (*FakeClusterInterface) StopInterNodeCommunication

func (me *FakeClusterInterface) StopInterNodeCommunication()

type HeaderProvider

type HeaderProvider struct {
}

func (*HeaderProvider) DoCommand

func (me *HeaderProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*HeaderProvider) GetCommand

func (me *HeaderProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*HeaderProvider) GetTrigger

func (me *HeaderProvider) GetTrigger() string

type HelpProvider

type HelpProvider struct {
}

func (*HelpProvider) DoCommand

func (h *HelpProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*HelpProvider) GetCommand

func (h *HelpProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*HelpProvider) GetTrigger

func (h *HelpProvider) GetTrigger() string

type Hub

type Hub struct {
	ExplicitStop bool
	// contains filtered or unexported fields
}

func (*Hub) Broadcast

func (h *Hub) Broadcast(message *model.WebSocketEvent)

func (*Hub) InvalidateUser

func (h *Hub) InvalidateUser(userId string)

func (*Hub) Register

func (h *Hub) Register(webConn *WebConn)

func (*Hub) Start

func (h *Hub) Start()

func (*Hub) Stop

func (h *Hub) Stop()

func (*Hub) Unregister

func (h *Hub) Unregister(webConn *WebConn)

func (*Hub) UpdateActivity

func (h *Hub) UpdateActivity(userId, sessionToken string, activityAt int64)

type InvitePeopleProvider

type InvitePeopleProvider struct {
}

func (*InvitePeopleProvider) DoCommand

func (me *InvitePeopleProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*InvitePeopleProvider) GetCommand

func (me *InvitePeopleProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*InvitePeopleProvider) GetTrigger

func (me *InvitePeopleProvider) GetTrigger() string

type InviteProvider

type InviteProvider struct {
}

func (*InviteProvider) DoCommand

func (me *InviteProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*InviteProvider) GetCommand

func (me *InviteProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*InviteProvider) GetTrigger

func (me *InviteProvider) GetTrigger() string

type JoinProvider

type JoinProvider struct {
}

func (*JoinProvider) DoCommand

func (me *JoinProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*JoinProvider) GetCommand

func (me *JoinProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*JoinProvider) GetTrigger

func (me *JoinProvider) GetTrigger() string

type KickProvider

type KickProvider struct {
}

func (*KickProvider) DoCommand

func (me *KickProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*KickProvider) GetCommand

func (me *KickProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*KickProvider) GetTrigger

func (me *KickProvider) GetTrigger() string

type LeaveProvider

type LeaveProvider struct {
}

func (*LeaveProvider) DoCommand

func (me *LeaveProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*LeaveProvider) GetCommand

func (me *LeaveProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*LeaveProvider) GetTrigger

func (me *LeaveProvider) GetTrigger() string

type LineImportData

type LineImportData struct {
	Type          string                   `json:"type"`
	Scheme        *SchemeImportData        `json:"scheme"`
	Team          *TeamImportData          `json:"team"`
	Channel       *ChannelImportData       `json:"channel"`
	User          *UserImportData          `json:"user"`
	Post          *PostImportData          `json:"post"`
	DirectChannel *DirectChannelImportData `json:"direct_channel"`
	DirectPost    *DirectPostImportData    `json:"direct_post"`
	Emoji         *EmojiImportData         `json:"emoji"`
	Version       *int                     `json:"version"`
}

type LineImportWorkerData

type LineImportWorkerData struct {
	LineImportData
	LineNumber int
}

type LineImportWorkerError

type LineImportWorkerError struct {
	Error      *model.AppError
	LineNumber int
}

type LoadTestProvider

type LoadTestProvider struct {
}

func (*LoadTestProvider) ChannelsCommand

func (me *LoadTestProvider) ChannelsCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*LoadTestProvider) DoCommand

func (me *LoadTestProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*LoadTestProvider) GetCommand

func (me *LoadTestProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*LoadTestProvider) GetTrigger

func (me *LoadTestProvider) GetTrigger() string

func (*LoadTestProvider) HelpCommand

func (me *LoadTestProvider) HelpCommand(args *model.CommandArgs, message string) *model.CommandResponse

func (*LoadTestProvider) JsonCommand

func (me *LoadTestProvider) JsonCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*LoadTestProvider) PostsCommand

func (me *LoadTestProvider) PostsCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*LoadTestProvider) SetupCommand

func (me *LoadTestProvider) SetupCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*LoadTestProvider) UrlCommand

func (me *LoadTestProvider) UrlCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*LoadTestProvider) UsersCommand

func (me *LoadTestProvider) UsersCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

type LogoutProvider

type LogoutProvider struct {
}

func (*LogoutProvider) DoCommand

func (me *LogoutProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*LogoutProvider) GetCommand

func (me *LogoutProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*LogoutProvider) GetTrigger

func (me *LogoutProvider) GetTrigger() string

type MeProvider

type MeProvider struct {
}

func (*MeProvider) DoCommand

func (me *MeProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*MeProvider) GetCommand

func (me *MeProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*MeProvider) GetTrigger

func (me *MeProvider) GetTrigger() string

type MuteProvider

type MuteProvider struct {
}

func (*MuteProvider) DoCommand

func (me *MuteProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*MuteProvider) GetCommand

func (me *MuteProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*MuteProvider) GetTrigger

func (me *MuteProvider) GetTrigger() string

type OfflineProvider

type OfflineProvider struct {
}

func (*OfflineProvider) DoCommand

func (me *OfflineProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*OfflineProvider) GetCommand

func (me *OfflineProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*OfflineProvider) GetTrigger

func (me *OfflineProvider) GetTrigger() string

type OnlineProvider

type OnlineProvider struct {
}

func (*OnlineProvider) DoCommand

func (me *OnlineProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*OnlineProvider) GetCommand

func (me *OnlineProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*OnlineProvider) GetTrigger

func (me *OnlineProvider) GetTrigger() string

type OpenProvider

type OpenProvider struct {
	JoinProvider
}

func (*OpenProvider) GetCommand

func (open *OpenProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*OpenProvider) GetTrigger

func (open *OpenProvider) GetTrigger() string

type Option

type Option func(a *App)

func ConfigFile

func ConfigFile(file string) Option

func StoreOverride

func StoreOverride(override interface{}) Option

By default, the app will use the store specified by the configuration. This allows you to construct an app with a different store.

The override parameter must be either a store.Store or func(App) store.Store.

type PluginAPI

type PluginAPI struct {
	// contains filtered or unexported fields
}

func NewPluginAPI

func NewPluginAPI(a *App, manifest *model.Manifest) *PluginAPI

func (*PluginAPI) AddChannelMember

func (api *PluginAPI) AddChannelMember(channelId, userId string) (*model.ChannelMember, *model.AppError)

func (*PluginAPI) CopyFileInfos

func (api *PluginAPI) CopyFileInfos(userId string, fileIds []string) ([]string, *model.AppError)

func (*PluginAPI) CreateChannel

func (api *PluginAPI) CreateChannel(channel *model.Channel) (*model.Channel, *model.AppError)

func (*PluginAPI) CreatePost

func (api *PluginAPI) CreatePost(post *model.Post) (*model.Post, *model.AppError)

func (*PluginAPI) CreateTeam

func (api *PluginAPI) CreateTeam(team *model.Team) (*model.Team, *model.AppError)

func (*PluginAPI) CreateTeamMember

func (api *PluginAPI) CreateTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError)

func (*PluginAPI) CreateTeamMembers

func (api *PluginAPI) CreateTeamMembers(teamId string, userIds []string, requestorId string) ([]*model.TeamMember, *model.AppError)

func (*PluginAPI) CreateUser

func (api *PluginAPI) CreateUser(user *model.User) (*model.User, *model.AppError)

func (*PluginAPI) DeleteChannel

func (api *PluginAPI) DeleteChannel(channelId string) *model.AppError

func (*PluginAPI) DeleteChannelMember

func (api *PluginAPI) DeleteChannelMember(channelId, userId string) *model.AppError

func (*PluginAPI) DeletePost

func (api *PluginAPI) DeletePost(postId string) *model.AppError

func (*PluginAPI) DeleteTeam

func (api *PluginAPI) DeleteTeam(teamId string) *model.AppError

func (*PluginAPI) DeleteTeamMember

func (api *PluginAPI) DeleteTeamMember(teamId, userId, requestorId string) *model.AppError

func (*PluginAPI) DeleteUser

func (api *PluginAPI) DeleteUser(userId string) *model.AppError

func (*PluginAPI) GetChannel

func (api *PluginAPI) GetChannel(channelId string) (*model.Channel, *model.AppError)

func (*PluginAPI) GetChannelByName

func (api *PluginAPI) GetChannelByName(teamId, name string, includeDeleted bool) (*model.Channel, *model.AppError)

func (*PluginAPI) GetChannelByNameForTeamName

func (api *PluginAPI) GetChannelByNameForTeamName(teamName, channelName string, includeDeleted bool) (*model.Channel, *model.AppError)

func (*PluginAPI) GetChannelMember

func (api *PluginAPI) GetChannelMember(channelId, userId string) (*model.ChannelMember, *model.AppError)

func (*PluginAPI) GetConfig

func (api *PluginAPI) GetConfig() *model.Config

func (*PluginAPI) GetDirectChannel

func (api *PluginAPI) GetDirectChannel(userId1, userId2 string) (*model.Channel, *model.AppError)

func (*PluginAPI) GetGroupChannel

func (api *PluginAPI) GetGroupChannel(userIds []string) (*model.Channel, *model.AppError)

func (*PluginAPI) GetPost

func (api *PluginAPI) GetPost(postId string) (*model.Post, *model.AppError)

func (*PluginAPI) GetPublicChannelsForTeam

func (api *PluginAPI) GetPublicChannelsForTeam(teamId string, offset, limit int) (*model.ChannelList, *model.AppError)

func (*PluginAPI) GetSession

func (api *PluginAPI) GetSession(sessionId string) (*model.Session, *model.AppError)

func (*PluginAPI) GetTeam

func (api *PluginAPI) GetTeam(teamId string) (*model.Team, *model.AppError)

func (*PluginAPI) GetTeamByName

func (api *PluginAPI) GetTeamByName(name string) (*model.Team, *model.AppError)

func (*PluginAPI) GetTeamMember

func (api *PluginAPI) GetTeamMember(teamId, userId string) (*model.TeamMember, *model.AppError)

func (*PluginAPI) GetTeamMembers

func (api *PluginAPI) GetTeamMembers(teamId string, offset, limit int) ([]*model.TeamMember, *model.AppError)

func (*PluginAPI) GetTeams

func (api *PluginAPI) GetTeams() ([]*model.Team, *model.AppError)

func (*PluginAPI) GetUser

func (api *PluginAPI) GetUser(userId string) (*model.User, *model.AppError)

func (*PluginAPI) GetUserByEmail

func (api *PluginAPI) GetUserByEmail(email string) (*model.User, *model.AppError)

func (*PluginAPI) GetUserByUsername

func (api *PluginAPI) GetUserByUsername(name string) (*model.User, *model.AppError)

func (*PluginAPI) GetUserStatus

func (api *PluginAPI) GetUserStatus(userId string) (*model.Status, *model.AppError)

func (*PluginAPI) GetUserStatusesByIds

func (api *PluginAPI) GetUserStatusesByIds(userIds []string) ([]*model.Status, *model.AppError)

func (*PluginAPI) KVDelete

func (api *PluginAPI) KVDelete(key string) *model.AppError

func (*PluginAPI) KVGet

func (api *PluginAPI) KVGet(key string) ([]byte, *model.AppError)

func (*PluginAPI) KVSet

func (api *PluginAPI) KVSet(key string, value []byte) *model.AppError

func (*PluginAPI) LoadPluginConfiguration

func (api *PluginAPI) LoadPluginConfiguration(dest interface{}) error

func (*PluginAPI) LogDebug

func (api *PluginAPI) LogDebug(msg string, keyValuePairs ...interface{})

func (*PluginAPI) LogError

func (api *PluginAPI) LogError(msg string, keyValuePairs ...interface{})

func (*PluginAPI) LogInfo

func (api *PluginAPI) LogInfo(msg string, keyValuePairs ...interface{})

func (*PluginAPI) LogWarn

func (api *PluginAPI) LogWarn(msg string, keyValuePairs ...interface{})

func (*PluginAPI) PublishWebSocketEvent

func (api *PluginAPI) PublishWebSocketEvent(event string, payload map[string]interface{}, broadcast *model.WebsocketBroadcast)

func (*PluginAPI) RegisterCommand

func (api *PluginAPI) RegisterCommand(command *model.Command) error

func (*PluginAPI) SaveConfig

func (api *PluginAPI) SaveConfig(config *model.Config) *model.AppError

func (*PluginAPI) SendEphemeralPost

func (api *PluginAPI) SendEphemeralPost(userId string, post *model.Post) *model.Post

func (*PluginAPI) UnregisterCommand

func (api *PluginAPI) UnregisterCommand(teamId, trigger string) error

func (*PluginAPI) UpdateChannel

func (api *PluginAPI) UpdateChannel(channel *model.Channel) (*model.Channel, *model.AppError)

func (*PluginAPI) UpdateChannelMemberNotifications

func (api *PluginAPI) UpdateChannelMemberNotifications(channelId, userId string, notifications map[string]string) (*model.ChannelMember, *model.AppError)

func (*PluginAPI) UpdateChannelMemberRoles

func (api *PluginAPI) UpdateChannelMemberRoles(channelId, userId, newRoles string) (*model.ChannelMember, *model.AppError)

func (*PluginAPI) UpdatePost

func (api *PluginAPI) UpdatePost(post *model.Post) (*model.Post, *model.AppError)

func (*PluginAPI) UpdateTeam

func (api *PluginAPI) UpdateTeam(team *model.Team) (*model.Team, *model.AppError)

func (*PluginAPI) UpdateTeamMemberRoles

func (api *PluginAPI) UpdateTeamMemberRoles(teamId, userId, newRoles string) (*model.TeamMember, *model.AppError)

func (*PluginAPI) UpdateUser

func (api *PluginAPI) UpdateUser(user *model.User) (*model.User, *model.AppError)

func (*PluginAPI) UpdateUserStatus

func (api *PluginAPI) UpdateUserStatus(userId, status string) (*model.Status, *model.AppError)

type PluginCommand

type PluginCommand struct {
	Command  *model.Command
	PluginId string
}

type PostImportData

type PostImportData struct {
	Team    *string `json:"team"`
	Channel *string `json:"channel"`
	User    *string `json:"user"`

	Message  *string `json:"message"`
	CreateAt *int64  `json:"create_at"`

	FlaggedBy   *[]string               `json:"flagged_by"`
	Reactions   *[]ReactionImportData   `json:"reactions"`
	Replies     *[]ReplyImportData      `json:"replies"`
	Attachments *[]AttachmentImportData `json:"attachments"`
}

type PurposeProvider

type PurposeProvider struct {
}

func (*PurposeProvider) DoCommand

func (me *PurposeProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*PurposeProvider) GetCommand

func (me *PurposeProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*PurposeProvider) GetTrigger

func (me *PurposeProvider) GetTrigger() string

type RateLimiter

type RateLimiter struct {
	// contains filtered or unexported fields
}

func NewRateLimiter

func NewRateLimiter(settings *model.RateLimitSettings) (*RateLimiter, error)

func (*RateLimiter) GenerateKey

func (rl *RateLimiter) GenerateKey(r *http.Request) string

func (*RateLimiter) RateLimitHandler

func (rl *RateLimiter) RateLimitHandler(wrappedHandler http.Handler) http.Handler

func (*RateLimiter) RateLimitWriter

func (rl *RateLimiter) RateLimitWriter(key string, w http.ResponseWriter) bool

func (*RateLimiter) UserIdRateLimit

func (rl *RateLimiter) UserIdRateLimit(userId string, w http.ResponseWriter) bool

type ReactionImportData

type ReactionImportData struct {
	User      *string `json:"user"`
	CreateAt  *int64  `json:"create_at"`
	EmojiName *string `json:"emoji_name"`
}

type RecoveryLogger

type RecoveryLogger struct {
}

func (*RecoveryLogger) Println

func (rl *RecoveryLogger) Println(i ...interface{})

type RemoveProvider

type RemoveProvider struct {
}

func (*RemoveProvider) DoCommand

func (me *RemoveProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*RemoveProvider) GetCommand

func (me *RemoveProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*RemoveProvider) GetTrigger

func (me *RemoveProvider) GetTrigger() string

type RenameProvider

type RenameProvider struct {
}

func (*RenameProvider) DoCommand

func (me *RenameProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*RenameProvider) GetCommand

func (me *RenameProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*RenameProvider) GetTrigger

func (me *RenameProvider) GetTrigger() string

type ReplyImportData

type ReplyImportData struct {
	User *string `json:"user"`

	Message  *string `json:"message"`
	CreateAt *int64  `json:"create_at"`

	FlaggedBy   *[]string               `json:"flagged_by"`
	Reactions   *[]ReactionImportData   `json:"reactions"`
	Attachments *[]AttachmentImportData `json:"attachments"`
}

type RoleImportData

type RoleImportData struct {
	Name        *string   `json:"name"`
	DisplayName *string   `json:"display_name"`
	Description *string   `json:"description"`
	Permissions *[]string `json:"permissions"`
}

type SchemeImportData

type SchemeImportData struct {
	Name                    *string         `json:"name"`
	DisplayName             *string         `json:"display_name"`
	Description             *string         `json:"description"`
	Scope                   *string         `json:"scope"`
	DefaultTeamAdminRole    *RoleImportData `json:"default_team_admin_role"`
	DefaultTeamUserRole     *RoleImportData `json:"default_team_user_role"`
	DefaultChannelAdminRole *RoleImportData `json:"default_channel_admin_role"`
	DefaultChannelUserRole  *RoleImportData `json:"default_channel_user_role"`
}

type SearchProvider

type SearchProvider struct {
}

func (*SearchProvider) DoCommand

func (search *SearchProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*SearchProvider) GetCommand

func (search *SearchProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*SearchProvider) GetTrigger

func (search *SearchProvider) GetTrigger() string

type Server

type Server struct {
	Store           store.Store
	WebSocketRouter *WebSocketRouter

	// RootRouter is the starting point for all HTTP requests to the server.
	RootRouter *mux.Router

	// Router is the starting point for all web, api4 and ws requests to the server. It differs
	// from RootRouter only if the SiteURL contains a /subpath.
	Router *mux.Router

	Server      *http.Server
	ListenAddr  *net.TCPAddr
	RateLimiter *RateLimiter
	// contains filtered or unexported fields
}

type SettingsProvider

type SettingsProvider struct {
}

func (*SettingsProvider) DoCommand

func (settings *SettingsProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*SettingsProvider) GetCommand

func (settings *SettingsProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*SettingsProvider) GetTrigger

func (settings *SettingsProvider) GetTrigger() string

type ShortcutsProvider

type ShortcutsProvider struct {
}

func (*ShortcutsProvider) DoCommand

func (me *ShortcutsProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*ShortcutsProvider) GetCommand

func (me *ShortcutsProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*ShortcutsProvider) GetTrigger

func (me *ShortcutsProvider) GetTrigger() string

type ShrugProvider

type ShrugProvider struct {
}

func (*ShrugProvider) DoCommand

func (me *ShrugProvider) DoCommand(a *App, args *model.CommandArgs, message string) *model.CommandResponse

func (*ShrugProvider) GetCommand

func (me *ShrugProvider) GetCommand(a *App, T goi18n.TranslateFunc) *model.Command

func (*ShrugProvider) GetTrigger

func (me *ShrugProvider) GetTrigger() string

type SlackChannel

type SlackChannel struct {
	Id      string            `json:"id"`
	Name    string            `json:"name"`
	Members []string          `json:"members"`
	Topic   map[string]string `json:"topic"`
	Purpose map[string]string `json:"purpose"`
}

func SlackParseChannels

func SlackParseChannels(data io.Reader) ([]SlackChannel, error)

type SlackComment

type SlackComment struct {
	User    string `json:"user"`
	Comment string `json:"comment"`
}

type SlackFile

type SlackFile struct {
	Id    string `json:"id"`
	Title string `json:"title"`
}

type SlackPost

type SlackPost struct {
	User        string                   `json:"user"`
	BotId       string                   `json:"bot_id"`
	BotUsername string                   `json:"username"`
	Text        string                   `json:"text"`
	TimeStamp   string                   `json:"ts"`
	Type        string                   `json:"type"`
	SubType     string                   `json:"subtype"`
	Comment     *SlackComment            `json:"comment"`
	Upload      bool                     `json:"upload"`
	File        *SlackFile               `json:"file"`
	Attachments []*model.SlackAttachment `json:"attachments"`
}

func SlackParsePosts

func SlackParsePosts(data io.Reader) ([]SlackPost, error)

type SlackProfile

type SlackProfile struct {
	FirstName string `json:"first_name"`
	LastName  string `json:"last_name"`
	Email     string `json:"email"`
}

type SlackUser

type SlackUser struct {
	Id       string       `json:"id"`
	Username string       `json:"name"`
	Profile  SlackProfile `json:"profile"`
}

func SlackParseUsers

func SlackParseUsers(data io.Reader) ([]SlackUser, error)

type TeamEnvironment

type TeamEnvironment struct {
	Users    []*model.User
	Channels []*model.Channel
}

func CreateTestEnvironmentInTeam

func CreateTestEnvironmentInTeam(a *App, client *model.Client4, team *model.Team, rangeChannels utils.Range, rangeUsers utils.Range, rangePosts utils.Range, fuzzy bool) (TeamEnvironment, bool)

type TeamImportData

type TeamImportData struct {
	Name            *string `json:"name"`
	DisplayName     *string `json:"display_name"`
	Type            *string `json:"type"`
	Description     *string `json:"description"`
	AllowOpenInvite *bool   `json:"allow_open_invite"`
	Scheme          *string `json:"scheme"`
}

type TestEnvironment

type TestEnvironment struct {
	Teams        []*model.Team
	Environments []TeamEnvironment
}

func CreateTestEnvironmentWithTeams

func CreateTestEnvironmentWithTeams(a *App, client *model.Client4, rangeTeams utils.Range, rangeChannels utils.Range, rangeUsers utils.Range, rangePosts utils.Range, fuzzy bool) (TestEnvironment, bool)

type TestHelper

type TestHelper struct {
	App          *App
	BasicTeam    *model.Team
	BasicUser    *model.User
	BasicUser2   *model.User
	BasicChannel *model.Channel
	BasicPost    *model.Post

	SystemAdminUser *model.User
	// contains filtered or unexported fields
}

func Setup

func Setup() *TestHelper

func SetupEnterprise

func SetupEnterprise() *TestHelper

func (*TestHelper) AddUserToChannel

func (me *TestHelper) AddUserToChannel(user *model.User, channel *model.Channel) *model.ChannelMember

func (*TestHelper) CheckChannelsCount

func (me *TestHelper) CheckChannelsCount(t *testing.T, expected int64)

func (*TestHelper) CheckTeamCount

func (me *TestHelper) CheckTeamCount(t *testing.T, expected int64)

func (*TestHelper) CreateChannel

func (me *TestHelper) CreateChannel(team *model.Team) *model.Channel

func (*TestHelper) CreateDmChannel

func (me *TestHelper) CreateDmChannel(user *model.User) *model.Channel

func (*TestHelper) CreateGroupChannel

func (me *TestHelper) CreateGroupChannel(user1 *model.User, user2 *model.User) *model.Channel

func (*TestHelper) CreatePost

func (me *TestHelper) CreatePost(channel *model.Channel) *model.Post

func (*TestHelper) CreatePrivateChannel

func (me *TestHelper) CreatePrivateChannel(team *model.Team) *model.Channel

func (*TestHelper) CreateScheme

func (me *TestHelper) CreateScheme() (*model.Scheme, []*model.Role)

func (*TestHelper) CreateTeam

func (me *TestHelper) CreateTeam() *model.Team

func (*TestHelper) CreateUser

func (me *TestHelper) CreateUser() *model.User

func (*TestHelper) InitBasic

func (me *TestHelper) InitBasic() *TestHelper

func (*TestHelper) InitSystemAdmin

func (me *TestHelper) InitSystemAdmin() *TestHelper

func (*TestHelper) LinkUserToTeam

func (me *TestHelper) LinkUserToTeam(user *model.User, team *model.Team)

func (*TestHelper) MakeEmail

func (me *TestHelper) MakeEmail() string

func (*TestHelper) ResetEmojisMigration

func (me *TestHelper) ResetEmojisMigration()

func (*TestHelper) ResetRoleMigration

func (me *TestHelper) ResetRoleMigration()

func (*TestHelper) SetupChannelScheme

func (me *TestHelper) SetupChannelScheme() *model.Scheme

func (*TestHelper) SetupPluginAPI

func (me *TestHelper) SetupPluginAPI() *PluginAPI

func (*TestHelper) SetupTeamScheme

func (me *TestHelper) SetupTeamScheme() *model.Scheme

func (*TestHelper) TearDown

func (me *TestHelper) TearDown()

type TokenLocation

type TokenLocation int

func ParseAuthTokenFromRequest

func ParseAuthTokenFromRequest(r *http.Request) (string, TokenLocation)

func (TokenLocation) String

func (tl TokenLocation) String() string

type UserChannelImportData

type UserChannelImportData struct {
	Name        *string                           `json:"name"`
	Roles       *string                           `json:"roles"`
	NotifyProps *UserChannelNotifyPropsImportData `json:"notify_props"`
	Favorite    *bool                             `json:"favorite"`
}

type UserChannelNotifyPropsImportData

type UserChannelNotifyPropsImportData struct {
	Desktop    *string `json:"desktop"`
	Mobile     *string `json:"mobile"`
	MarkUnread *string `json:"mark_unread"`
}

type UserImportData

type UserImportData struct {
	ProfileImage *string `json:"profile_image"`
	Username     *string `json:"username"`
	Email        *string `json:"email"`
	AuthService  *string `json:"auth_service"`
	AuthData     *string `json:"auth_data"`
	Password     *string `json:"password"`
	Nickname     *string `json:"nickname"`
	FirstName    *string `json:"first_name"`
	LastName     *string `json:"last_name"`
	Position     *string `json:"position"`
	Roles        *string `json:"roles"`
	Locale       *string `json:"locale"`

	Teams *[]UserTeamImportData `json:"teams"`

	Theme              *string `json:"theme"`
	UseMilitaryTime    *string `json:"military_time"`
	CollapsePreviews   *string `json:"link_previews"`
	MessageDisplay     *string `json:"message_display"`
	ChannelDisplayMode *string `json:"channel_display_mode"`
	TutorialStep       *string `json:"tutorial_step"`

	NotifyProps *UserNotifyPropsImportData `json:"notify_props"`
}

type UserNotifyPropsImportData

type UserNotifyPropsImportData struct {
	Desktop      *string `json:"desktop"`
	DesktopSound *string `json:"desktop_sound"`

	Email *string `json:"email"`

	Mobile           *string `json:"mobile"`
	MobilePushStatus *string `json:"mobile_push_status"`

	ChannelTrigger  *string `json:"channel"`
	CommentsTrigger *string `json:"comments"`
	MentionKeys     *string `json:"mention_keys"`
}

type UserTeamImportData

type UserTeamImportData struct {
	Name     *string                  `json:"name"`
	Roles    *string                  `json:"roles"`
	Channels *[]UserChannelImportData `json:"channels"`
}

type WebConn

type WebConn struct {
	App       *App
	WebSocket *websocket.Conn
	Send      chan model.WebSocketMessage

	LastUserActivityAt        int64
	UserId                    string
	T                         goi18n.TranslateFunc
	Locale                    string
	AllChannelMembers         map[string]string
	LastAllChannelMembersTime int64
	Sequence                  int64
	// contains filtered or unexported fields
}

func (*WebConn) Close

func (wc *WebConn) Close()

func (*WebConn) GetSession

func (c *WebConn) GetSession() *model.Session

func (*WebConn) GetSessionExpiresAt

func (c *WebConn) GetSessionExpiresAt() int64

func (*WebConn) GetSessionToken

func (c *WebConn) GetSessionToken() string

func (*WebConn) InvalidateCache

func (webCon *WebConn) InvalidateCache()

func (*WebConn) IsAuthenticated

func (webCon *WebConn) IsAuthenticated() bool

func (*WebConn) IsMemberOfTeam

func (webCon *WebConn) IsMemberOfTeam(teamId string) bool

func (*WebConn) Pump

func (c *WebConn) Pump()

func (*WebConn) SendHello

func (webCon *WebConn) SendHello()

func (*WebConn) SetSession

func (c *WebConn) SetSession(v *model.Session)

func (*WebConn) SetSessionExpiresAt

func (c *WebConn) SetSessionExpiresAt(v int64)

func (*WebConn) SetSessionToken

func (c *WebConn) SetSessionToken(v string)

func (*WebConn) ShouldSendEvent

func (webCon *WebConn) ShouldSendEvent(msg *model.WebSocketEvent) bool

type WebConnActivityMessage

type WebConnActivityMessage struct {
	UserId       string
	SessionToken string
	ActivityAt   int64
}

type WebSocketRouter

type WebSocketRouter struct {
	// contains filtered or unexported fields
}

func (*WebSocketRouter) Handle

func (wr *WebSocketRouter) Handle(action string, handler webSocketHandler)

func (*WebSocketRouter) ServeWebSocket

func (wr *WebSocketRouter) ServeWebSocket(conn *WebConn, r *model.WebSocketRequest)

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL