PHPackages                             undertaker/fla-loader - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. undertaker/fla-loader

ActiveFlarum-extension[Utility &amp; Helpers](/categories/utility)

undertaker/fla-loader
=====================

Flarum extension for external loader integration with time-limited roles and file management

09[1 issues](https://github.com/Undertaker-afk/Fla-loader/issues)PHP

Since Jan 16Pushed 5mo agoCompare

[ Source](https://github.com/Undertaker-afk/Fla-loader)[ Packagist](https://packagist.org/packages/undertaker/fla-loader)[ RSS](/packages/undertaker-fla-loader/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (7)Used By (0)

Fla-loader
==========

[](#fla-loader)

A Flarum extension for external loader integration with time-limited roles and file management.

Features
--------

[](#features)

- **External Login API**: Authenticate users via external loaders using username/password and receive session tokens
    - **HWID Protection**: Hardware ID validation to prevent account sharing (automatically registered on first login)
- **Time-Limited Role Assignment**: Admins can assign roles with expiration times (7 days, 30 days, 180 days, 1 year, or lifetime)
- **File Management System**:
    - Upload files with role-based access control
    - Download navbar entry for user-accessible files
    - API endpoint for external loader downloads with session token authentication
    - Admin interface for managing files and permissions
- **HWID Management**: Admins can reset user HWIDs to allow login from new devices

Installation
------------

[](#installation)

1. Install via composer:

    ```
    composer require undertaker/fla-loader
    ```
2. Enable the extension in your Flarum admin panel
3. Run migrations:

    ```
    php flarum migrate
    ```

API Endpoints
-------------

[](#api-endpoints)

### Login

[](#login)

- **POST** `/api/fla-loader/login`
    - Body: `{"username": "...", "password": "...", "hwid": "..."}`
    - Returns: Session token and user groups/roles
    - Note: HWID is required and validated

### File Download

[](#file-download)

- **GET** `/api/fla-loader/download/{id}?token=...`
    - Query params: `token` (session token)
    - Returns: File download

### File Management (Admin only)

[](#file-management-admin-only)

- **GET** `/api/fla-loader/files` - List all files
- **POST** `/api/fla-loader/files` - Upload file
- **PATCH** `/api/fla-loader/files/{id}` - Update file permissions
- **DELETE** `/api/fla-loader/files/{id}` - Delete file

### Role Assignment (Admin only)

[](#role-assignment-admin-only)

- **POST** `/api/fla-loader/roles` - Assign time-limited role
    - Body: `{"userId": 1, "groupId": 2, "duration": "30d"}`
- **GET** `/api/fla-loader/roles/{userId}` - Get user's role assignments

### HWID Management (Admin only)

[](#hwid-management-admin-only)

- **POST** `/api/fla-loader/hwid/reset` - Reset a user's HWID
    - Body: `{"userId": 1}`
- **GET** `/api/fla-loader/hwid/{userId}` - Check user's HWID status

Console Commands
----------------

[](#console-commands)

- `php flarum fla-loader:expire-roles` - Manually expire roles (should be run via cron)
- `php flarum fla-loader:cleanup-sessions` - Clean up expired session tokens

Development
-----------

[](#development)

If you want to modify the extension's JavaScript code:

1. Clone the repository
2. Install dependencies: ```
    npm install
    ```
3. Make your changes to files in `js/src/`
4. Build the assets: ```
    npm run build
    ```

    Or use development mode with auto-rebuild: ```
    npm run dev
    ```

License
-------

[](#license)

MIT

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance48

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity19

Early-stage or recently created project

 Bus Factor1

Top contributor holds 64.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/148481618?v=4)[TNT-Flo](/maintainers/TNT-Flo)[@TnT-Flo](https://github.com/TnT-Flo)

---

Top Contributors

[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (27 commits)")[![Undertaker-afk](https://avatars.githubusercontent.com/u/179710494?v=4)](https://github.com/Undertaker-afk "Undertaker-afk (15 commits)")

### Embed Badge

![Health badge](/badges/undertaker-fla-loader/health.svg)

```
[![Health](https://phpackages.com/badges/undertaker-fla-loader/health.svg)](https://phpackages.com/packages/undertaker-fla-loader)
```

###  Alternatives

[moell/rss

moell/rss is a package that follows the RSS 2.0 standard

111.8k1](/packages/moell-rss)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
