diff --git a/client/App.vue b/client/App.vue index 2973b7df4ff422f368eb6ae4a0408452cbdcb165..cde88092df55dbe9fd943761d561456da5aa2a65 100644 --- a/client/App.vue +++ b/client/App.vue @@ -29,11 +29,11 @@ <h4>Add external users</h4> <p>Employees and students are allowed to create external users for collaboration with actors outside of Linköpings University.<br/> This application will track and allow creation of such external users, up to a number configurable by the administrators.<br/></p> - <button class="btn btn-success" :disabled="user.eum_settings.external_limit > 0 && external.length >= user.eum_settings.external_limit" @click="showCreationForm = !showCreationForm">New External User</button> + <button class="btn btn-success" :disabled="user.eum_settings.external_limit >= 0 && external.length >= user.eum_settings.external_limit" @click="showCreationForm = !showCreationForm">New External User</button> </div> </transition> - <h2 class="mt-4 mb-3">Existing external users: ({{ external.length }}/<span v-if="user.eum_settings.external_limit > 0">{{ user.eum_settings.external_limit }}</span><span v-else>∞</span>)</h2> + <h2 class="mt-4 mb-3">Existing external users: ({{ external.length }}/<span v-if="user.eum_settings.external_limit >= 0">{{ user.eum_settings.external_limit }}</span><span v-else>∞</span>)</h2> <hr/> <transition name="fade" mode="out-in"> <ul class="list-unstyled" is="transition-group" name="flip-list" v-if="external"> diff --git a/server/users.js b/server/users.js index 078b8bf6959415eeec59303f9ea5e34d13f74f4b..71ba3c1757e750131e102f4e09a528f844161d26 100644 --- a/server/users.js +++ b/server/users.js @@ -40,6 +40,10 @@ router.post('/', async (req, res) => { .reduce( (rs, key) => (rs[key] = req.body[key], rs), {} ) ) + if (req.user.eum_settings.external_limit == 0) { + return res.status(401).send({ 'message': 'No external users allowed' }); + } + if (req.user.eum_settings.external_limit > 0) { try { const queryText = 'SELECT * FROM external_users WHERE owner_id = $1';