Skip to content

A modern Windows desktop application for managing file and folder permissions (DACL and SIDs) with an intuitive Flutter UI and native Win32 API backend.

Notifications You must be signed in to change notification settings

murfidya/WinPermit

Repository files navigation

WinPermit - Windows Permission Manager

A modern Windows desktop application for managing file and folder permissions (DACL and SIDs) with an intuitive Flutter UI and native Win32 API backend.

Features

Core Permission Management

  • 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

Snapshot & Undo System

  • 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

User Interface

  • 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

Architecture

┌─────────────────────────────────────────────────────────────┐
│                    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                                            │
└─────────────────────────────────────────────────────────────┘

Building

Prerequisites

  • Flutter SDK (3.0+)
  • Visual Studio 2022 with C++ workload
  • CMake 3.20+

Build Native DLL

cd native
mkdir build && cd build
cmake -G "Visual Studio 17 2022" -A x64 ..
cmake --build . --config Release

Build Flutter App

flutter pub get
flutter build windows --release

Running

Development

# Build the native DLL first
cd native && build.bat && cd ..

# Run Flutter app
flutter run -d windows

Production

Run the application as Administrator for full functionality.

Project Structure

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

License

MIT License

About

A modern Windows desktop application for managing file and folder permissions (DACL and SIDs) with an intuitive Flutter UI and native Win32 API backend.

Resources

Stars

Watchers

Forks

Packages

No packages published