Skip to content

Feat/profanity filter#164

Open
nanaabdul1172 wants to merge 10 commits into
Abdulazeem-code:mainfrom
nanaabdul1172:feat/profanity-filter
Open

Feat/profanity filter#164
nanaabdul1172 wants to merge 10 commits into
Abdulazeem-code:mainfrom
nanaabdul1172:feat/profanity-filter

Conversation

@nanaabdul1172

Copy link
Copy Markdown
Contributor

closes #95

Implementation Complete ✓
The profanity filter has been successfully added to the /register route in server.js. Here's what was implemented:

Changes Made:
Package Installation: The bad-words package was already installed in the project

Filter Initialization: Added the filter at the top of the route handler:

const Filter = require('bad-words');
const filter = new Filter();
Validation Logic: Added profanity check after basic field validation but before database operations:

// Extract the username part before the * for profanity check
const usernameOnly = username.split('*')[0];
if (filter.isProfane(usernameOnly)) {
return res.status(400).json({ error: 'Username contains restricted words' });
}
How It Works:
The filter checks only the username portion (before the * domain separator)
If profanity is detected, the request is rejected with a 400 Bad Request status
The error message returned is: "Username contains restricted words"
Valid usernames proceed through the normal registration flow
Testing Recommendations:
You can test this by attempting to register with profane usernames. The filter will catch common offensive words and prevent registration, keeping your federation directory professional and compliant.

@vercel

vercel Bot commented Jun 24, 2026

Copy link
Copy Markdown

@nanaabdul1172 is attempting to deploy a commit to the Abdulazeem's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Jun 24, 2026

Copy link
Copy Markdown

@nanaabdul1172 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Abdulazeem-code

Copy link
Copy Markdown
Owner

Fix checks

@Abdulazeem-code

Copy link
Copy Markdown
Owner

Could you click the Update branch button on your end, or run git pull origin main locally and push? That will make the tests pass so I can merge this!"

nanaabdul1172 and others added 7 commits June 26, 2026 05:53
- Install bad-words package and initialise Filter at module load
- Reject usernames containing restricted words with 400 Bad Request
- Mock bad-words in server.test.js and receipts.test.js to fix Jest ESM
  parse error (badwords-list ships as ESM; Jest runs in CJS mode)
- Resolve merge conflicts: take Prisma-based server from remote branch
  and layer profanity check on top of existing length/secret-key guards
@Abdulazeem-code

Copy link
Copy Markdown
Owner

Fix backend build test error

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement a Profanity Filter for Federation Registrations

2 participants