get applications access per organization
This commit is contained in:
parent
cde6c529a9
commit
2e99457e16
|
|
@ -25,6 +25,10 @@
|
||||||
php bin/console importmap:require choices.js
|
php bin/console importmap:require choices.js
|
||||||
php bin/console importmap:require choices.js/public/assets/styles/choices.min.css
|
php bin/console importmap:require choices.js/public/assets/styles/choices.min.css
|
||||||
```
|
```
|
||||||
|
### Notes
|
||||||
|
- certaines abbreviations sont utilisées afin de simplifier le code et d'éviter les répétitions ou noms trop longs :
|
||||||
|
- `uo` pour `User Organization`
|
||||||
|
- `uoId` pour `User Organization Id`
|
||||||
|
- `oa` pour `Organization Application`
|
||||||
|
- `at` pour `Access Token`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use App\Entity\Apps;
|
||||||
use App\Entity\Roles;
|
use App\Entity\Roles;
|
||||||
use App\Entity\UsersOrganizations;
|
use App\Entity\UsersOrganizations;
|
||||||
use App\Service\OrganizationsService;
|
use App\Service\OrganizationsService;
|
||||||
|
|
@ -73,6 +74,10 @@ class OrganizationController extends AbstractController
|
||||||
$adminUsers = $this->entityManager->getRepository(UsersOrganizations::class)->getAdminUsersByOrganization($organization);
|
$adminUsers = $this->entityManager->getRepository(UsersOrganizations::class)->getAdminUsersByOrganization($organization);
|
||||||
// reusing the method to avoid code duplication even though it returns an array of UsersOrganizations
|
// reusing the method to avoid code duplication even though it returns an array of UsersOrganizations
|
||||||
$org = $this->usersOrganizationService->findActiveUsersByOrganizations([$organization]);
|
$org = $this->usersOrganizationService->findActiveUsersByOrganizations([$organization]);
|
||||||
|
|
||||||
|
// get all applications
|
||||||
|
$applications = $this->organizationsService->getApplicationsWithAccessStatus($organization);
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
throw $this->createNotFoundException(self::ACCESS_DENIED);
|
throw $this->createNotFoundException(self::ACCESS_DENIED);
|
||||||
}
|
}
|
||||||
|
|
@ -82,6 +87,7 @@ class OrganizationController extends AbstractController
|
||||||
'adminUsers' => $adminUsers,
|
'adminUsers' => $adminUsers,
|
||||||
'newUsers' => $newUsers,
|
'newUsers' => $newUsers,
|
||||||
'org' => $org[0],
|
'org' => $org[0],
|
||||||
|
'applications' => $applications,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Service;
|
namespace App\Service;
|
||||||
|
|
||||||
|
use App\Entity\Apps;
|
||||||
use App\Entity\Organizations;
|
use App\Entity\Organizations;
|
||||||
use App\Entity\Roles;
|
use App\Entity\Roles;
|
||||||
use App\Entity\UsersOrganizations;
|
use App\Entity\UsersOrganizations;
|
||||||
|
|
@ -25,4 +26,36 @@ class OrganizationsService
|
||||||
'isActive' => true]);
|
'isActive' => true]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all applications with organization access status
|
||||||
|
*
|
||||||
|
* @param Organizations $organization
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getApplicationsWithAccessStatus(Organizations $organization): array
|
||||||
|
{
|
||||||
|
// Get all applications
|
||||||
|
$allApplications = $this->entityManager->getRepository(Apps::class)->findAll();
|
||||||
|
|
||||||
|
// Get applications the organization has access to
|
||||||
|
$organizationApps = $organization->getApps();
|
||||||
|
|
||||||
|
// Create a lookup array for faster checking
|
||||||
|
$orgAppIds = [];
|
||||||
|
foreach ($organizationApps as $app) {
|
||||||
|
$orgAppIds[$app->getId()] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build result array
|
||||||
|
$result = [];
|
||||||
|
foreach ($allApplications as $app) {
|
||||||
|
$result[] = [
|
||||||
|
'application' => $app,
|
||||||
|
'has_access' => isset($orgAppIds[$app->getId()])
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -459,4 +459,6 @@ readonly class UserOrganizationService
|
||||||
return $userToOrgs;
|
return $userToOrgs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue