5f1ee5fb0e
The 'name' field was really redundant and caused confusion in the codebase, since the 'Display' name is often used and we have a 'system_name' for the admin and public role. This fixes #2032, Where external auth group matching has confusing behaviour as matching was done against the display_name, if no external_auth field is set, but only roles with a match 'name' field would be considered. This also fixes and error where the role users migration, on role delete, would not actually fire due to mis-matching http body keys. Looks like this has been an issue from the start. Added some testing to cover. Fixes #2211. Also converted phpdoc to typehints in many areas of the reviewed code during the above.
28 lines
576 B
PHP
28 lines
576 B
PHP
<?php namespace BookStack\Auth\Permissions;
|
|
|
|
use BookStack\Auth\Role;
|
|
use BookStack\Model;
|
|
|
|
/**
|
|
* @property int $id
|
|
*/
|
|
class RolePermission extends Model
|
|
{
|
|
/**
|
|
* The roles that belong to the permission.
|
|
*/
|
|
public function roles()
|
|
{
|
|
return $this->belongsToMany(Role::class, 'permission_role', 'permission_id', 'role_id');
|
|
}
|
|
|
|
/**
|
|
* Get the permission object by name.
|
|
* @param $name
|
|
* @return mixed
|
|
*/
|
|
public static function getByName($name)
|
|
{
|
|
return static::where('name', '=', $name)->first();
|
|
}
|
|
}
|