@@ -36,7 +36,7 @@ router.post('/login', async (req, res) => {
3636 }
3737
3838 const user = users [ 0 ] ;
39- if ( user . restricted ) {
39+ if ( user . auth_restricted ) {
4040 return res . status ( 403 ) . json ( { error : 'Your account has been restricted. Contact support for assistance.' } ) ;
4141 }
4242 if ( ! user . is_admin ) {
@@ -266,7 +266,7 @@ router.get('/users/:id', authenticateToken, requireAdmin, async (req, res) => {
266266 }
267267
268268 const users = await query (
269- 'SELECT id, email, username, is_admin, restricted, ptero_user_id, ptero_client_api_key, created_at FROM users WHERE id = ?' ,
269+ 'SELECT id, email, username, is_admin, restricted, auth_restricted, ptero_user_id, ptero_client_api_key, created_at FROM users WHERE id = ?' ,
270270 [ userId ]
271271 ) ;
272272 if ( users . length === 0 ) {
@@ -331,6 +331,33 @@ router.post('/users/:id/toggle-restriction', authenticateToken, requireAdmin, as
331331 }
332332} ) ;
333333
334+ router . post ( '/users/:id/toggle-auth-restriction' , authenticateToken , requireAdmin , async ( req , res ) => {
335+ try {
336+ const userId = parseInt ( req . params . id , 10 ) ;
337+ if ( isNaN ( userId ) ) {
338+ return res . status ( 400 ) . json ( { error : 'Invalid user ID' } ) ;
339+ }
340+
341+ if ( userId === req . user . userId ) {
342+ return res . status ( 400 ) . json ( { error : 'You cannot restrict your own auth' } ) ;
343+ }
344+
345+ const users = await query ( 'SELECT auth_restricted FROM users WHERE id = ?' , [ userId ] ) ;
346+ if ( users . length === 0 ) {
347+ return res . status ( 404 ) . json ( { error : 'User not found' } ) ;
348+ }
349+
350+ const newStatus = users [ 0 ] . auth_restricted ? 0 : 1 ;
351+ await query ( 'UPDATE users SET auth_restricted = ? WHERE id = ?' , [ newStatus , userId ] ) ;
352+
353+ await logActivity ( req . user . userId , 'admin_toggle_auth_restriction' , `${ newStatus ? 'Auth restricted' : 'Auth unrestricted' } user #${ userId } ` ) ;
354+ res . json ( { success : true , auth_restricted : ! ! newStatus } ) ;
355+ } catch ( err ) {
356+ console . error ( 'Admin toggle-auth-restriction error:' , err . message ) ;
357+ res . status ( 500 ) . json ( { error : 'Failed to toggle auth restriction status' } ) ;
358+ }
359+ } ) ;
360+
334361router . post ( '/users/:id/toggle-admin' , authenticateToken , requireAdmin , async ( req , res ) => {
335362 try {
336363 const userId = parseInt ( req . params . id , 10 ) ;
0 commit comments