*/ class ParTCP_Access_Messages { static function handle_access_request( $message, $receipt ){ global $Access, $FileSystem, $Timestamp; list ( $ptcpId ) = explode( '@', $message->get('From') ); if ( $Access->user_exists( $ptcpId ) ){ $receipt->set_rejection( 51, sprintf( _('Access for %s is already granted'), $ptcpId ) ); return $receipt->dump( TRUE ); } $result = $Access->enqueue_request( $ptcpId ); if ( ! empty( $result['error'] ) ){ if ( $result['error'] == -1 ){ $receipt->set_rejection( 52, sprintf( _('Access request for %s has already been queued'), $ptcpId ) ); return $receipt->dump( TRUE ); } else { $receipt->set_failure( sprintf( _('Access request for %s could not be queued'), $ptcpId ) . " ({$result['error']})" ); return $receipt->dump( TRUE ); } } $receipt->set( 'Message-Type', 'access-grant' ); $receipt->set( 'User', $result['user'] ); $receipt->set( 'Password', $result['password'], TRUE ); $receipt->set( 'Notice', $result['notice'] ); $receiptString = $receipt->dump( TRUE ); $fileName = date( 'Ymd-His', $Timestamp ) . "-{$ptcpId}"; $FileSystem->put_contents( "access_requests/{$fileName}", $receiptString ); return $receiptString; } } // end of file access_messages.class.php