| 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: | 2025-10-25 15:02:26 | 
| Package Statistics | |
|---|---|
| Total Downloads: | 1,149 | 
| Monthly Downloads: | 1 | 
| Daily Downloads: | 0 | 
| Total Stars: | 76 | 
| Total Watchers: | 3 | 
| 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.