dashboard for org
This commit is contained in:
@@ -35,6 +35,7 @@ class Filters extends BaseFilters
|
||||
'pagecache' => PageCache::class,
|
||||
'performance' => PerformanceMetrics::class,
|
||||
'org' => \App\Filters\OrganizationFilter::class,
|
||||
'role' => \App\Filters\RoleFilter::class,
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
+21
-3
@@ -17,9 +17,18 @@ $routes->get('auth/verify/(:any)', 'Auth::verify/$1');
|
||||
$routes->get('auth/resend-verification', 'Auth::resendVerification');
|
||||
$routes->post('auth/resend-verification', 'Auth::resendVerification');
|
||||
|
||||
# Маршруты для приглашений (публичные, без фильтра org)
|
||||
$routes->group('invitation', static function ($routes) {
|
||||
$routes->get('accept/(:any)', 'InvitationController::accept/$1');
|
||||
$routes->post('accept/(:any)', 'InvitationController::processAccept');
|
||||
$routes->post('decline/(:any)', 'InvitationController::decline/$1');
|
||||
$routes->match(['GET', 'POST'], 'complete/(:any)', 'InvitationController::complete/$1');
|
||||
});
|
||||
|
||||
# Защищённые маршруты (с фильтром org)
|
||||
$routes->group('', ['filter' => 'org'], static function ($routes) {
|
||||
$routes->get('organizations', 'Organizations::index');
|
||||
$routes->get('organizations/(:num)/dashboard', 'Organizations::dashboard/$1');
|
||||
$routes->get('organizations/create', 'Organizations::create');
|
||||
$routes->post('organizations/create', 'Organizations::create');
|
||||
$routes->get('organizations/edit/(:num)', 'Organizations::edit/$1');
|
||||
@@ -28,9 +37,18 @@ $routes->group('', ['filter' => 'org'], static function ($routes) {
|
||||
$routes->post('organizations/delete/(:num)', 'Organizations::delete/$1');
|
||||
$routes->get('organizations/switch/(:num)', 'Organizations::switch/$1');
|
||||
|
||||
# Управление пользователями организации
|
||||
$routes->get('organizations/(:num)/users', 'Organizations::users/$1');
|
||||
$routes->get('organizations/(:num)/users/table', 'Organizations::usersTable/$1');
|
||||
$routes->post('organizations/(:num)/users/invite', 'Organizations::inviteUser/$1');
|
||||
$routes->post('organizations/(:num)/users/role', 'Organizations::updateUserRole/$1');
|
||||
$routes->post('organizations/(:num)/users/(:num)/block', 'Organizations::blockUser/$1/$2');
|
||||
$routes->post('organizations/(:num)/users/(:num)/unblock', 'Organizations::unblockUser/$1/$2');
|
||||
$routes->post('organizations/(:num)/users/(:num)/remove', 'Organizations::removeUser/$1/$2');
|
||||
$routes->post('organizations/(:num)/users/leave', 'Organizations::leaveOrganization/$1');
|
||||
$routes->post('organizations/(:num)/users/(:num)/resend', 'Organizations::resendInvite/$1/$2');
|
||||
$routes->post('organizations/(:num)/users/(:num)/cancel', 'Organizations::cancelInvite/$1/$2');
|
||||
});
|
||||
|
||||
# Подключение роутов модулей
|
||||
require_once APPPATH . 'Modules/Clients/Config/Routes.php';
|
||||
|
||||
|
||||
require_once APPPATH . 'Modules/Clients/Config/Routes.php';
|
||||
@@ -29,4 +29,39 @@ class Services extends BaseService
|
||||
* return new \CodeIgniter\Example();
|
||||
* }
|
||||
*/
|
||||
|
||||
/**
|
||||
* Сервис для проверки прав доступа (RBAC)
|
||||
*
|
||||
* @param bool $getShared
|
||||
* @return \App\Services\AccessService
|
||||
*/
|
||||
public static function access(bool $getShared = true)
|
||||
{
|
||||
if ($getShared) {
|
||||
return static::getSharedInstance('access');
|
||||
}
|
||||
|
||||
return new \App\Services\AccessService();
|
||||
}
|
||||
|
||||
/**
|
||||
* Сервис для rate limiting
|
||||
*
|
||||
* @param bool $getShared
|
||||
* @return \App\Services\RateLimitService|null
|
||||
*/
|
||||
public static function rateLimit(bool $getShared = true)
|
||||
{
|
||||
if ($getShared) {
|
||||
return static::getSharedInstance('rateLimit');
|
||||
}
|
||||
|
||||
try {
|
||||
return \App\Services\RateLimitService::getInstance();
|
||||
} catch (\Exception $e) {
|
||||
log_message('warning', 'RateLimitService unavailable: ' . $e->getMessage());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user