Node.js based forum software built for the modern web
101 matches across 7 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | public/src/modules/helpers.common.js | 122 | function generateCategoryBackground(category) { |
| LOW | public/src/modules/helpers.common.js | 147 | function generateChildrenCategories(category) { |
| LOW | public/src/modules/navigator.js | 183 | async function updateThumbTimestampToIndex(thumb, index) { |
| LOW | public/src/modules/chat.js | 465 | function makeModalResizeableDraggable(chatModal, uuid) { |
| LOW | public/src/modules/notifications.js | 128 | function scrollToPostIndexIfOnPage(notifEl) { |
| LOW | public/src/modules/messages.js | 28 | function hideAlertAndGotoEditEmail() { |
| LOW | public/src/client/post-queue.js | 32 | function replaceRelativeUploadPath(url) { |
| LOW | public/src/client/category.js | 99 | function handleLoadMoreSubcategories() { |
| LOW | public/src/client/groups/memberlist.js | 109 | function handleMemberInfiniteScroll() { |
| LOW | public/src/client/groups/details.js | 299 | function updatePendingAlertVisibility() { |
| LOW | public/src/client/groups/details.js | 306 | function updateInviteAlertVisibility() { |
| LOW | public/src/client/topic/events.js | 68 | function updatePostVotesAndUserReputation(data) { |
| LOW | public/src/client/topic/posts.js | 57 | function updateNavigatorLastPostTimestamp(post) { |
| LOW | public/src/client/topic/posts.js | 429 | function hidePostToolsForDeletedPosts(posts) { |
| LOW | public/src/client/account/settings.js | 229 | function handleNotificationToggles() { |
| LOW | src/flags.js | 1028 | async function mergeUsernameEmailChanges(history, targetUid, uids) { |
| LOW | src/install.js | 413 | async function createGlobalModeratorsGroup() { |
| LOW | src/notifications.js | 28 | function getOrCreateCache() { |
| LOW | src/middleware/user.js | 314 | async function requiresEmailConfirmation(req) { |
| LOW | src/middleware/render.js | 150 | async function loadClientHeaderFooterData(req, res, options) { |
| LOW | src/middleware/render.js | 255 | async function loadAdminHeaderFooterData(req, res, options) { |
| LOW | src/database/index.js | 40 | function promisifySessionStoreMethod(method, sid) { |
| LOW | src/database/mongo/sorted.js | 382 | async function getSortedSetsMembersWithScores(keys, withScores) { |
| LOW | src/posts/delete.js | 97 | async function deleteFromTopicUserNotification(postData) { |
| LOW | src/posts/delete.js | 169 | async function deleteFromCategoryRecentPosts(postData) { |
| LOW | src/user/posts.js | 152 | async function incrementUserFieldAndSetBy(uid, field, set, value) { |
| LOW | src/user/auth.js | 112 | async function revokeSessionsAboveThreshold(activeSids, uid) { |
| LOW | src/user/delete.js | 185 | async function deleteUserFromFollowedTopics(uid) { |
| LOW | src/user/delete.js | 190 | async function deleteUserFromIgnoredTopics(uid) { |
| LOW | src/user/delete.js | 195 | async function deleteUserFromFollowedTags(uid) { |
| LOW | src/user/picture.js | 212 | function generateProfileImageFilename(uid, extension) { |
| LOW | src/user/picture.js | 262 | async function getPicturePathFromUserField(uid, field) { |
| LOW | src/user/approval.js | 144 | async function getRegistrationQueuedMessage() { |
| LOW | src/groups/invite.js | 83 | async function inviteOrRequestMembership(groupName, uids, type) { |
| LOW | src/groups/delete.js | 52 | async function removeGroupsFromPrivilegeGroups(groupNames) { |
| LOW | src/cli/package-install.js | 96 | function getPackageManagerByLockfile() { |
| LOW | src/privileges/helpers.js | 126 | async function isSystemGroupAllowedToCids(privilege, uid, cids) { |
| LOW | src/privileges/helpers.js | 131 | async function isSystemGroupAllowedToPrivileges(privileges, uid, cid) { |
| LOW | src/socket.io/admin/categories.js | 21 | async function copyPrivilegesToChildrenRecursive(parentCid, category, group, filter) { |
| LOW | src/api/users.js | 506 | async function isPrivilegedOrSelfAndPasswordMatch(caller, data) { |
| LOW | src/controllers/search.js | 207 | async function buildSelectedCategoryLabel(selectedCids) { |
| LOW | src/controllers/admin/admins-mods.js | 47 | async function getModeratorsOfCategories(categoryData) { |
| LOW | src/categories/create.js | 134 | async function duplicateCategoriesChildren(parentCid, cid, uid) { |
| LOW | src/routes/feeds.js | 41 | async function validateTokenIfRequiresLogin(requiresLogin, cid, req, res) { |
| LOW | src/routes/feeds.js | 330 | async function generateForCategoryRecentPosts(req, res) { |
| LOW | src/topics/unread.js | 241 | async function filterTidsThatHaveBlockedPosts(params) { |
| LOW | src/topics/unread.js | 258 | async function doesTidHaveUnblockedUnreadPosts(tid, params) { |
| LOW | src/topics/posts.js | 322 | async function incrementFieldAndUpdateSortedSet(tid, field, by, set) { |
| LOW | src/topics/delete.js | 151 | async function deleteFromFollowersIgnorers(tids) { |
| LOW | src/topics/delete.js | 192 | async function deleteTopicsFromCategoryAndUser(topicsData) { |
| LOW | src/topics/index.js | 234 | function mergeConsecutiveShareEvents(arr) { |
| LOW | src/topics/sorted.js | 135 | async function getTidsWithMostPostsInTerm({ cids, uid, term, includeRemote }) { |
| LOW | src/topics/teaser.js | 114 | async function getPreviousNonBlockedPost(postData, blockedUids) { |
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | public/src/ajaxify.js | 312 | ajaxify.data._header.tags.meta.forEach(async (tagObj) => { |
| CRITICAL | public/src/ajaxify.js | 333 | ajaxify.data._header.tags.link.forEach(async (tagObj) => { |
| CRITICAL | public/src/admin/manage/privileges.js | 418 | const privilegeSet = ajaxify.data.privileges.keys.groups.reduce(function (memo, cur, index) { |
| CRITICAL | public/src/admin/manage/privileges.js | 457 | const privilegeSet = ajaxify.data.privileges.keys.users.reduce(function (memo, cur, index) { |
| CRITICAL | src/socket.io/index.js | 310 | const roomMap = Sockets.server.sockets.adapter.rooms.get(room); |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | test/flags.js | 1019 | note: 'lorem ipsum dolor sit amet', |
| LOW | test/flags.js | 1019 | note: 'lorem ipsum dolor sit amet', |
| LOW | test/flags.js | 1026 | assert.strictEqual('lorem ipsum dolor sit amet', response.notes[0].content); |
| LOW | test/flags.js | 1026 | assert.strictEqual('lorem ipsum dolor sit amet', response.notes[0].content); |
| LOW | test/user.js | 198 | username: 'Jane Doe', |
| LOW | test/user.js | 208 | username: 'Jane Doe', |
| LOW | test/user.js | 290 | content: 'lorem ipsum', |
| LOW | test/user.js | 307 | content: 'lorem ipsum', |
| LOW | test/user.js | 324 | content: 'lorem ipsum', |
| LOW | test/user.js | 2177 | User.deleteInvitation('doesnotexist', 'test@test.com', (err) => { |
| LOW | test/user.js | 2538 | content: 'lorem ipsum', |
| LOW | test/translator.js | 323 | Translator.removePatterns('Lorem ipsum dolor [[sit:amet]], consectetur adipiscing elit. [[sed:vitae, [[semper:dolor] |
| LOW | test/translator.js | 324 | 'Lorem ipsum dolor , consectetur adipiscing elit. lorem' |
| LOW | test/activitypub.js | 385 | content: 'Lorem ipsum dolor sit amet', |
| LOW | test/activitypub.js | 385 | content: 'Lorem ipsum dolor sit amet', |
| LOW | test/activitypub/notes.js | 250 | content: 'Guaranteed to be more than 500 characters.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit. I |
| LOW | test/activitypub/notes.js | 250 | content: 'Guaranteed to be more than 500 characters.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit. I |
| LOW | test/activitypub/actors.js | 606 | content: 'Lorem ipsum dolor sit amet', |
| LOW | test/activitypub/actors.js | 606 | content: 'Lorem ipsum dolor sit amet', |
| LOW | test/activitypub/actors.js | 639 | content: 'Lorem ipsum dolor sit amet', |
| LOW | test/activitypub/actors.js | 639 | content: 'Lorem ipsum dolor sit amet', |
| LOW | test/activitypub/actors.js | 677 | content: 'Lorem ipsum dolor sit amet', |
| LOW | test/activitypub/actors.js | 677 | content: 'Lorem ipsum dolor sit amet', |
| LOW | test/activitypub/actors.js | 708 | content: 'Lorem ipsum dolor sit amet', |
| LOW | test/activitypub/actors.js | 708 | content: 'Lorem ipsum dolor sit amet', |
| LOW | test/activitypub/mocks.js | 37 | content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.\ |
| LOW | test/activitypub/mocks.js | 37 | content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.\ |
| LOW | test/activitypub/mocks.js | 53 | content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.\ |
| LOW | test/activitypub/mocks.js | 53 | content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.\ |
| LOW | test/activitypub/mocks.js | 78 | assert.strictEqual(this.withBreak.summary, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.\ |
| LOW | test/activitypub/mocks.js | 78 | assert.strictEqual(this.withBreak.summary, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.\ |
| LOW | test/activitypub/mocks.js | 101 | assert.strictEqual(mocked.summary, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.\ |
| LOW | test/activitypub/mocks.js | 101 | assert.strictEqual(mocked.summary, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.\ |
| LOW | test/activitypub/mocks.js | 123 | assert.strictEqual(mocked.summary, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. [...]'); |
| LOW | test/activitypub/mocks.js | 123 | assert.strictEqual(mocked.summary, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. [...]'); |
| LOW | test/activitypub/mocks.js | 148 | content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' + |
| LOW | test/activitypub/mocks.js | 148 | content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' + |
| LOW | public/openapi/write/categories.yaml | 40 | example: Lorem ipsum, dolor sit amet |
| LOW | public/openapi/write/categories.yaml | 40 | example: Lorem ipsum, dolor sit amet |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | install/docker/entrypoint.sh | 178 | # Create a local array to work with |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | install/docker/entrypoint.sh | 56 | # Check if source and destination files are the same |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | public/scss/overrides.scss | 1 | // global bs5 overrides if necessary |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | public/src/client/topic/postTools.js | 376 | function getData(button, data) { |