diff --git a/src/app/access/access.state.ts b/src/app/access/access.state.ts
index 699678993783163cd304809d7703cc3513493fbb..91eff44b5a9e0a9642a935b91e1962b93f77f47f 100644
--- a/src/app/access/access.state.ts
+++ b/src/app/access/access.state.ts
@@ -9,7 +9,7 @@ import {ApiService} from "@app/shared/services/api.service";
 import {CrudHelperUtil} from "@app/shared/utils/crud-helper.util";
 import {MapUtil} from "@app/shared/utils/map.util";
 import {StringUtil} from "@app/shared/utils/string.util";
-import {Action, State, StateContext} from "@ngxs/store";
+import {Action, State, StateContext, Store} from "@ngxs/store";
 import {tap} from "rxjs/internal/operators/tap";
 import {catchError} from "rxjs/operators";
 
@@ -29,7 +29,7 @@ export interface AccessStateModel extends CrudStateModel<ArchiveMetadataModel> {
   },
 })
 export class AccessState {
-  constructor(private apiService: ApiService) {
+  constructor(private apiService: ApiService, protected store: Store, ) {
   }
 
   private readonly DEFAULT_SEARCH = "*";
diff --git a/src/app/deposit/deposit.state.ts b/src/app/deposit/deposit.state.ts
index 685807a072481f2192739e6b825ea818514707ef..38b74c6de85a177d971d5cfadf736cf3be7ad137 100644
--- a/src/app/deposit/deposit.state.ts
+++ b/src/app/deposit/deposit.state.ts
@@ -16,7 +16,7 @@ import {PreservationPolicyAction} from "@app/shared/preservation-policy.action";
 import {ApiService} from "@app/shared/services/api.service";
 import {SubmissionPolicyAction} from "@app/shared/submission-policy.action";
 import {NotificationService} from "@app/shared/services/notification.service";
-import {Action, State, StateContext} from "@ngxs/store";
+import {Action, State, StateContext, Store} from "@ngxs/store";
 import {Observable} from "rxjs";
 import {map} from "rxjs/operators";
 
@@ -43,8 +43,9 @@ export interface DepositStateModel extends CrudStateModel<DepositsModel> {
 })
 export class DepositState extends CrudState<DepositsModel> {
   constructor(protected apiService: ApiService,
+              protected store: Store,
               protected notificationService: NotificationService) {
-    super(apiService, notificationService);
+    super(apiService, store, notificationService);
   }
 
   defineUrlResource(): ResourceApiEnum {
diff --git a/src/app/shared/crud.state.ts b/src/app/shared/crud.state.ts
index 6b3ea24a0a0c2cc52a0c4b15c3858114be511bf8..17ea80e9db8cc8a5444588b534f50745dda81f83 100644
--- a/src/app/shared/crud.state.ts
+++ b/src/app/shared/crud.state.ts
@@ -16,7 +16,7 @@ import {CrudRouteUtil} from "@app/shared/utils/crud-route.util";
 import {ObjectUtil} from "@app/shared/utils/object.util";
 import {TRANSLATE} from "@app/shared/utils/translate.util";
 import {Navigate} from "@ngxs/router-plugin";
-import {StateContext} from "@ngxs/store";
+import {StateContext, Store} from "@ngxs/store";
 import _ from "lodash";
 import {Observable} from "rxjs";
 import {catchError} from "rxjs/internal/operators/catchError";
@@ -35,6 +35,7 @@ export abstract class CrudState<T> {
   private readonly subResource: ApiResourceNameEnum[];
 
   protected constructor(protected apiService: ApiService,
+                        protected store: Store,
                         protected notificationService: NotificationService) {
     this.urlResource = this.defineUrlResource();
     this.state = this.defineState();
diff --git a/src/app/shared/enums/api.enum.ts b/src/app/shared/enums/api.enum.ts
index 650591e65d56756991b0fe086cc1050c64789a6b..5c0708b77cde64c234682fb4d327b21c6b0a9a10 100644
--- a/src/app/shared/enums/api.enum.ts
+++ b/src/app/shared/enums/api.enum.ts
@@ -53,6 +53,8 @@ export class AccessResourceApiEnum implements ResourceApiEnum {
     BaseResourceApiEnum.access + sep + ApiResourceNameEnum.OAI_SETS;
   static orders =
     BaseResourceApiEnum.access + sep + ApiResourceNameEnum.ORDER;
+  static organizationalUnits =
+    BaseResourceApiEnum.access + sep + ApiResourceNameEnum.ORG_UNIT;
 }
 
 export class DataManagementApiEnum implements ResourceApiEnum {
diff --git a/src/app/shared/language.state.ts b/src/app/shared/language.state.ts
index 8e2b6ccdf4248275279f0735aaf9cadef49874a7..c9cb9bee08c91193ac306393cda4d5b8c2b6680e 100644
--- a/src/app/shared/language.state.ts
+++ b/src/app/shared/language.state.ts
@@ -7,7 +7,7 @@ import {LanguageAction} from "@app/shared/language.action";
 import {QueryParametersModel} from "@app/shared/models/query-parameters.model";
 import {ApiService} from "@app/shared/services/api.service";
 import {NotificationService} from "@app/shared/services/notification.service";
-import {Action, State, StateContext} from "@ngxs/store";
+import {Action, State, StateContext, Store} from "@ngxs/store";
 import {Observable} from "rxjs";
 
 export interface LanguageStateModel extends CrudStateModel<LanguagesModel> {
@@ -25,8 +25,9 @@ export interface LanguageStateModel extends CrudStateModel<LanguagesModel> {
 })
 export class LanguageState extends CrudState<LanguagesModel> {
   constructor(protected apiService: ApiService,
+              protected store: Store,
               protected notificationService: NotificationService) {
-    super(apiService, notificationService);
+    super(apiService, store, notificationService);
   }
 
   defineState(): StateEnum {
diff --git a/src/app/shared/license.state.ts b/src/app/shared/license.state.ts
index b3da08b3d968a256845a0696301d491e4fb4f1e1..88074a5cc317136970e97f24911ec85d9dabc5e1 100644
--- a/src/app/shared/license.state.ts
+++ b/src/app/shared/license.state.ts
@@ -7,7 +7,7 @@ import {LicenseAction} from "@app/shared/license.action";
 import {QueryParametersModel} from "@app/shared/models/query-parameters.model";
 import {ApiService} from "@app/shared/services/api.service";
 import {NotificationService} from "@app/shared/services/notification.service";
-import {Action, State, StateContext} from "@ngxs/store";
+import {Action, State, StateContext, Store} from "@ngxs/store";
 import {Observable} from "rxjs";
 
 export interface LicenseStateModel extends CrudStateModel<LicensesModel> {
@@ -25,8 +25,9 @@ export interface LicenseStateModel extends CrudStateModel<LicensesModel> {
 })
 export class LicenseState extends CrudState<LicensesModel> {
   constructor(protected apiService: ApiService,
+              protected store: Store,
               protected notificationService: NotificationService) {
-    super(apiService, notificationService);
+    super(apiService, store, notificationService);
   }
 
   defineState(): StateEnum {
diff --git a/src/app/shared/organizational-unit.state.ts b/src/app/shared/organizational-unit.state.ts
index 0ca560222c6a02927261a808da16a9cba35c00be..af9320762736083dd24190de0c0080d5e1776839 100644
--- a/src/app/shared/organizational-unit.state.ts
+++ b/src/app/shared/organizational-unit.state.ts
@@ -1,8 +1,9 @@
+import {AppStateModel} from "@app/app.state";
 import {DepositStateModel} from "@app/deposit/deposit.state";
 import {OrganizationalUnitsModel, SubmissionPoliciesModel} from "@app/generated-api";
 import {CrudState, CrudStateModel} from "@app/shared/crud.state";
 import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum";
-import {AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum";
+import {AccessResourceApiEnum, AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum";
 import {ModelAttributeEnum} from "@app/shared/enums/model-attribute.enum";
 import {StateEnum} from "@app/shared/enums/state.enum";
 import {CollectionTypedModel} from "@app/shared/models/collection-typed.model";
@@ -40,10 +41,10 @@ export interface OrganizationalUnitStateModel extends CrudStateModel<Organizatio
 export class OrganizationalUnitState extends CrudState<OrganizationalUnitsModel> {
 
   constructor(protected apiService: ApiService,
+              protected store: Store,
               protected notificationService: NotificationService,
-              private actions$: Actions,
-              private store: Store) {
-    super(apiService, notificationService);
+              private actions$: Actions) {
+    super(apiService, store, notificationService);
     zip(this.actions$.pipe(ofActionCompleted(OrgUnitAction.CreateSubResourceSubmissionPolicies)),
       this.actions$.pipe(ofActionCompleted(OrgUnitAction.DeleteSubResourceSubmissionPolicies)))
       .pipe(
@@ -59,7 +60,11 @@ export class OrganizationalUnitState extends CrudState<OrganizationalUnitsModel>
   }
 
   defineUrlResource(): ResourceApiEnum {
-    return AdminResourceApiEnum.organizationalUnits;
+    const isLoggedId = this.store.selectSnapshot((state) => (state[StateEnum.application] as AppStateModel).isLoggedIn);
+    if (isLoggedId) {
+      return AdminResourceApiEnum.organizationalUnits;
+    }
+    return AccessResourceApiEnum.organizationalUnits;
   }
 
   defineState(): StateEnum {
diff --git a/src/app/shared/preservation-policy.state.ts b/src/app/shared/preservation-policy.state.ts
index 62644fba83d34c9fded3f68c023c4994b17668d0..b80a239da8e88e842159552410e4b83badb1d4fe 100644
--- a/src/app/shared/preservation-policy.state.ts
+++ b/src/app/shared/preservation-policy.state.ts
@@ -7,7 +7,7 @@ import {QueryParametersModel} from "@app/shared/models/query-parameters.model";
 import {PreservationPolicyAction} from "@app/shared/preservation-policy.action";
 import {ApiService} from "@app/shared/services/api.service";
 import {NotificationService} from "@app/shared/services/notification.service";
-import {Action, State, StateContext} from "@ngxs/store";
+import {Action, State, StateContext, Store} from "@ngxs/store";
 import {Observable} from "rxjs";
 
 export interface PreservationPolicyStateModel extends CrudStateModel<PreservationPoliciesModel> {
@@ -25,8 +25,9 @@ export interface PreservationPolicyStateModel extends CrudStateModel<Preservatio
 })
 export class PreservationPolicyState extends CrudState<PreservationPoliciesModel> {
   constructor(protected apiService: ApiService,
+              protected store: Store,
               protected notificationService: NotificationService) {
-    super(apiService, notificationService);
+    super(apiService, store, notificationService);
   }
 
   defineState(): StateEnum {
diff --git a/src/app/shared/submission-policy.state.ts b/src/app/shared/submission-policy.state.ts
index b28cd88d424ccdeca44be645d3fb89233a456750..9ffd3f0735eb28477838c68614f7452f75a84dc7 100644
--- a/src/app/shared/submission-policy.state.ts
+++ b/src/app/shared/submission-policy.state.ts
@@ -7,7 +7,7 @@ import {QueryParametersModel} from "@app/shared/models/query-parameters.model";
 import {ApiService} from "@app/shared/services/api.service";
 import {NotificationService} from "@app/shared/services/notification.service";
 import {SubmissionPolicyAction} from "@app/shared/submission-policy.action";
-import {Action, State, StateContext} from "@ngxs/store";
+import {Action, State, StateContext, Store} from "@ngxs/store";
 import {Observable} from "rxjs";
 
 export interface SubmissionPolicyStateModel extends CrudStateModel<SubmissionPoliciesModel> {
@@ -25,8 +25,9 @@ export interface SubmissionPolicyStateModel extends CrudStateModel<SubmissionPol
 })
 export class SubmissionPolicyState extends CrudState<SubmissionPoliciesModel> {
   constructor(protected apiService: ApiService,
+              protected store: Store,
               protected notificationService: NotificationService) {
-    super(apiService, notificationService);
+    super(apiService, store, notificationService);
   }
 
   defineUrlResource(): ResourceApiEnum {