stolz/wiki

基于Laravel构建的简单wiki引擎。

维护者

详细信息

github.com/Stolz/Wiki

源代码

问题

安装次数: 1,144

依赖项: 0

建议者: 0

安全: 0

星标: 75

关注者: 4

分支: 17

开放问题: 0

类型:项目

dev-master 2016-04-29 10:03 UTC

This package is auto-updated.

Last update: 2024-09-13 02:23:35 UTC


README

一个简单的PHP wiki引擎。

特点

  • 后端基于Laravel 5.1 PHP框架。代码占用空间小,这使得应用程序非常容易根据您的需求进行定制。
  • 前端基于Zurb Foundation CSS框架,它提供了简洁的响应式布局和友好的移动端用户体验。
  • 页面使用Markdown编写,并可以实时预览最终标记。
  • 用户身份验证/注册可通过Oauth提供者(Facebook、GitHub、Google和Twitter)一键完成。
  • 支持多语言,通过Gettext实现。
  • 包含用于根据用户角色实现您自己的自定义权限系统的模板。

注意事项

此项目并非旨在作为大规模分发的实际应用,而是作为一个概念验证,展示我喜欢使用的技术和概念(RESTful架构依赖注入响应式设计SOLID原则等)。尽管如此,它被实现为在实际场景中100%可用的。

安装

通过git

git clone https://github.com/Stolz/Wiki.git --depth 1 wiki && cd wiki && composer install

通过composer

composer create-project stolz/wiki --prefer-dist --stability=dev --no-scripts && cd wiki

安装项目后,将其配置为任何其他Laravel应用程序

$EDITOR .env
$EDITOR config/app.php
php artisan migrate --seed

自定义权限

尝试对任何wiki资源(用户、页面、分类等)执行操作(创建、更新、删除等)将触发位于app/Role.php文件的can()方法,并带有相应的操作和资源参数。

函数的默认实现非常宽松,允许所有用户角色对所有资源执行所有操作。

/**
 * 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;
}

要自定义每个用户角色可以执行的操作,您只需将您的逻辑添加到此方法中。一个简单的例子可能是

// 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;
}

如果您仍想使用更高级的权限系统,请随意完全替换位于app/Http/Middleware/Permissions.phpPermissions中间件。

许可证

MIT许可证。请参阅包含的LICENSE.txt文件以获取详细信息。

(c) Stolz