Files
pathfinder/app/main/model/rolemodel.php
Mark Friedrich ac36d5e074 - new role management for Corporation maps, closed #164
- new role management section for corporations admins
- added column "nullable" detection within /setup page for DB diff
- added new map icon options options to the map add/edit dialog
- refactored setup() method for all tables with static data
- fixed broken map icons
- fixed broken "drag/select" for systems on map
- fixed new "map resize" event for non Chrome browsers
- multiple minor improvements and fixes...
2018-02-16 17:02:10 +01:00

125 lines
2.5 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: exodu
* Date: 28.01.2018
* Time: 12:42
*/
namespace Model;
use DB\SQL\Schema;
class RoleModel extends BasicModel {
protected $table = 'role';
protected $fieldConf = [
'active' => [
'type' => Schema::DT_BOOL,
'nullable' => false,
'default' => 1,
'index' => true
],
'name' => [
'type' => Schema::DT_VARCHAR128,
'nullable' => false,
'default' => ''
],
'label' => [
'type' => Schema::DT_VARCHAR128,
'nullable' => false,
'default' => ''
],
'style' => [
'type' => Schema::DT_VARCHAR128,
'nullable' => false,
'default' => ''
],
'corporationRights' => [
'has-many' => ['Model\CorporationRightModel', 'roleId']
]
];
protected static $tableData = [
[
'id' => 1,
'name' => 'MEMBER',
'label' => 'member',
'style' => 'default'
],
[
'id' => 2,
'name' => 'SUPER',
'label' => 'admin',
'style' => 'danger'
],
[
'id' => 3,
'name' => 'CORPORATION',
'label' => 'manager',
'style' => 'info'
]
];
/**
* get role data
* @return \stdClass
*/
public function getData(){
$roleData = (object) [];
$roleData->name = $this->name;
$roleData->label = $this->label;
return $roleData;
}
/**
* get default role
* @return self|null
*/
public static function getDefaultRole(){
return self::getRoleById(1);
}
/**
* get admin role
* @return self|null
*/
public static function getAdminRole(){
return self::getRoleById(2);
}
/**
* get corporation admin role
* @return self|null
*/
public static function getCorporationManagerRole(){
return self::getRoleById(3);
}
/**
* get role by id
* @param int $roleId
* @return self|null
*/
public static function getRoleById(int $roleId = 1){
$role = (new self())->getById($roleId);
return $role->dry() ? null : $role;
}
/**
* get all corporations
* @return \DB\CortexCollection
*/
public static function getAll(){
$query = [
'active = :active',
':active' => 1
];
return (new self())->find($query);
}
}