milkwood/可访问

此包已被废弃,不再维护。未建议替代包。
此包最新版本(0.1.6)没有可用的许可证信息。

0.1.6 2015-03-09 17:27 UTC

This package is auto-updated.

Last update: 2022-08-12 20:38:52 UTC


README

Laravel 身份验证中间件

步骤 1:通过 Composer 安装

Composer require 'milkwood/accessable'

步骤 2:添加 ServiceProvider

将以下行添加到您的 Config/App.php 文件中,并创建一个 CH 门面。您在这里添加了 CustomHelper 服务提供者,它是 Accessable 依赖的,以及它自己的服务提供者。您还添加了一个 Customhelper 门面。

"Milkwood\Accessable\AccesableServiceProvider",
"Milkwood\CustomHelper\CustomHelperServiceProvider",

'CH' => 'Milkwood\CustomHelper\CH',

步骤 3:发布中间件

通过控制台发布中间件

php artisan vendor:publish

现在您可以在

['middleware' => 'auth]

您的路由中使用

步骤 4:添加检查的动作

添加您为用户获取的规则

protected $keysToCheckFor = ['reqRoles','forbiddenRoles','minAccessLevel','maxAccessLevel','moduleToAccess'];

步骤 5:添加特性到类

将 accessable 特性添加到类中,例如用户

use Milkwood\Accessable\Accessable;

class ExampleClass{
	
	use Accessable;

}

步骤 6:创建规则

以下是一些 usertype 规则的示例

// Requirement functions

public function reqRoles($roles){

	$roles = explode('|',$roles);
	if( in_array( $this->name , $roles) ){
		return true;
	}

	$this->error = 'Din bruger type har ikke adgang til den pågældende side';
	return false;

}

public function forbiddenRoles($roles){

	$roles = explode('|',$roles);
	if( ! in_array( $this->name , $roles) ){
		return true;
	}

	$this->error = 'Din bruger type er restrikteret fra den pågældende side';
	return false;
	
}

public function minAccessLevel($accessLevel){

	if( $this->access_level >= $accessLevel){
		return true;
	}

	$this->error = 'Din brugertype har for lav access til den pågældende side';
	return false;

}

public function maxAccessLevel($accessLevel){

	if( $this->access_level <= $accessLevel){
		return true;
	}

	$this->error = 'Din brugertype har for høj access til den pågældende side';
	return false;

}

以下是如何要求公司模块的示例

public function moduleToAccess($moduleName){
	
	$modulesCompanyHasAccessTo = $this->modules->lists('name');

	if( in_array($moduleName, $modulesCompanyHasAccessTo)){
		return true;
	}

	$this->error = 'Din virksomhed har ikke adgang til dette modul';
	return false;

}

以下是如何将请求发送到另一个类的示例

public function reqRoles($roles){

	return $this->sendOfAccess('userType', [ __FUNCTION__ => $roles]);

}

public function forbiddenRoles($roles){

	return $this->sendOfAccess('userType', [ __FUNCTION__ => $roles]);
	
}

public function minAccessLevel($accessLevel){

	return $this->sendOfAccess('userType', [ __FUNCTION__ => $accessLevel]);

}

public function maxAccessLevel($accessLevel){

	return $this->sendOfAccess('userType', [ __FUNCTION__ => $accessLevel]);

}

public function moduleToAccess($moduleName){

	return $this->sendOfAccess('company', [ __FUNCTION__ => $moduleName]);

}