Added websocket event and webapp handler for updating user roles (#6953)
Этот коммит содержится в:
коммит произвёл
Joram Wilander
родитель
ac5dd4aa70
Коммит
cc3a95fdd9
@@ -164,9 +164,18 @@ func UpdateTeamMemberRoles(teamId string, userId string, newRoles string) (*mode
|
|||||||
|
|
||||||
ClearSessionCacheForUser(userId)
|
ClearSessionCacheForUser(userId)
|
||||||
|
|
||||||
|
sendUpdatedMemberRoleEvent(userId, member)
|
||||||
|
|
||||||
return member, nil
|
return member, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func sendUpdatedMemberRoleEvent(userId string, member *model.TeamMember) {
|
||||||
|
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_MEMBERROLE_UPDATED, "", "", userId, nil)
|
||||||
|
message.Add("member", member.ToJson())
|
||||||
|
|
||||||
|
go Publish(message)
|
||||||
|
}
|
||||||
|
|
||||||
func AddUserToTeam(teamId string, userId string, userRequestorId string) (*model.Team, *model.AppError) {
|
func AddUserToTeam(teamId string, userId string, userRequestorId string) (*model.Team, *model.AppError) {
|
||||||
tchan := Srv.Store.Team().Get(teamId)
|
tchan := Srv.Store.Team().Get(teamId)
|
||||||
uchan := Srv.Store.User().Get(userId)
|
uchan := Srv.Store.User().Get(userId)
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ const (
|
|||||||
WEBSOCKET_EVENT_UPDATE_TEAM = "update_team"
|
WEBSOCKET_EVENT_UPDATE_TEAM = "update_team"
|
||||||
WEBSOCKET_EVENT_USER_ADDED = "user_added"
|
WEBSOCKET_EVENT_USER_ADDED = "user_added"
|
||||||
WEBSOCKET_EVENT_USER_UPDATED = "user_updated"
|
WEBSOCKET_EVENT_USER_UPDATED = "user_updated"
|
||||||
|
WEBSOCKET_EVENT_MEMBERROLE_UPDATED = "memberrole_updated"
|
||||||
WEBSOCKET_EVENT_USER_REMOVED = "user_removed"
|
WEBSOCKET_EVENT_USER_REMOVED = "user_removed"
|
||||||
WEBSOCKET_EVENT_PREFERENCE_CHANGED = "preference_changed"
|
WEBSOCKET_EVENT_PREFERENCE_CHANGED = "preference_changed"
|
||||||
WEBSOCKET_EVENT_PREFERENCES_CHANGED = "preferences_changed"
|
WEBSOCKET_EVENT_PREFERENCES_CHANGED = "preferences_changed"
|
||||||
|
|||||||
@@ -170,6 +170,10 @@ function handleEvent(msg) {
|
|||||||
handleUserUpdatedEvent(msg);
|
handleUserUpdatedEvent(msg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SocketEvents.MEMBERROLE_UPDATED:
|
||||||
|
handleUpdateMemberRoleEvent(msg);
|
||||||
|
break;
|
||||||
|
|
||||||
case SocketEvents.CHANNEL_CREATED:
|
case SocketEvents.CHANNEL_CREATED:
|
||||||
handleChannelCreatedEvent(msg);
|
handleChannelCreatedEvent(msg);
|
||||||
break;
|
break;
|
||||||
@@ -321,6 +325,11 @@ function handleUpdateTeamEvent(msg) {
|
|||||||
TeamStore.updateTeam(msg.data.team);
|
TeamStore.updateTeam(msg.data.team);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleUpdateMemberRoleEvent(msg) {
|
||||||
|
const member = JSON.parse(msg.data.member);
|
||||||
|
TeamStore.updateMyRoles(member);
|
||||||
|
}
|
||||||
|
|
||||||
function handleDirectAddedEvent(msg) {
|
function handleDirectAddedEvent(msg) {
|
||||||
getChannelAndMyMember(msg.broadcast.channel_id)(dispatch, getState);
|
getChannelAndMyMember(msg.broadcast.channel_id)(dispatch, getState);
|
||||||
PreferenceStore.setPreference(Preferences.CATEGORY_DIRECT_CHANNEL_SHOW, msg.data.teammate_id, 'true');
|
PreferenceStore.setPreference(Preferences.CATEGORY_DIRECT_CHANNEL_SHOW, msg.data.teammate_id, 'true');
|
||||||
|
|||||||
@@ -341,6 +341,22 @@ class TeamStoreClass extends EventEmitter {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateMyRoles(member) {
|
||||||
|
const teamMembers = this.getMyTeamMembers();
|
||||||
|
const teamMember = teamMembers.find((m) => m.user_id === member.user_id && m.team_id === member.team_id);
|
||||||
|
|
||||||
|
if (teamMember) {
|
||||||
|
const newMember = Object.assign({}, teamMember, {
|
||||||
|
roles: member.roles
|
||||||
|
});
|
||||||
|
|
||||||
|
store.dispatch({
|
||||||
|
type: TeamTypes.RECEIVED_MY_TEAM_MEMBER,
|
||||||
|
data: newMember
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
subtractUnread(teamId, msgs, mentions) {
|
subtractUnread(teamId, msgs, mentions) {
|
||||||
let member = this.getMyTeamMembers().filter((m) => m.team_id === teamId)[0];
|
let member = this.getMyTeamMembers().filter((m) => m.team_id === teamId)[0];
|
||||||
if (member) {
|
if (member) {
|
||||||
|
|||||||
@@ -233,6 +233,7 @@ export const SocketEvents = {
|
|||||||
USER_ADDED: 'user_added',
|
USER_ADDED: 'user_added',
|
||||||
USER_REMOVED: 'user_removed',
|
USER_REMOVED: 'user_removed',
|
||||||
USER_UPDATED: 'user_updated',
|
USER_UPDATED: 'user_updated',
|
||||||
|
MEMBERROLE_UPDATED: 'memberrole_updated',
|
||||||
TYPING: 'typing',
|
TYPING: 'typing',
|
||||||
PREFERENCE_CHANGED: 'preference_changed',
|
PREFERENCE_CHANGED: 'preference_changed',
|
||||||
PREFERENCES_CHANGED: 'preferences_changed',
|
PREFERENCES_CHANGED: 'preferences_changed',
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user