diff --git a/bin/cli-users b/bin/cli-users index fccb4b8bb..057c0a806 100755 --- a/bin/cli-users +++ b/bin/cli-users @@ -8,6 +8,7 @@ const program = require('./commander'); const inquirer = require('inquirer'); const UsersService = require('../services/users'); const UserModel = require('../models/user'); +const USER_ROLES = require('../models/enum/user_roles'); const mongoose = require('../services/mongoose'); const util = require('./util'); const Table = require('cli-table'); @@ -36,7 +37,7 @@ function getUserCreateAnswers(options) { roles: [] }; - if (options.role && UserModel.USER_ROLES.indexOf(options.role) > -1) { + if (options.role && USER_ROLES.indexOf(options.role) > -1) { user.roles = [options.role]; } @@ -89,7 +90,7 @@ function getUserCreateAnswers(options) { name: 'roles', message: 'User Role', type: 'checkbox', - choices: UserModel.USER_ROLES + choices: USER_ROLES } ]); } @@ -291,8 +292,8 @@ function mergeUsers(dstUserID, srcUserID) { */ function addRole(userID, role) { - if (UserModel.USER_ROLES.indexOf(role) === -1) { - console.error(`Role '${role}' is not supported. Supported roles are ${UserModel.USER_ROLES.join(', ')}.`); + if (USER_ROLES.indexOf(role) === -1) { + console.error(`Role '${role}' is not supported. Supported roles are ${USER_ROLES.join(', ')}.`); util.shutdown(1); return; } @@ -316,8 +317,8 @@ function addRole(userID, role) { */ function removeRole(userID, role) { - if (UserModel.USER_ROLES.indexOf(role) === -1) { - console.error(`Role '${role}' is not supported. Supported roles are ${UserModel.USER_ROLES.join(', ')}.`); + if (USER_ROLES.indexOf(role) === -1) { + console.error(`Role '${role}' is not supported. Supported roles are ${USER_ROLES.join(', ')}.`); util.shutdown(1); return; } diff --git a/client/coral-embed/src/index.js b/client/coral-embed/src/index.js index 65e77ad1d..14de2756e 100644 --- a/client/coral-embed/src/index.js +++ b/client/coral-embed/src/index.js @@ -54,6 +54,12 @@ function configurePymParent(pymParent, opts) { pymParent.sendMessage('config', JSON.stringify(config)); } + pymParent.onMessage('coral-auth-changed', function(message) { + if (opts.onAuthChanged) { + opts.onAuthChanged(message ? JSON.parse(message) : null); + } + }); + // Sends config to the child pymParent.onMessage('getConfig', function() { sendConfig(opts || {}); diff --git a/client/coral-framework/actions/auth.js b/client/coral-framework/actions/auth.js index eaaee3034..614b87632 100644 --- a/client/coral-framework/actions/auth.js +++ b/client/coral-framework/actions/auth.js @@ -3,6 +3,7 @@ import bowser from 'bowser'; import * as actions from '../constants/auth'; import * as Storage from '../helpers/storage'; import coralApi, {base} from '../helpers/request'; +import pym from '../services/PymConnection'; import {resetWebsocket} from 'coral-framework/services/client'; import t from 'coral-framework/services/i18n'; @@ -284,6 +285,7 @@ export const logout = () => (dispatch) => { resetWebsocket(); dispatch({type: actions.LOGOUT}); + pym.sendMessage('coral-auth-changed'); }); }; @@ -315,6 +317,7 @@ export const checkLogin = () => (dispatch) => { resetWebsocket(); dispatch(checkLoginSuccess(result.user)); + pym.sendMessage('coral-auth-changed', JSON.stringify(result.user)); // Display create username dialog if necessary. if (result.user.canEditName && result.user.status !== 'BANNED') { diff --git a/package.json b/package.json index 4295f5c25..1109acf7b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "talk", - "version": "2.0.0", + "version": "2.0.1", "description": "A better commenting experience from Mozilla, The New York Times, and the Washington Post. https://coralproject.net", "main": "app.js", "scripts": {