Files
StandalonePasswordChange/python-flask/smeserver-password-app/README.md

98 lines
3.0 KiB
Markdown
Raw Normal View History

# 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.