1+ const fs = require ( 'fs' )
2+ const util = require ( 'util' )
3+ const { URL } = require ( 'url' )
4+
15const { loadConfig } = require ( './common' )
26const blacklistService = require ( '../../lib/services/blacklist-service' )
7+
38const AccountManager = require ( '../../lib/models/account-manager' )
49const LDP = require ( '../../lib/ldp' )
510const SolidHost = require ( '../../lib/models/solid-host' )
@@ -15,7 +20,10 @@ module.exports = function (program) {
1520 if ( ! config . multiuser ) {
1621 return console . error ( 'You are running a single user server, no need to check for blacklisted users' )
1722 }
23+
1824 const host = SolidHost . from ( { port : config . port , serverUri : config . serverUri } )
25+ const invalidUsernames = await getInvalidUsernames ( config )
26+ console . log ( invalidUsernames )
1927
2028 const ldp = new LDP ( config )
2129 const accountManager = AccountManager . from ( {
@@ -35,6 +43,15 @@ module.exports = function (program) {
3543 } )
3644}
3745
46+ async function getInvalidUsernames ( config ) {
47+ const files = await util . promisify ( fs . readdir ) ( config . root )
48+ const hostname = new URL ( config . serverUri ) . hostname
49+ const isUserDirectory = new RegExp ( `.${ hostname } $` )
50+ return files
51+ . filter ( file => isUserDirectory . test ( file ) )
52+ . map ( userDirectory => userDirectory . substr ( 0 , userDirectory . length - hostname . length - 1 ) )
53+ }
54+
3855async function getBlacklistedUsernames ( accountManager ) {
3956 const blacklistedUsernames = [ ]
4057 await Promise . all ( blacklistService . list . map ( async ( word ) => {
0 commit comments