WFA Attendance Security
Selfie Capture, Anti-Fake GPS Detection & Geofence Radius
Attendance security module for Work From Anywhere (WFA) employees. Prevent attendance fraud with real-time selfie verification, fake location detection (Fake GPS), and work area radius validation.
Key Features
ð¸ Real-Time Selfie Capture
Employees are required to take a selfie photo when checking in and checking out. The photo is captured directly from the device's front camera and stored in the attendance record.
- â Selfie photo saved in Check-in & Check-out records
- â Camera opens automatically during attendance
- â Photo preview before confirmation
- â Zoomable for verification
- â Can be enabled/disabled from Settings
ð¡ï¸ Fake GPS Detection (6 Layers)
The system detects fake location apps (Fake GPS / Mock Location) using 6 advanced detection layers:
- ð Layer 1: Direct mock flag detection
- ð Layer 2: Zero accuracy check (impossible on real GPS)
- ð Layer 3: Missing altitude data on mobile devices
- ð Layer 4: Multi-sample jitter detection (real GPS always jitters)
- ð Layer 5: Unrealistically precise accuracy (<3m)
- ð Layer 6: Static accuracy across multiple samples
â ï¸ If detected, attendance is automatically REJECTED with a warning message.
ð Geofence Radius Check
Validates the employee's distance from their designated work location. Supports per-employee coordinates (for WFA) with fallback to company coordinates.
- â Maximum radius setting (meters) at Company level
- â Per-employee work location coordinates (overrides Company)
- â Company-level office coordinates (default)
- â Accurate distance calculation using Haversine formula
- â Error message shows actual distance vs max radius
Employee lat/lon â Company lat/lon â No validation
ðºï¸ Embedded Map & Reverse Geocoding
Check-in and check-out locations are displayed directly in the attendance form with an interactive OpenStreetMap.
- ðºï¸ Interactive map embedded in the Attendance form
- ð Location marker at exact check-in/check-out coordinates
- ð Automatic reverse geocoding (coordinates â city/country name)
- ð Works on local networks (LAN/private IP)
- ð GPS Accuracy displayed in meters
âï¸ Configuration Guide
1. Company Settings (Global)
Go to Settings â Attendance â WFA Attendance Security
| Setting | Function | Default |
|---|---|---|
| Require Selfie Capture | Require selfie photo on check-in/out | Off |
| Block Mock Location | Block attendance if Fake GPS detected | Off |
| Max Check-in Radius (m) | Maximum distance from office (0 = disabled) | 0 |
| Office Latitude / Longitude | Default office location coordinates | - |
2. Per-Employee Settings (Override)
Go to Employees â Select Employee â "Attendance Location" section
| Setting | Function |
|---|---|
| Attendance Latitude | Employee-specific work location latitude (overrides Company) |
| Attendance Longitude | Employee-specific work location longitude (overrides Company) |
ð How it Works
Employee clicks Check-in / Check-out
From the systray menu in the top-right corner of Odoo
System acquires GPS location (3 samples)
Uses watchPosition to collect multi-sample GPS readings for analysis
Mock Location Analysis (6 Layers)
System analyzes GPS samples to detect Fake GPS. If detected â REJECTED
Selfie Dialog (if enabled)
Front camera opens automatically, employee must take a real-time selfie
Radius Validation (Server-side)
Server calculates distance to work location. If outside radius â REJECTED
Attendance Successfully Saved
Selfie, GPS coordinates, accuracy, and location map are saved in the attendance record
ð Compatibility
Odoo 18
Community & Enterprise Edition
Mobile & Desktop
Chrome, Firefox, Safari, Edge
HTTPS Required
GPS & Camera require HTTPS or chrome://flags
â ï¸ Important Notes
chrome://flags and enable
"Insecure origins treated as secure" for your Odoo address.
nominatim.openstreetmap.org.
hr_attendance (built-in Odoo).
No additional Python libraries required.
ð®ð© Bahasa Indonesia
WFA Attendance Security
Foto Selfie, Deteksi Fake GPS & Validasi Radius Lokasi Kerja
Modul keamanan absensi untuk karyawan Work From Anywhere (WFA). Mencegah kecurangan absensi dengan teknologi verifikasi selfie real-time, deteksi lokasi palsu (Fake GPS), dan validasi radius area kerja.
Fitur Utama
ð¸ Foto Selfie Real-Time
Karyawan wajib mengambil foto selfie saat melakukan check-in dan check-out. Foto diambil langsung dari kamera depan perangkat dan disimpan di record attendance.
- â Foto selfie disimpan di record Check-in & Check-out
- â Kamera otomatis terbuka saat absensi
- â Preview foto sebelum konfirmasi
- â Bisa di-zoom untuk verifikasi
- â Dapat diaktifkan/nonaktifkan dari Settings
ð¡ï¸ Deteksi Fake GPS (6 Lapisan)
Sistem mendeteksi penggunaan aplikasi lokasi palsu (Fake GPS / Mock Location) menggunakan 6 lapisan deteksi yang canggih:
- ð Lapisan 1: Deteksi flag mock langsung
- ð Lapisan 2: Cek accuracy nol (mustahil di GPS asli)
- ð Lapisan 3: Data altitude kosong pada perangkat mobile
- ð Lapisan 4: Deteksi jitter multi-sampel (GPS asli selalu bergetar)
- ð Lapisan 5: Accuracy terlalu presisi (<3m, mustahil untuk HP)
- ð Lapisan 6: Accuracy statis di semua sampel
â ï¸ Jika terdeteksi, absensi otomatis DITOLAK dengan pesan warning.
ð Validasi Radius Geofence
Validasi jarak karyawan dari lokasi kerja yang ditentukan. Mendukung koordinat per-karyawan (untuk WFA) dan fallback ke koordinat company.
- â Setting radius maksimum (meter) di level Company
- â Koordinat lokasi kerja per-karyawan (override Company)
- â Koordinat lokasi kerja di level Company (default)
- â Perhitungan jarak akurat menggunakan formula Haversine
- â Pesan error menampilkan jarak aktual vs radius maks
Karyawan lat/lon â Company lat/lon â Tidak validasi
ðºï¸ Peta Tertanam & Reverse Geocoding
Lokasi check-in dan check-out ditampilkan langsung di form attendance dengan peta OpenStreetMap interaktif.
- ðºï¸ Peta interaktif tertanam di form Attendance
- ð Marker lokasi tepat di koordinat check-in/check-out
- ð Reverse geocoding otomatis (koordinat â nama kota/negara)
- ð Mendukung jaringan lokal (LAN/IP private)
- ð GPS Accuracy ditampilkan dalam meter
âï¸ Cara Konfigurasi
1. Pengaturan Company (Global)
Buka Settings â Attendance â WFA Attendance Security
| Setting | Fungsi | Default |
|---|---|---|
| Require Selfie Capture | Wajibkan foto selfie saat check-in/out | Off |
| Block Mock Location | Blokir absensi jika Fake GPS terdeteksi | Off |
| Max Check-in Radius (m) | Radius maksimum dari lokasi kantor (0 = nonaktif) | 0 |
| Office Latitude / Longitude | Koordinat lokasi kantor default | - |
2. Pengaturan Per-Karyawan (Override)
Buka Employees â Pilih Karyawan â Section "Attendance Location"
| Setting | Fungsi |
|---|---|
| Attendance Latitude | Koordinat lokasi kerja khusus karyawan ini (override Company) |
| Attendance Longitude | Koordinat lokasi kerja khusus karyawan ini (override Company) |
ð Cara Kerja
Karyawan klik Check-in / Check-out
Dari menu systray di pojok kanan atas Odoo
Sistem mengambil lokasi GPS (3 sampel)
Menggunakan watchPosition untuk mengumpulkan multi-sampel pembacaan GPS
Analisis Mock Location (6 Lapisan)
Sistem menganalisis sampel GPS untuk mendeteksi Fake GPS. Jika terdeteksi â DITOLAK
Dialog Selfie (jika diaktifkan)
Kamera depan otomatis terbuka, karyawan harus foto selfie real-time
Validasi Radius (Server-side)
Server menghitung jarak ke lokasi kerja. Jika di luar radius â DITOLAK
Absensi Berhasil Disimpan
Data selfie, koordinat GPS, accuracy, dan peta lokasi tersimpan di record attendance
â ï¸ Catatan Penting
chrome://flags dan aktifkan
"Insecure origins treated as secure" untuk alamat Odoo Anda.
nominatim.openstreetmap.org.
hr_attendance (bawaan Odoo).
Tidak memerlukan library Python tambahan.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module