98 lines
3.0 KiB
Markdown
98 lines
3.0 KiB
Markdown
|
# SME Server Password Change Application - Python 3.6.8 Compatible
|
||
|
|
||
|
## Overview
|
||
|
A Python Flask web application specifically updated for compatibility with Python 3.6.8 and Flask 2.0.3, implementing a password change interface for SME Server systems.
|
||
|
|
||
|
## Compatibility
|
||
|
- ✅ **Python 3.6.8** - Fully tested and compatible
|
||
|
- ✅ **Flask 2.0.3** - Compatible version
|
||
|
- ✅ **Werkzeug 2.0.3** - Compatible version
|
||
|
- ✅ **Flask-CORS 3.0.10** - Compatible version
|
||
|
|
||
|
## Key Changes for Python 3.6.8
|
||
|
- Removed f-string formatting (replaced with .format())
|
||
|
- Updated type hints for Python 3.6 compatibility
|
||
|
- Compatible Flask and dependency versions
|
||
|
- Tested string formatting methods
|
||
|
|
||
|
## Requirements
|
||
|
```
|
||
|
Flask==2.0.3
|
||
|
Flask-CORS==3.0.10
|
||
|
Werkzeug==2.0.3
|
||
|
```
|
||
|
|
||
|
## Features
|
||
|
- Web interface matching the original SME Server design
|
||
|
- Integration with SME Server configuration database
|
||
|
- Password strength validation
|
||
|
- Current password verification
|
||
|
- Uses `signal-event password-update` for proper password updates
|
||
|
- Responsive design for mobile and desktop
|
||
|
- Error handling and security measures
|
||
|
- Demo mode for testing
|
||
|
|
||
|
## Quick Installation
|
||
|
1. Extract the application files to your SME Server
|
||
|
2. Run the installation script:
|
||
|
```bash
|
||
|
sudo ./install.sh
|
||
|
```
|
||
|
3. Access the application at `http://your-server:5000`
|
||
|
|
||
|
## Manual Installation
|
||
|
If you prefer manual installation:
|
||
|
|
||
|
1. Install dependencies:
|
||
|
```bash
|
||
|
pip3 install Flask==2.0.3 Flask-CORS==3.0.10 Werkzeug==2.0.3
|
||
|
```
|
||
|
|
||
|
2. Copy files to `/opt/smeserver-password-app/`
|
||
|
|
||
|
3. Create and start the systemd service (see install.sh for details)
|
||
|
|
||
|
## Testing
|
||
|
Use the demo mode for testing:
|
||
|
```bash
|
||
|
python3 demo_mode.py
|
||
|
```
|
||
|
|
||
|
Demo users:
|
||
|
- Username: `testuser`, Password: `oldpassword123`
|
||
|
- Username: `admin`, Password: `adminpass456`
|
||
|
- Username: `john`, Password: `johnpass789`
|
||
|
|
||
|
## File Structure
|
||
|
```
|
||
|
smeserver-password-app-py36/
|
||
|
├── app.py # Main Flask application (Python 3.6.8 compatible)
|
||
|
├── smeserver_utils.py # SME Server utilities (Python 3.6.8 compatible)
|
||
|
├── demo_mode.py # Demo version (Python 3.6.8 compatible)
|
||
|
├── requirements.txt # Python 3.6.8 compatible dependencies
|
||
|
├── install.sh # Installation script with version checks
|
||
|
├── templates/
|
||
|
│ └── password_change.html # Web interface template
|
||
|
├── static/
|
||
|
│ └── css/
|
||
|
│ └── style.css # Styling
|
||
|
└── README.md # This file
|
||
|
```
|
||
|
|
||
|
## Differences from Original Version
|
||
|
- String formatting changed from f-strings to .format() method
|
||
|
- Type hints updated for Python 3.6 compatibility
|
||
|
- Dependency versions locked to Python 3.6.8 compatible versions
|
||
|
- Installation script includes Python version detection
|
||
|
|
||
|
## Troubleshooting
|
||
|
If you encounter issues:
|
||
|
1. Verify Python version: `python3 --version`
|
||
|
2. Check Flask version: `flask --version`
|
||
|
3. Review service logs: `journalctl -u smeserver-password-web -f`
|
||
|
4. Test with demo mode first
|
||
|
|
||
|
## Support
|
||
|
This version is specifically designed for SME Server systems running Python 3.6.8 with Flask 2.0.3.
|
||
|
|