UI16 System Settings Configuration - Domain Picker

German Alvarez2
Tera Expert

Hi Masters,

We have just migrated to Geneva in a domain based instance and we are dealing with the Domain Picker.

Requirement 1/ The Domain box should be mandatory shown for all the users in the top bar (Banner) --> Done by setting [sys_user_preference]

        - Key: glide.ui.domain_picker.in_header

        - User: EMPTY!!

        - Value: true

        --> DONE!

Requirement 2/ Users shouldn't be able to quit out the Domain Picker from the top bar (Banner) -- Quit out Domain Picker in Header Checkbox --> Under investigation.

        - I've seen that there are some UI Macros called "domain_select" that seems to do the trick, but both of them are deactivated -> ¿?

        - I've seen also that this <div> in the DOM is rendered by an Angular directive, called "domain-picker" but I'm not able to find out where is it implemented in order to overwrite or modify it and check this requirement.

Could anybody help me with the Requirement 2 ???

HTML Rendered in DOM:

<domain-picker

      current="{&quot;value&quot;:&quot;global&quot;,&quot;label&quot;:&quot;global&quot;}"

      show-in-header=""

      in-header=""

      class="ng-isolate-scope">

      <!-- ngIf: !inHeader || domains.showInHeader -->

              <div ng-if="!inHeader || domains.showInHeader" class="concourse-domain-picker ng-scope">

                      <div class="form-group">

                              <!-- ngIf: !inHeader -->

                                      <label ng-if="!inHeader" for="domain_picker_select" class="col-sm-5 section-title-top control-label ng-scope">

                                              <span class="icon-tree label-icon"></span>Domain

                                      </label>

                              <!-- end ngIf: !inHeader -->

                              <!-- ngIf: inHeader -->

                                      <span ng-class="{'one-control' : !inHeader}" class="col-sm-7 selector one-control">

                                              <select id="domain_picker_select" ng-model="domains.currentValue" class="form-control ng-pristine ng-untouched ng-valid" ng-change="updateDomain()" name="domain_picker_select" ng-options="domain.value as domain.label for domain in domains.list">

                                                      <option value="string:global" label="global" selected="selected">global</option>

                                              </select>

                                              <!-- ngIf: !inHeader -->

                                                      <a class="icon-clear-cache btn btn-icon ng-scope" title="Reset to default domain" ng-click="setDefaultDomain()" ng-if="!inHeader" href="javascript:void(0);"></a>

                                              <!-- end ngIf: !inHeader -->

                                      </span>

                      </div>

                      <!-- ngIf: !inHeader -->

                              <div ng-if="!inHeader" class="form-group ng-scope">

                                      <label class="col-sm-5 control-label" for="domain_picker_in_header">Show domain picker in header</label>

                                      <div class="col-sm-7 input-switch">

                                              <input ng-model="showInHeader" id="domain_picker_in_header" type="checkbox" name="domain_picker_in_header" class="ng-pristine ng-untouched ng-valid">

                                              <label class="switch" for="domain_picker_in_header"></label>

                                      </div>

                              </div>

                      <!-- end ngIf: !inHeader -->

              </div>

      <!-- end ngIf: !inHeader || domains.showInHeader -->

</domain-picker>

4 REPLIES 4

javier_messeri
Kilo Expert

Hi German,



In Geneva, to avoid users in an instance to change between the different domains, option "Show domain picker in header" has to be disabled, and normally is available to all users by default by clicking in "Settings" gear icon"->General, in UI16.


To disable the "Show domain picker in header", two steps were needed:



1)Create/modify property "glide.ui.domain_picker.role" (type string) if not exists

In the "Value" field, just write the roles to be ALLOWED to see this option(separated by commas). Leaving the field empty will allow only admin users to see it.




Bear in mind that users with role 'itil' will be able to see the picker always.




2)Search for UI Macros named "domain_select" and set "active" to false


For UI15, just apply step 2.



This seems to work for Geneva release.



Cheers,


Javier.


Marion de Groo1
Tera Guru

In Paris you can just disable the domain picker for certain roles using a system property:

  • glide.ui.domain_picker.role By default, users with the itil role, and roles that include the itil role can access the domain picker in UI16. You can restrict roles that have access to the domain picker by setting the roles as a  coma separated list of roles in this system property.

Denise Smith
Tera Contributor

Hello German> I found your article above and I'm interested in 'how you did achieve the following':
The Domain box should be mandatory shown for all the users in the top bar (Banner)

I want this also - so users don't have to click the gear icon' but always have the domain picker showing.

a/ I have tried to add the following (not working for me) sys_propertys:

-glide.ui.domain_picker.role (added for itil) 
-glide.ui.domain_reference_picker.enabled (true) 
-glide.ui.domain_picker.in_header 

b/ I even tried what you said above for User preference as you mentioned:
-glide.ui.domain_picker.in_header (true) and 'empty' for user.

c/ I also tried to update (make active) the UI Macro called: domain_select 

 

cleared cache, and users still won't see the picker when I impersonate them to test.

Thx. Denise.

luisparra
Tera Contributor

Hi everyone,

 

I share official DOCS about "Requirement 2" of German Alvarez2 (Under Investigation). I hope help some people:

 

- Restrict access to the domain picker (POLARIS/NEXT EXPERIENCE)
https://docs.servicenow.com/en-US/bundle/utah-platform-security/page/administer/company-and-domain-s...

 

Regards.

Luis