mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
* Add Scheme model and stub store. * Port ChannelStore to be Scheme aware. * Make almost all the API/APP layer work with ChannelSchemes. Only thing still hacky is UpdateChannelMemberRoles(). * Add basic SchemeStore implementation. * Migrate UpdateChannelMemberRoles properly and fix tests. * Update store tests and mocks so they work. * Include creating default roles in Scheme create store function. * Implement role deletion and start scheme deletion. * Only use non-deleted roles for authorization. * Add GetByScheme method to Team store. * Add GetChannelsByScheme. * Update store mocks. * Implement scheme deletion in the store. * Rename is valid function. * Add offset and limit to queries to fetch teams and channels by scheme. * Fix queries. * Implement scheme awareness in Team store and add a migration. * Tidy up ChannelStore mapping functions and add exhaustive unit tests. * Add all missing i18n. * Proper tests for TeamStore internal functions and fix them. * Make additional TeamMember fields nullable. * Make new ChannelMember fields nullable. * Create new nullable columns without defaults. * Make new fields in large tables nullalble. * Fix empty list of TeamMembers. * Deduplicate SQL queries. * Fix spelling. * Fix review comment. * More review fixes. * More review fixes.
98 lines
2.0 KiB
Go
98 lines
2.0 KiB
Go
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
package model
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io"
|
|
"net/http"
|
|
"strings"
|
|
)
|
|
|
|
type TeamMember struct {
|
|
TeamId string `json:"team_id"`
|
|
UserId string `json:"user_id"`
|
|
Roles string `json:"roles"`
|
|
DeleteAt int64 `json:"delete_at"`
|
|
SchemeUser bool `json:"scheme_user"`
|
|
SchemeAdmin bool `json:"scheme_admin"`
|
|
ExplicitRoles string `json:"explicit_roles"`
|
|
}
|
|
|
|
type TeamUnread struct {
|
|
TeamId string `json:"team_id"`
|
|
MsgCount int64 `json:"msg_count"`
|
|
MentionCount int64 `json:"mention_count"`
|
|
}
|
|
|
|
func (o *TeamMember) ToJson() string {
|
|
b, _ := json.Marshal(o)
|
|
return string(b)
|
|
}
|
|
|
|
func (o *TeamUnread) ToJson() string {
|
|
b, _ := json.Marshal(o)
|
|
return string(b)
|
|
}
|
|
|
|
func TeamMemberFromJson(data io.Reader) *TeamMember {
|
|
var o *TeamMember
|
|
json.NewDecoder(data).Decode(&o)
|
|
return o
|
|
}
|
|
|
|
func TeamUnreadFromJson(data io.Reader) *TeamUnread {
|
|
var o *TeamUnread
|
|
json.NewDecoder(data).Decode(&o)
|
|
return o
|
|
}
|
|
|
|
func TeamMembersToJson(o []*TeamMember) string {
|
|
if b, err := json.Marshal(o); err != nil {
|
|
return "[]"
|
|
} else {
|
|
return string(b)
|
|
}
|
|
}
|
|
|
|
func TeamMembersFromJson(data io.Reader) []*TeamMember {
|
|
var o []*TeamMember
|
|
json.NewDecoder(data).Decode(&o)
|
|
return o
|
|
}
|
|
|
|
func TeamsUnreadToJson(o []*TeamUnread) string {
|
|
if b, err := json.Marshal(o); err != nil {
|
|
return "[]"
|
|
} else {
|
|
return string(b)
|
|
}
|
|
}
|
|
|
|
func TeamsUnreadFromJson(data io.Reader) []*TeamUnread {
|
|
var o []*TeamUnread
|
|
json.NewDecoder(data).Decode(&o)
|
|
return o
|
|
}
|
|
|
|
func (o *TeamMember) IsValid() *AppError {
|
|
|
|
if len(o.TeamId) != 26 {
|
|
return NewAppError("TeamMember.IsValid", "model.team_member.is_valid.team_id.app_error", nil, "", http.StatusBadRequest)
|
|
}
|
|
|
|
if len(o.UserId) != 26 {
|
|
return NewAppError("TeamMember.IsValid", "model.team_member.is_valid.user_id.app_error", nil, "", http.StatusBadRequest)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (o *TeamMember) PreUpdate() {
|
|
}
|
|
|
|
func (o *TeamMember) GetRoles() []string {
|
|
return strings.Fields(o.Roles)
|
|
}
|