mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: show proper message on invite error
This commit is contained in:
parent
2470a0adbe
commit
4c86758f74
@ -149,6 +149,7 @@ export default Ember.Controller.extend(ModalFunctionality, {
|
|||||||
|
|
||||||
createInvite() {
|
createInvite() {
|
||||||
const Invite = require('discourse/models/invite').default;
|
const Invite = require('discourse/models/invite').default;
|
||||||
|
const self = this;
|
||||||
|
|
||||||
if (this.get('disabled')) { return; }
|
if (this.get('disabled')) { return; }
|
||||||
|
|
||||||
@ -168,11 +169,19 @@ export default Ember.Controller.extend(ModalFunctionality, {
|
|||||||
} else if (this.get('isMessage') && result && result.user) {
|
} else if (this.get('isMessage') && result && result.user) {
|
||||||
this.get('model.details.allowed_users').pushObject(result.user);
|
this.get('model.details.allowed_users').pushObject(result.user);
|
||||||
}
|
}
|
||||||
}).catch(() => model.setProperties({ saving: false, error: true }));
|
}).catch(function(e) {
|
||||||
|
if (e.jqXHR.responseJSON && e.jqXHR.responseJSON.errors) {
|
||||||
|
self.set("errorMessage", e.jqXHR.responseJSON.errors[0]);
|
||||||
|
} else {
|
||||||
|
self.set("errorMessage", self.get('isMessage') ? I18n.t('topic.invite_private.error') : I18n.t('topic.invite_reply.error'));
|
||||||
|
}
|
||||||
|
model.setProperties({ saving: false, error: true })
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
generateInvitelink() {
|
generateInvitelink() {
|
||||||
const Invite = require('discourse/models/invite').default;
|
const Invite = require('discourse/models/invite').default;
|
||||||
|
const self = this;
|
||||||
|
|
||||||
if (this.get('disabled')) { return; }
|
if (this.get('disabled')) { return; }
|
||||||
|
|
||||||
@ -193,7 +202,14 @@ export default Ember.Controller.extend(ModalFunctionality, {
|
|||||||
userInvitedController.set('model', invite_model);
|
userInvitedController.set('model', invite_model);
|
||||||
userInvitedController.set('totalInvites', invite_model.invites.length);
|
userInvitedController.set('totalInvites', invite_model.invites.length);
|
||||||
});
|
});
|
||||||
}).catch(() => model.setProperties({ saving: false, error: true }));
|
}).catch(function(e) {
|
||||||
|
if (e.jqXHR.responseJSON && e.jqXHR.responseJSON.errors) {
|
||||||
|
self.set("errorMessage", e.jqXHR.responseJSON.errors[0]);
|
||||||
|
} else {
|
||||||
|
self.set("errorMessage", self.get('isMessage') ? I18n.t('topic.invite_private.error') : I18n.t('topic.invite_reply.error'));
|
||||||
|
}
|
||||||
|
model.setProperties({ saving: false, error: true })
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,11 +41,15 @@ class InvitesController < ApplicationController
|
|||||||
guardian.ensure_can_send_multiple_invites!(current_user)
|
guardian.ensure_can_send_multiple_invites!(current_user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
begin
|
||||||
if Invite.invite_by_email(params[:email], current_user, _topic=nil, group_ids)
|
if Invite.invite_by_email(params[:email], current_user, _topic=nil, group_ids)
|
||||||
render json: success_json
|
render json: success_json
|
||||||
else
|
else
|
||||||
render json: failed_json, status: 422
|
render json: failed_json, status: 422
|
||||||
end
|
end
|
||||||
|
rescue => e
|
||||||
|
render json: {errors: [e.message]}, status: 422
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_invite_link
|
def create_invite_link
|
||||||
@ -59,12 +63,16 @@ class InvitesController < ApplicationController
|
|||||||
guardian.ensure_can_send_multiple_invites!(current_user)
|
guardian.ensure_can_send_multiple_invites!(current_user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
begin
|
||||||
# generate invite link
|
# generate invite link
|
||||||
if invite_link = Invite.generate_invite_link(params[:email], current_user, topic, group_ids)
|
if invite_link = Invite.generate_invite_link(params[:email], current_user, topic, group_ids)
|
||||||
render_json_dump(invite_link)
|
render_json_dump(invite_link)
|
||||||
else
|
else
|
||||||
render json: failed_json, status: 422
|
render json: failed_json, status: 422
|
||||||
end
|
end
|
||||||
|
rescue => e
|
||||||
|
render json: {errors: [e.message]}, status: 422
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_disposable_invite
|
def create_disposable_invite
|
||||||
|
@ -326,6 +326,7 @@ class TopicsController < ApplicationController
|
|||||||
group_ids = Group.lookup_group_ids(params)
|
group_ids = Group.lookup_group_ids(params)
|
||||||
guardian.ensure_can_invite_to!(topic,group_ids)
|
guardian.ensure_can_invite_to!(topic,group_ids)
|
||||||
|
|
||||||
|
begin
|
||||||
if topic.invite(current_user, username_or_email, group_ids)
|
if topic.invite(current_user, username_or_email, group_ids)
|
||||||
user = User.find_by_username_or_email(username_or_email)
|
user = User.find_by_username_or_email(username_or_email)
|
||||||
if user
|
if user
|
||||||
@ -336,6 +337,9 @@ class TopicsController < ApplicationController
|
|||||||
else
|
else
|
||||||
render json: failed_json, status: 422
|
render json: failed_json, status: 422
|
||||||
end
|
end
|
||||||
|
rescue => e
|
||||||
|
render json: {errors: [e.message]}, status: 422
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_notifications
|
def set_notifications
|
||||||
|
Loading…
Reference in New Issue
Block a user