Skip to content

Commit

Permalink
add "Admin Approval for IPs", which works like Normal for new users a…
Browse files Browse the repository at this point in the history
…nd Admin Approval for sockpuppet accounts (NodeBB#4882)
  • Loading branch information
BenLubar authored and ralic committed Jul 26, 2016
1 parent 2b6ca6b commit 98cb763
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 2 deletions.
10 changes: 10 additions & 0 deletions src/controllers/authentication.js
Expand Up @@ -63,6 +63,16 @@ authenticationController.register = function(req, res, next) {
registerAndLoginUser(req, res, userData, next);
} else if (registrationType === 'admin-approval') {
addToApprovalQueue(req, userData, next);
} else if (registrationType === 'admin-approval-ip') {
db.sortedSetCard('ip:' + req.ip + ':uid', function(err, count) {
if (err) {
next(err);
} else if (count) {
addToApprovalQueue(req, userData, next);
} else {
registerAndLoginUser(req, res, userData, next);
}
});
}
}
], function(err, data) {
Expand Down
2 changes: 1 addition & 1 deletion src/controllers/index.js
Expand Up @@ -115,7 +115,7 @@ Controllers.login = function(req, res, next) {
data.alternate_logins = loginStrategies.length > 0;
data.authentication = loginStrategies;
data.allowLocalLogin = parseInt(meta.config.allowLocalLogin, 10) === 1 || parseInt(req.query.local, 10) === 1;
data.allowRegistration = registrationType === 'normal' || registrationType === 'admin-approval';
data.allowRegistration = registrationType === 'normal' || registrationType === 'admin-approval' || registrationType === 'admin-approval-ip';
data.allowLoginWith = '[[login:' + allowLoginWith + ']]';
data.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[global:login]]'}]);
data.error = req.flash('error')[0] || errorText;
Expand Down
2 changes: 1 addition & 1 deletion src/middleware/header.js
Expand Up @@ -57,7 +57,7 @@ module.exports = function(app, middleware) {
'brand:logo:url': meta.config['brand:logo:url'] || '',
'brand:logo:alt': meta.config['brand:logo:alt'] || '',
'brand:logo:display': meta.config['brand:logo']?'':'hide',
allowRegistration: registrationType === 'normal' || registrationType === 'admin-approval',
allowRegistration: registrationType === 'normal' || registrationType === 'admin-approval' || registrationType === 'admin-approval-ip',
searchEnabled: plugins.hasListeners('filter:search.query'),
config: res.locals.config,
relative_path: nconf.get('relative_path'),
Expand Down
2 changes: 2 additions & 0 deletions src/views/admin/settings/user.tpl
Expand Up @@ -124,13 +124,15 @@
<select class="form-control" data-field="registrationType">
<option value="normal">Normal</option>
<option value="admin-approval">Admin Approval</option>
<option value="admin-approval-ip">Admin Approval for IPs</option>
<option value="invite-only">Invite Only</option>
<option value="admin-invite-only">Admin Invite Only</option>
<option value="disabled">No registration</option>
</select>
<p class="help-block">
Normal - Users can register from the /register page.<br/>
Admin Approval - User registrations are placed in an <a href="{config.relative_path}/admin/manage/registration">approval queue</a> for administrators.<br/>
Admin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.<br/>
Invite Only - Users can invite others from the <a href="{config.relative_path}/users" target="_blank">users</a> page.<br/>
Admin Invite Only - Only administrators can invite others from <a href="{config.relative_path}/users" target="_blank">users</a> and <a href="{config.relative_path}/admin/manage/users">admin/manage/users</a> pages.<br/>
No registration - No user registration.<br/>
Expand Down

0 comments on commit 98cb763

Please sign in to comment.