2929use OCA \Libresign \Service \IdDocsService ;
3030use OCA \Libresign \Service \IdentifyMethod \IIdentifyMethod ;
3131use OCA \Libresign \Service \IdentifyMethodService ;
32- use OCA \Libresign \Service \Policy \IPolicyAuthorizationService ;
32+ use OCA \Libresign \Service \Policy \PolicyAuthorizationService ;
3333use OCA \Libresign \Service \Policy \RequestSignAuthorizationService ;
3434use OCA \Libresign \Service \RequestSignatureService ;
3535use OCA \Libresign \Service \SignerElementsService ;
4646use OCP \Files \IMimeTypeDetector ;
4747use OCP \Files \IRootFolder ;
4848use OCP \Files \NotFoundException ;
49+ use OCP \Group \ISubAdmin ;
4950use OCP \IAppConfig ;
5051use OCP \IGroupManager ;
5152use OCP \IL10N ;
@@ -79,7 +80,8 @@ final class AccountServiceTest extends \OCA\Libresign\Tests\Unit\TestCase {
7980 private ValidateHelper &MockObject $ validateHelper ;
8081 private IURLGenerator &MockObject $ urlGenerator ;
8182 private IGroupManager &MockObject $ groupManager ;
82- private IPolicyAuthorizationService &MockObject $ policyAuthorizationService ;
83+ private ISubAdmin &MockObject $ subAdmin ;
84+ private PolicyAuthorizationService $ policyAuthorizationService ;
8385 private IdDocsService &MockObject $ idDocsService ;
8486 private SignerElementsService &MockObject $ signerElementsService ;
8587 private UserElementMapper &MockObject $ userElementMapper ;
@@ -118,7 +120,8 @@ public function setUp(): void {
118120 $ this ->urlGenerator = $ this ->createMock (IURLGenerator::class);
119121 $ this ->pkcs12Handler = $ this ->createMock (Pkcs12Handler::class);
120122 $ this ->groupManager = $ this ->createMock (IGroupManager::class);
121- $ this ->policyAuthorizationService = $ this ->createMock (IPolicyAuthorizationService::class);
123+ $ this ->subAdmin = $ this ->createMock (ISubAdmin::class);
124+ $ this ->policyAuthorizationService = new PolicyAuthorizationService ($ this ->groupManager , $ this ->subAdmin );
122125 $ this ->idDocsService = $ this ->createMock (IdDocsService::class);
123126 $ this ->signerElementsService = $ this ->createMock (SignerElementsService::class);
124127 $ this ->userElementMapper = $ this ->createMock (UserElementMapper::class);
@@ -191,10 +194,8 @@ public function testGetConfigSetsCanManageGroupPoliciesForSubAdmin(): void {
191194 $ user = $ this ->createMock (IUser::class);
192195 $ user ->method ('getUID ' )->willReturn ('subadmin-user ' );
193196
194- $ this ->policyAuthorizationService
195- ->method ('canUserManageGroupPolicies ' )
196- ->with ($ user )
197- ->willReturn (true );
197+ $ this ->groupManager ->method ('isAdmin ' )->with ('subadmin-user ' )->willReturn (false );
198+ $ this ->subAdmin ->method ('isSubAdmin ' )->with ($ user )->willReturn (true );
198199
199200 $ config = $ this ->getService ()->getConfig ($ user );
200201
@@ -924,10 +925,10 @@ public function testGetConfigIncludesManageablePolicyGroupIds(): void {
924925 $ user = $ this ->createMock (IUser::class);
925926 $ user ->method ('getUID ' )->willReturn ('manageable-user ' );
926927
927- $ this ->policyAuthorizationService
928- -> method ( ' getManageablePolicyGroupIds ' )
929- -> with ( $ user )
930- -> willReturn ([ ' finance ' ]);
928+ $ this ->groupManager -> method ( ' isAdmin ' )-> with ( ' manageable-user ' )-> willReturn ( false );
929+ $ group = $ this -> createMock (\ OCP \IGroup::class);
930+ $ group -> method ( ' getGID ' )-> willReturn ( ' finance ' );
931+ $ this -> subAdmin -> method ( ' getSubAdminsGroups ' )-> with ( $ user )-> willReturn ([ $ group ]);
931932
932933 $ config = $ this ->getService ()->getConfig ($ user );
933934
@@ -939,10 +940,7 @@ public function testGetConfigIncludesCanManageGroupPoliciesForInstanceAdmin(): v
939940 $ user = $ this ->createMock (IUser::class);
940941 $ user ->method ('getUID ' )->willReturn ('instance-admin ' );
941942
942- $ this ->policyAuthorizationService
943- ->method ('canUserManageGroupPolicies ' )
944- ->with ($ user )
945- ->willReturn (true );
943+ $ this ->groupManager ->method ('isAdmin ' )->with ('instance-admin ' )->willReturn (true );
946944
947945 $ config = $ this ->getService ()->getConfig ($ user );
948946
0 commit comments