mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-06-19 20:21:22 +02:00
refactor: switch to using slugify module
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
const meta = require('../meta');
|
||||
const plugins = require('../plugins');
|
||||
const utils = require('../utils');
|
||||
const slugify = require('../slugify');
|
||||
const db = require('../database');
|
||||
|
||||
module.exports = function (Groups) {
|
||||
@@ -27,7 +27,7 @@ module.exports = function (Groups) {
|
||||
const isPrivate = data.hasOwnProperty('private') && data.private !== undefined ? parseInt(data.private, 10) === 1 : true;
|
||||
let groupData = {
|
||||
name: data.name,
|
||||
slug: utils.slugify(data.name),
|
||||
slug: slugify(data.name),
|
||||
createtime: timestamp,
|
||||
userTitle: data.userTitle || data.name,
|
||||
userTitleEnabled: parseInt(data.userTitleEnabled, 10) === 1 ? 1 : 0,
|
||||
@@ -88,7 +88,7 @@ module.exports = function (Groups) {
|
||||
throw new Error('[[error:invalid-group-name]]');
|
||||
}
|
||||
|
||||
if (name.includes('/') || !utils.slugify(name)) {
|
||||
if (name.includes('/') || !slugify(name)) {
|
||||
throw new Error('[[error:invalid-group-name]]');
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
const plugins = require('../plugins');
|
||||
const utils = require('../utils');
|
||||
const slugify = require('../slugify');
|
||||
const db = require('../database');
|
||||
const batch = require('../batch');
|
||||
|
||||
@@ -27,7 +27,7 @@ module.exports = function (Groups) {
|
||||
);
|
||||
});
|
||||
const sets = groupNames.map(groupName => groupName.toLowerCase() + ':' + groupName);
|
||||
const fields = groupNames.map(groupName => utils.slugify(groupName));
|
||||
const fields = groupNames.map(groupName => slugify(groupName));
|
||||
|
||||
await Promise.all([
|
||||
db.deleteAll(keys),
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
const user = require('../user');
|
||||
const db = require('../database');
|
||||
const plugins = require('../plugins');
|
||||
const utils = require('../utils');
|
||||
const slugify = require('../slugify');
|
||||
|
||||
const Groups = module.exports;
|
||||
|
||||
@@ -28,7 +28,7 @@ Groups.ephemeralGroups = ['guests', 'spiders'];
|
||||
Groups.getEphemeralGroup = function (groupName) {
|
||||
return {
|
||||
name: groupName,
|
||||
slug: utils.slugify(groupName),
|
||||
slug: slugify(groupName),
|
||||
description: '',
|
||||
deleted: '0',
|
||||
hidden: '0',
|
||||
@@ -217,12 +217,12 @@ async function isFieldOn(groupName, field) {
|
||||
|
||||
Groups.exists = async function (name) {
|
||||
if (Array.isArray(name)) {
|
||||
const slugs = name.map(groupName => utils.slugify(groupName));
|
||||
const slugs = name.map(groupName => slugify(groupName));
|
||||
const isMembersOfRealGroups = await db.isSortedSetMembers('groups:createtime', name);
|
||||
const isMembersOfEphemeralGroups = slugs.map(slug => Groups.ephemeralGroups.includes(slug));
|
||||
return name.map((n, index) => isMembersOfRealGroups[index] || isMembersOfEphemeralGroups[index]);
|
||||
}
|
||||
const slug = utils.slugify(name);
|
||||
const slug = slugify(name);
|
||||
const isMemberOfRealGroups = await db.isSortedSetMember('groups:createtime', name);
|
||||
const isMemberOfEphemeralGroups = Groups.ephemeralGroups.includes(slug);
|
||||
return isMemberOfRealGroups || isMemberOfEphemeralGroups;
|
||||
|
||||
@@ -4,7 +4,7 @@ const _ = require('lodash');
|
||||
|
||||
const db = require('../database');
|
||||
const user = require('../user');
|
||||
const utils = require('../utils');
|
||||
const slugify = require('../slugify');
|
||||
const plugins = require('../plugins');
|
||||
const notifications = require('../notifications');
|
||||
|
||||
@@ -18,7 +18,7 @@ module.exports = function (Groups) {
|
||||
bodyShort: '[[groups:request.notification_title, ' + username + ']]',
|
||||
bodyLong: '[[groups:request.notification_text, ' + username + ', ' + groupName + ']]',
|
||||
nid: 'group:' + groupName + ':uid:' + uid + ':request',
|
||||
path: '/groups/' + utils.slugify(groupName),
|
||||
path: '/groups/' + slugify(groupName),
|
||||
from: uid,
|
||||
}),
|
||||
Groups.getOwners(groupName),
|
||||
@@ -35,7 +35,7 @@ module.exports = function (Groups) {
|
||||
type: 'group-invite',
|
||||
bodyShort: '[[groups:membership.accept.notification_title, ' + groupName + ']]',
|
||||
nid: 'group:' + groupName + ':uid:' + uid + ':invite-accepted',
|
||||
path: '/groups/' + utils.slugify(groupName),
|
||||
path: '/groups/' + slugify(groupName),
|
||||
});
|
||||
await notifications.push(notification, [uid]);
|
||||
};
|
||||
@@ -58,7 +58,7 @@ module.exports = function (Groups) {
|
||||
bodyShort: '[[groups:invited.notification_title, ' + groupName + ']]',
|
||||
bodyLong: '',
|
||||
nid: 'group:' + groupName + ':uid:' + uid + ':invite',
|
||||
path: '/groups/' + utils.slugify(groupName),
|
||||
path: '/groups/' + slugify(groupName),
|
||||
})));
|
||||
|
||||
await Promise.all(uids.map((uid, index) => notifications.push(notificationData[index], uid)));
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
const winston = require('winston');
|
||||
|
||||
const plugins = require('../plugins');
|
||||
const utils = require('../utils');
|
||||
const slugify = require('../slugify');
|
||||
const db = require('../database');
|
||||
const user = require('../user');
|
||||
const batch = require('../batch');
|
||||
@@ -132,8 +132,8 @@ module.exports = function (Groups) {
|
||||
if (Groups.isPrivilegeGroup(newName)) {
|
||||
throw new Error('[[error:invalid-group-name]]');
|
||||
}
|
||||
const currentSlug = utils.slugify(currentName);
|
||||
const newSlug = utils.slugify(newName);
|
||||
const currentSlug = slugify(currentName);
|
||||
const newSlug = slugify(newName);
|
||||
if (currentName === newName || currentSlug === newSlug) {
|
||||
return;
|
||||
}
|
||||
@@ -174,9 +174,9 @@ module.exports = function (Groups) {
|
||||
await updateNavigationItems(oldName, newName);
|
||||
await updateWidgets(oldName, newName);
|
||||
await updateConfig(oldName, newName);
|
||||
await db.setObject('group:' + oldName, { name: newName, slug: utils.slugify(newName) });
|
||||
await db.setObject('group:' + oldName, { name: newName, slug: slugify(newName) });
|
||||
await db.deleteObjectField('groupslug:groupname', group.slug);
|
||||
await db.setObjectField('groupslug:groupname', utils.slugify(newName), newName);
|
||||
await db.setObjectField('groupslug:groupname', slugify(newName), newName);
|
||||
|
||||
const allGroups = await db.getSortedSetRange('groups:createtime', 0, -1);
|
||||
const keys = allGroups.map(group => 'group:' + group + ':members');
|
||||
|
||||
Reference in New Issue
Block a user