@page "/" @attribute [Authorize] @inject IUserSessionService Session @rendermode InteractiveServer

SharePoint Toolbox

@if (!Session.HasProfile) {
Welcome

Select a tenant profile to start using SharePoint Toolbox.

Manage Profiles
} else {
Connected: @Session.CurrentProfile!.Name

Tenant: @Session.CurrentProfile.TenantUrl

Permissions Audit Storage Metrics File Search User Access Audit
@foreach (var feature in _features) {
@feature.Icon
@feature.Title
@feature.Description
}
} @code { private readonly (string Href, string Icon, string Title, string Description)[] _features = new[] { ("/permissions", "🔐", "Permissions Audit", "Scan site permission assignments"), ("/storage", "💾", "Storage Metrics", "Analyze library storage usage"), ("/search", "🔍", "File Search", "KQL-based file search"), ("/duplicates", "📋", "Duplicates", "Find duplicate files/folders"), ("/versions", "🗂️", "Version Cleanup", "Delete old file versions"), ("/transfer", "📦", "File Transfer", "Copy/move files between libraries"), ("/bulk-members", "👥", "Bulk Members", "Add users to groups via CSV"), ("/bulk-sites", "🌐", "Bulk Sites", "Create sites from CSV"), ("/folder-structure", "📁", "Folder Structure", "Create folders from CSV template"), ("/user-audit", "👤", "User Access Audit", "Audit user permissions cross-site"), ("/user-directory", "📖", "User Directory", "Browse tenant users via Graph"), ("/templates", "📐", "Templates", "Capture and apply site templates"), }; }