A modern Windows desktop application for managing file and folder permissions (DACL and SIDs) with an intuitive Flutter UI and native Win32 API backend.
- Single File/Folder Editor: View and modify DACL for individual paths
- Bulk Permission Editor: Apply identical permissions to multiple selected items
- Recursive Application: Apply permissions to folders and all their contents
- ACE Builder: Visual builder for creating Access Control Entries
- Inheritance Management: Enable/disable/reset permission inheritance
- Owner/Group Management: View and change file owner and primary group
- Auto-Snapshot: Automatically create snapshots before any modification
- Manual Snapshot: Create named snapshots for important states
- Snapshot History: View chronological list of all snapshots
- One-Click Undo: Restore previous state with a single click
- Snapshot Export/Import: Save snapshots to files for backup
- Modern Fluent UI: Native Windows 11 look and feel
- File Browser: Built-in file/folder browser with tree view
- Dark/Light Theme: System theme detection and manual override
- Administrator Indicator: Shows elevation status
┌─────────────────────────────────────────────────────────────┐
│ Flutter UI Layer (Dart) │
│ - Fluent UI widgets │
│ - State management with Riverpod │
└─────────────────────────────────────────────────────────────┘
│
│ Dart FFI
▼
┌─────────────────────────────────────────────────────────────┐
│ Native Core (C/Win32) │
│ - winpermit_core.dll │
│ - SetNamedSecurityInfo, GetNamedSecurityInfo │
│ - DACL/ACE manipulation │
│ - Snapshot serialization │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Windows Security API │
│ - advapi32.dll │
│ - NTFS Security │
└─────────────────────────────────────────────────────────────┘
- Flutter SDK (3.0+)
- Visual Studio 2022 with C++ workload
- CMake 3.20+
cd native
mkdir build && cd build
cmake -G "Visual Studio 17 2022" -A x64 ..
cmake --build . --config Releaseflutter pub get
flutter build windows --release# Build the native DLL first
cd native && build.bat && cd ..
# Run Flutter app
flutter run -d windowsRun the application as Administrator for full functionality.
WinPermit/
├── lib/ # Flutter/Dart code
│ ├── main.dart
│ ├── app.dart
│ ├── core/
│ │ ├── ffi/ # FFI bindings
│ │ ├── models/ # Data models
│ │ ├── services/ # Business logic
│ │ └── providers/ # State management
│ ├── features/
│ │ ├── browser/ # File browser
│ │ ├── editor/ # Permission editor
│ │ └── snapshots/ # Snapshot management
│ └── shared/
│ ├── widgets/ # Reusable widgets
│ ├── theme/ # App theme
│ └── utils/ # Utilities
├── native/ # C/Win32 code
│ ├── include/
│ │ └── winpermit_core.h
│ ├── src/
│ │ ├── winpermit_core.c
│ │ └── snapshot_manager.c
│ └── CMakeLists.txt
└── windows/ # Flutter Windows runner
MIT License