Package Data | |
---|---|
Maintainer Username: | Stolz |
Package Create Date: | 2015-03-01 |
Package Last Update: | 2016-04-29 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-14 15:01:43 |
Package Statistics | |
---|---|
Total Downloads: | 1,146 |
Monthly Downloads: | 2 |
Daily Downloads: | 0 |
Total Stars: | 75 |
Total Watchers: | 4 |
Total Forks: | 17 |
Total Open Issues: | 0 |
A simple PHP wiki engine.
This project is not intended to be a mass distributed real world application but rather to server as a proof-of-concept and showcase of different technologies and concepts I enjoy using (RESTful architecture, Dependency Injection, Responsive design, SOLID principles, ...). Nevertheless it's being implemented to be 100% usable in real scenarios.
Via git
git clone https://github.com/Stolz/Wiki.git --depth 1 wiki && cd wiki && composer install
Via composer
composer create-project stolz/wiki --prefer-dist --stability=dev --no-scripts && cd wiki
Once the project is installed configure it as any other Laravel app
$EDITOR .env
$EDITOR config/app.php
php artisan migrate --seed
Trying to perform an action (create, update, delete, ...) on any of the wiki resources (users, pages, categories, ...) will trigger the can()
method on the app/Role.php
file with the corresponding action and resouce parameters.
The default implementation of the function is very relaxed and allows all user roles to perform all action on all resources.
/**
* Determine if $this role is authorized to execute $action on $resource.
*
* @param string $action
* @param string $resource
* @return bool
*/
public function can($action, $resource)
{
return true;
}
To customize which actions can perform each user role you only need to add your logic to this method. A silly example could be:
// file: app/Role.php
public function can($action, $resource)
{
$currentUserProfile = $this->name;
// Admin role has no restrictions
if ($currentUserProfile === 'admin')
return true;
// Relaxed read permissions for all roles
if($action === 'index' or $action === 'show')
return true;
// Editor role can edit pages
if ($currentUserProfile === 'editor' and $resouce === 'page' and $action === 'edit')
return true;
// Manager role has full access to categories
if ($currentUserProfile === 'manager' and $resouce === 'category')
return true;
return false;
}
If you still want a more advanced permissions system feel free to fully replace the Permissions
middleware located at app/Http/Middleware/Permissions.php
.
MIT license. Check the included LICENSE.txt file for details.
(c) Stolz.