docs update

This commit is contained in:
Milos Stojanovic 2019-06-18 13:43:53 +02:00
parent d72f890150
commit 7f3e111d49
6 changed files with 131 additions and 82 deletions

View File

@ -11,26 +11,38 @@ subTitle: Documentation
baseUrl: https://docs.filegator.io
template:
url: https://github.com/CouscousPHP/Template-Light
url: https://github.com/CouscousPHP/Template-Dark
github:
user: filegator
repo: filegator
menu:
items:
home:
text: What is FileGator
relativeUrl: index.html
install:
text: Installation
relativeUrl: install.html
sections:
main:
name: Getting Started
items:
home:
text: What is FileGator
relativeUrl: index.html
install:
text: Installation
relativeUrl: install.html
demo:
text: Demo
absoluteUrl: demo.html
license:
text: License
absoluteUrl: license.html
config:
text: Configuration
relativeUrl: configuration.html
demo:
text: Demo
absoluteUrl: demo.html
license:
text: License
absoluteUrl: license.html
name: Configuration
items:
basic:
text: Options
relativeUrl: configuration/default.html
auth:
text: Auth
relativeUrl: configuration/auth.html
sessions:
text: Session
relativeUrl: configuration/session.html

View File

@ -1,8 +0,0 @@
CREATE TABLE `sessions` (
`sess_id` varbinary(128) NOT NULL,
`sess_data` blob NOT NULL,
`sess_lifetime` mediumint(9) NOT NULL,
`sess_time` int(10) unsigned NOT NULL,
PRIMARY KEY (`sess_id`)
) CHARSET=utf8 COLLATE=utf8_bin;

View File

@ -1,16 +0,0 @@
CREATE TABLE `users` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`role` varchar(20) NOT NULL,
`permissions` varchar(200) NOT NULL,
`homedir` varchar(2000) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `username` (`username`)
) CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO `users` (`username`, `name`, `role`, `permissions`, `homedir`, `password`)
VALUES
('guest', 'Guest', 'guest', '', '/', ''),
('admin', 'Admin', 'admin', 'read|write|upload|download|batchdownload|zip', '/', '$2y$10$Nu35w4pteLfc7BDCIkDPkecjw8wsH8Y2GMfIewUbXLT7zzW6WOxwq');

View File

@ -0,0 +1,42 @@
### Configuring Auth service to use database
You can store your users inside mysql database (default is json file).
First, create a table ```users``` with this sql:
```
CREATE TABLE `users` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`role` varchar(20) NOT NULL,
`permissions` varchar(200) NOT NULL,
`homedir` varchar(2000) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `username` (`username`)
) CHARSET=utf8 COLLATE=utf8_bin;
```
Then, import default users with this query:
```
INSERT INTO `users` (`username`, `name`, `role`, `permissions`, `homedir`, `password`)
VALUES
('guest', 'Guest', 'guest', '', '/', ''),
('admin', 'Admin', 'admin', 'read|write|upload|download|batchdownload|zip', '/', '$2y$10$Nu35w4pteLfc7BDCIkDPkecjw8wsH8Y2GMfIewUbXLT7zzW6WOxwq');
```
Ath the end, open ```configuration.php``` and update Auth handler under section ```services``` to something like this:
```
'Filegator\Services\Auth\AuthInterface' => [
'handler' => '\Filegator\Services\Auth\Adapters\Database',
'config' => [
'driver' => 'mysqli',
'host' => 'localhost',
'username' => 'root',
'password' => 'password',
'database' => 'filegator',
],
],
```

View File

@ -2,48 +2,6 @@
All configuration options are stored inside ```configuration.php``` file.
In this file you can configure all the options, services and their handlers.
### Configuring Auth service to use database
You can store your users inside mysql database (default is json file).
First, create a table ```users``` with this sql:
```
CREATE TABLE `users` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`role` varchar(20) NOT NULL,
`permissions` varchar(200) NOT NULL,
`homedir` varchar(2000) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `username` (`username`)
) CHARSET=utf8 COLLATE=utf8_bin;
```
Then, import default users with this query:
```
INSERT INTO `users` (`username`, `name`, `role`, `permissions`, `homedir`, `password`)
VALUES
('guest', 'Guest', 'guest', '', '/', ''),
('admin', 'Admin', 'admin', 'read|write|upload|download|batchdownload|zip', '/', '$2y$10$Nu35w4pteLfc7BDCIkDPkecjw8wsH8Y2GMfIewUbXLT7zzW6WOxwq');
```
Ath the end, open ```configuration.php``` and update Auth handler under section ```services``` to something like this:
```
'Filegator\Services\Auth\AuthInterface' => [
'handler' => '\Filegator\Services\Auth\Adapters\Database',
'config' => [
'driver' => 'mysqli',
'host' => 'localhost',
'username' => 'root',
'password' => 'password',
'database' => 'filegator',
],
],
```
### Default Configuration options

View File

@ -0,0 +1,61 @@
### Configuring Session service to use database
First, create a table ```sessions``` with this sql:
```
CREATE TABLE `sessions` (
`sess_id` varbinary(128) NOT NULL,
`sess_data` blob NOT NULL,
`sess_lifetime` mediumint(9) NOT NULL,
`sess_time` int(10) unsigned NOT NULL,
PRIMARY KEY (`sess_id`)
) CHARSET=utf8 COLLATE=utf8_bin;
```
Then, open ```configuration.php``` and update Auth handler under section ```services``` to something like this:
```
'Filegator\Services\Session\SessionStorageInterface' => [
'handler' => '\Filegator\Services\Session\Adapters\SessionStorage',
'config' => [
'session_handler' => 'database',
'available' => [
'database' => function () {
$handler = new \Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler(
'mysql://root:password@localhost:3360/filegator'
);
return new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage([], $handler);
},
],
],
],
```
Don't forget to enter correct mysql username, password, and database.
### Tweaking session options
The Underying Symfony session [component](https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php) constructor accepts an array options.
For example you can pass ```cookie_lifetime``` parameter and extend session lifetime like this:
```
'Filegator\Services\Session\SessionStorageInterface' => [
'handler' => '\Filegator\Services\Session\Adapters\SessionStorage',
'config' => [
'session_handler' => 'database',
'available' => [
'database' => function () {
$handler = new \Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler(
'mysql://root:password@localhost:3360/filegator'
);
return new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage([
'cookie_lifetime' => 365 * 24 * 60 * 60, // one year
], $handler);
},
],
],
],
```