fixed a bug with system emojis that contained aliases
This commit is contained in:
parent
d99ed95cd5
commit
e7d0560bd3
@ -1536,10 +1536,6 @@ func (p *Plugin) getUserBadges(w http.ResponseWriter, r *http.Request, actingUse
|
|||||||
p.mm.Log.Debug("Error getting the badges for user", "error", err, "user", userID)
|
p.mm.Log.Debug("Error getting the badges for user", "error", err, "user", userID)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, ub := range badges {
|
|
||||||
p.sanitizeBadgeEmoji(&ub.Badge)
|
|
||||||
}
|
|
||||||
|
|
||||||
b, _ := json.Marshal(badges)
|
b, _ := json.Marshal(badges)
|
||||||
_, _ = w.Write(b)
|
_, _ = w.Write(b)
|
||||||
}
|
}
|
||||||
@ -1568,7 +1564,6 @@ func (p *Plugin) getBadgeDetails(w http.ResponseWriter, r *http.Request, actingU
|
|||||||
|
|
||||||
resp := BadgeDetailsResponse{BadgeDetails: badge}
|
resp := BadgeDetailsResponse{BadgeDetails: badge}
|
||||||
if badge != nil {
|
if badge != nil {
|
||||||
p.sanitizeBadgeEmoji(&badge.Badge)
|
|
||||||
actingUser, userErr := p.mm.User.Get(actingUserID)
|
actingUser, userErr := p.mm.User.Get(actingUserID)
|
||||||
if userErr == nil {
|
if userErr == nil {
|
||||||
bt, typeErr := p.store.GetType(badge.Type)
|
bt, typeErr := p.store.GetType(badge.Type)
|
||||||
@ -1588,10 +1583,6 @@ func (p *Plugin) getAllBadges(w http.ResponseWriter, r *http.Request, actingUser
|
|||||||
p.mm.Log.Debug("Cannot get all badges", "error", err)
|
p.mm.Log.Debug("Cannot get all badges", "error", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, ab := range badges {
|
|
||||||
p.sanitizeBadgeEmoji(&ab.Badge)
|
|
||||||
}
|
|
||||||
|
|
||||||
b, _ := json.Marshal(badges)
|
b, _ := json.Marshal(badges)
|
||||||
_, _ = w.Write(b)
|
_, _ = w.Write(b)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -140,27 +140,6 @@ func dumpObject(o interface{}) {
|
|||||||
fmt.Println(string(b))
|
fmt.Println(string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
const fallbackEmoji = "question"
|
|
||||||
|
|
||||||
// sanitizeBadgeEmoji checks if a badge's custom emoji still exists.
|
|
||||||
// If the emoji was deleted, it replaces it with a fallback and persists the change.
|
|
||||||
func (p *Plugin) sanitizeBadgeEmoji(badge *badgesmodel.Badge) {
|
|
||||||
if badge.ImageType != badgesmodel.ImageTypeEmoji {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if _, ok := model.SystemEmojis[badge.Image]; ok {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
_, appErr := p.API.GetEmojiByName(badge.Image)
|
|
||||||
if appErr == nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
badge.Image = fallbackEmoji
|
|
||||||
if err := p.store.UpdateBadge(badge); err != nil {
|
|
||||||
p.mm.Log.Warn("Failed to replace deleted emoji on badge", "badge_id", badge.ID, "error", err.Error())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *Plugin) notifyGrant(badgeID badgesmodel.BadgeID, granter string, granted *model.User, inChannel bool, channelID string, reason string) {
|
func (p *Plugin) notifyGrant(badgeID badgesmodel.BadgeID, granter string, granted *model.User, inChannel bool, channelID string, reason string) {
|
||||||
b, errBadge := p.store.GetBadgeDetails(badgeID)
|
b, errBadge := p.store.GetBadgeDetails(badgeID)
|
||||||
granterUser, errUser := p.mm.User.Get(granter)
|
granterUser, errUser := p.mm.User.Get(granter)
|
||||||
|
|||||||
@ -14,6 +14,8 @@ interface ComponentProps {
|
|||||||
emojiStyle?: React.CSSProperties;
|
emojiStyle?: React.CSSProperties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const FALLBACK_EMOJI = 'question';
|
||||||
|
|
||||||
const RenderEmoji = ({emojiName, emojiStyle, size}: ComponentProps) => {
|
const RenderEmoji = ({emojiName, emojiStyle, size}: ComponentProps) => {
|
||||||
const emojiMap = useSelector((state: GlobalState) => getEmojiMap(state));
|
const emojiMap = useSelector((state: GlobalState) => getEmojiMap(state));
|
||||||
|
|
||||||
@ -21,10 +23,13 @@ const RenderEmoji = ({emojiName, emojiStyle, size}: ComponentProps) => {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const emojiFromMap = emojiMap.get(emojiName);
|
let emojiFromMap = emojiMap.get(emojiName);
|
||||||
|
if (!emojiFromMap) {
|
||||||
|
emojiFromMap = emojiMap.get(FALLBACK_EMOJI);
|
||||||
if (!emojiFromMap) {
|
if (!emojiFromMap) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
const emojiImageUrl = getEmojiImageUrl(emojiFromMap);
|
const emojiImageUrl = getEmojiImageUrl(emojiFromMap);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user