Skip to content

Commit

Permalink
Merge pull request #2 from niladam/v1
Browse files Browse the repository at this point in the history
  • Loading branch information
niladam authored Nov 26, 2024
2 parents a9bfdb1 + a2b1c6a commit aca8607
Show file tree
Hide file tree
Showing 35 changed files with 7,388 additions and 792 deletions.
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
github: :vendor_name
github: niladam
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Ask a question
url: https://github.com/:vendor_name/:package_name/discussions/new?category=q-a
url: https://github.com/niladam/filament-auto-logout/discussions/new?category=q-a
about: Ask the community for help
- name: Request a feature
url: https://github.com/:vendor_name/:package_name/discussions/new?category=ideas
url: https://github.com/niladam/filament-auto-logout/discussions/new?category=ideas
about: Share ideas for new features
- name: Report a security issue
url: https://github.com/:vendor_name/:package_name/security/policy
url: https://github.com/niladam/filament-auto-logout/security/policy
about: Learn how to notify us for sensitive bugs
2 changes: 1 addition & 1 deletion .github/SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Security Policy

If you discover any security related issues, please email author@domain.com instead of using the issue tracker.
If you discover any security related issues, please email niladam@gmail.com instead of using the issue tracker.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

All notable changes to `:package_name` will be documented in this file.
All notable changes to `filament-auto-logout` will be documented in this file.

## 1.0.0 - 202X-XX-XX

Expand Down
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) :vendor_name <author@domain.com>
Copyright (c) niladam <niladam@gmail.com>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
103 changes: 68 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,68 +1,101 @@
# :package_description
# A filament plugin that automatically logs out your users if they are idle.

[![Latest Version on Packagist](https://img.shields.io/packagist/v/:vendor_slug/:package_slug.svg?style=flat-square)](https://packagist.org/packages/:vendor_slug/:package_slug)
[![GitHub Tests Action Status](https://img.shields.io/github/actions/workflow/status/:vendor_slug/:package_slug/run-tests.yml?branch=main&label=tests&style=flat-square)](https://github.com/:vendor_slug/:package_slug/actions?query=workflow%3Arun-tests+branch%3Amain)
[![GitHub Code Style Action Status](https://img.shields.io/github/actions/workflow/status/:vendor_slug/:package_slug/fix-php-code-styling.yml?branch=main&label=code%20style&style=flat-square)](https://github.com/:vendor_slug/:package_slug/actions?query=workflow%3A"Fix+PHP+code+styling"+branch%3Amain)
[![Total Downloads](https://img.shields.io/packagist/dt/:vendor_slug/:package_slug.svg?style=flat-square)](https://packagist.org/packages/:vendor_slug/:package_slug)
[![Latest Version on Packagist](https://img.shields.io/packagist/v/niladam/filament-auto-logout.svg?style=flat-square)](https://packagist.org/packages/niladam/filament-auto-logout)
[![GitHub Tests Action Status](https://img.shields.io/github/actions/workflow/status/niladam/filament-auto-logout/run-tests.yml?branch=main&label=tests&style=flat-square)](https://github.com/niladam/filament-auto-logout/actions?query=workflow%3Arun-tests+branch%3Amain)
[![GitHub Code Style Action Status](https://img.shields.io/github/actions/workflow/status/niladam/filament-auto-logout/fix-php-code-styling.yml?branch=main&label=code%20style&style=flat-square)](https://github.com/niladam/filament-auto-logout/actions?query=workflow%3A"Fix+PHP+code+styling"+branch%3Amain)
[![Total Downloads](https://img.shields.io/packagist/dt/niladam/filament-auto-logout.svg?style=flat-square)](https://packagist.org/packages/niladam/filament-auto-logout)

<!--delete-->
---
This repo can be used to scaffold a Filament plugin. Follow these steps to get started:

1. Press the "Use this template" button at the top of this repo to create a new repo with the contents of this skeleton.
2. Run "php ./configure.php" to run a script that will replace all placeholders throughout all the files.
3. Make something great!
---
<!--/delete-->

This is where your description should go. Limit it to a paragraph or two. Consider adding a small example.
A small filament plugin that logs out your users if they are idle.

## Installation

You can install the package via composer:

```bash
composer require :vendor_slug/:package_slug
composer require niladam/filament-auto-logout
```

You can publish and run the migrations with:

```bash
php artisan vendor:publish --tag=":package_slug-migrations"
php artisan migrate
```

You can publish the config file with:

```bash
php artisan vendor:publish --tag=":package_slug-config"
```

Optionally, you can publish the views using

```bash
php artisan vendor:publish --tag=":package_slug-views"
php artisan vendor:publish --tag="filament-auto-logout-config"
```

This is the contents of the published config file:

```php
use Carbon\Carbon;
use Niladam\FilamentAutoLogout\Enums\AutoLogoutPosition;

return [
/**
* Disable or enable the plugin
*/
'enabled' => env('FILAMENT_AUTO_LOGOUT_ENABLED', true),

/**
* The duration in seconds your users can be idle before being logged out.
*
* The duration needs to be specified in seconds.
*
* A sensible default has been set to 15 minutes
*/
'duration_in_seconds' => env('FILAMENT_AUTO_LOGOUT_DURATION_IN_SECONDS', Carbon::SECONDS_PER_MINUTE * 15),

/**
* A notification will be sent to the user before logging out.
*
* This sets the seconds BEFORE sending out the notification.
*/
'warn_before_in_seconds' => env('FILAMENT_AUTO_LOGOUT_WARN_BEFORE_IN_SECONDS', 30),

/**
* The plugin comes with a small time left box which will display the time left
* before the user will be logged out.
*/
'show_time_left' => env('FILAMENT_AUTO_LOGOUT_SHOW_TIME_LEFT', true),

/**
* What should the time left box display before the timer?
*
* A default has been set to 'Time left:'
*/
'time_left_text' => env('FILAMENT_AUTO_LOGOUT_TIME_LEFT_TEXT', 'Time left:'),

/**
* The position of the time left box.
*
* Defaults to right.
*
* Currently only 'right' and 'left' (bottom) are supported
*/
'time_left_position' => env('FILAMENT_AUTO_LOGOUT_TIME_LEFT_POSITION', AutoLogoutPosition::BOTTOM_RIGHT),
];
```

## Usage

```php
$variable = new VendorName\Skeleton();
echo $variable->echoPhrase('Hello, VendorName!');
use Carbon\Carbon;
use Niladam\FilamentAutoLogout\FilamentAutoLogoutPlugin;

$panel
->plugins([
FilamentAutoLogoutPlugin::make()
->positionLeft() // Align the time left box to the left. Defaults to right.
->disableIf(fn () => auth()->id() === 1) // Disable the user with ID 1
->logoutAfter(Carbon::SECONDS_PER_MINUTE * 5) // Logout the user after 5 minutes
->withoutWarning() // Disable the warning
->withoutTimeLeft() // Disable the time left
->timeLeftText('Oh no. Kicking you in...') // Change the time left text
]);
```

## Testing
### Configuration

```bash
composer test
```

## Changelog

Expand All @@ -78,7 +111,7 @@ Please review [our security policy](../../security/policy) on how to report secu

## Credits

- [:author_name](https://github.com/:author_username)
- [Madalin Tache](https://github.com/niladam)
- [All Contributors](../../contributors)

## License
Expand Down
2 changes: 1 addition & 1 deletion bin/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,5 @@ const defaultOptions = {
compile({
...defaultOptions,
entryPoints: ['./resources/js/index.js'],
outfile: './resources/dist/skeleton.js',
outfile: './resources/dist/filament-auto-logout.js',
})
68 changes: 20 additions & 48 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,79 +1,51 @@
{
"name": ":vendor_slug/:package_slug",
"description": ":package_description",
"name": "niladam/filament-auto-logout",
"description": "A filament plugin that automatically logs out your users if they are idle.",
"keywords": [
":vendor_name",
"laravel",
":package_slug"
"filament-auto-logout",
"afk logout",
"logout on idle",
"logout if idle",
"logout if afk",
"autologout",
"filament auto logout",
],
"homepage": "https://github.com/:vendor_slug/:package_slug",
"homepage": "https://github.com/niladam/filament-auto-logout",
"support": {
"issues": "https://github.com/:vendor_slug/:package_slug/issues",
"source": "https://github.com/:vendor_slug/:package_slug"
"issues": "https://github.com/niladam/filament-auto-logout/issues",
"source": "https://github.com/niladam/filament-auto-logout"
},
"license": "MIT",
"authors": [
{
"name": ":author_name",
"email": "author@domain.com",
"name": "Madalin Tache",
"email": "niladam@gmail.com",
"role": "Developer"
}
],
"require": {
"php": "^8.1",
"filament/filament": "^3.0",
"filament/forms": "^3.0",
"filament/tables": "^3.0",
"spatie/laravel-package-tools": "^1.15.0"
},
"require-dev": {
"laravel/pint": "^1.0",
"nunomaduro/collision": "^7.9",
"nunomaduro/larastan": "^2.0.1",
"orchestra/testbench": "^8.0",
"pestphp/pest": "^2.1",
"pestphp/pest-plugin-arch": "^2.0",
"pestphp/pest-plugin-laravel": "^2.0",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan-deprecation-rules": "^1.0",
"phpstan/phpstan-phpunit": "^1.0",
"spatie/laravel-ray": "^1.26"
"laravel/pint": "^1.0"
},
"autoload": {
"psr-4": {
"VendorName\\Skeleton\\": "src/",
"VendorName\\Skeleton\\Database\\Factories\\": "database/factories/"
}
},
"autoload-dev": {
"psr-4": {
"VendorName\\Skeleton\\Tests\\": "tests/"
"Niladam\\FilamentAutoLogout\\": "src/"
}
},
"scripts": {
"post-autoload-dump": "@php ./vendor/bin/testbench package:discover --ansi",
"analyse": "vendor/bin/phpstan analyse",
"test": "vendor/bin/pest",
"test-coverage": "vendor/bin/pest --coverage",
"pint": "vendor/bin/pint",
"format": "vendor/bin/pint"
},
"config": {
"sort-packages": true,
"allow-plugins": {
"pestphp/pest-plugin": true,
"phpstan/extension-installer": true
}
},
"extra": {
"laravel": {
"providers": [
"VendorName\\Skeleton\\SkeletonServiceProvider"
],
"aliases": {
"Skeleton": "VendorName\\Skeleton\\Facades\\Skeleton"
}
"Niladam\\FilamentAutoLogout\\FilamentAutoLogoutServiceProvider"
]
}
},
"minimum-stability": "dev",
"prefer-stable": true
}
}
49 changes: 49 additions & 0 deletions config/filament-auto-logout.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php

use Carbon\Carbon;
use Niladam\FilamentAutoLogout\Enums\AutoLogoutPosition;

return [
/**
* Disable or enable the plugin
*/
'enabled' => env('FILAMENT_AUTO_LOGOUT_ENABLED', true),

/**
* The duration in seconds your users can be idle before being logged out.
*
* The duration needs to be specified in seconds.
*
* A sensible default has been set to 15 minutes
*/
'duration_in_seconds' => env('FILAMENT_AUTO_LOGOUT_DURATION_IN_SECONDS', Carbon::SECONDS_PER_MINUTE * 15),

/**
* A notification will be sent to the user before logging out.
*
* This sets the seconds BEFORE sending out the notification.
*/
'warn_before_in_seconds' => env('FILAMENT_AUTO_LOGOUT_WARN_BEFORE_IN_SECONDS', 30),

/**
* The plugin comes with a small time left box which will display the time left
* before the user will be logged out.
*/
'show_time_left' => env('FILAMENT_AUTO_LOGOUT_SHOW_TIME_LEFT', true),

/**
* What should the time left box display before the timer?
*
* A default has been set to 'Time left:'
*/
'time_left_text' => env('FILAMENT_AUTO_LOGOUT_TIME_LEFT_TEXT', 'Time left:'),

/**
* The position of the time left box.
*
* Defaults to right.
*
* Currently only 'right' and 'left' (bottom) are supported
*/
'time_left_position' => env('FILAMENT_AUTO_LOGOUT_TIME_LEFT_POSITION', AutoLogoutPosition::BOTTOM_RIGHT),
];
6 changes: 0 additions & 6 deletions config/skeleton.php

This file was deleted.

Loading

0 comments on commit aca8607

Please sign in to comment.