Skip to content
Snippets Groups Projects
Select Git revision
  • bc4ed81bafcdb8ff30a2ce6368349156aa988223
  • master default protected
  • gitkeep
  • dev protected
  • Issue/2218-updateLinksToDocumentationPage
  • Issue/2215-releaseNewsBeGone
  • czepiel-devops
  • Issue/1756-maintenanceBannerDeployment
  • Issue/1869-LoginForTUDO
  • Issue/1941-loginPageText
  • Sprint/2022-01
  • Hotfix/1911-fixFormatting
  • Sprint/2021-2022
  • Issue/912-rearrangeHeader
  • Issue/1872-addingTUDaToLoginPage
  • Sprint/2021-22
  • Issue/1743-changedLink
  • Hotfix/64-releaseUDE
  • Sprint/2021-19
  • Product/1629-onboardingOtherUniversities
  • Topic/1711-extendResourceTypeConfiguration
  • v1.23.0
  • v1.22.0
  • v1.21.1
  • v1.21.0
  • v1.20.2
  • v1.20.1
  • v1.20.0
  • v1.19.0
  • v1.18.1
  • v1.18.0
  • v1.17.0
  • v1.16.0
  • v1.15.0
  • v1.14.1
  • v1.14.0
  • v1.13.0
  • v1.12.0
  • v1.11.1
  • v1.11.0
  • v1.10.0
41 results

LogoutMain.vue

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    LogoutMain.vue 1.91 KiB
    <template>
      <div>
        <h5 class="card-title">{{ $t('login_headline') }}</h5>
        <div class="row" v-show="orcidLoggedIn">
          <button class="btn btn-primary w-100" @click.prevent="clickLogoutOrcid">
            <span>
              <img alt="ORCID logo" id="orcid-id-logo" src="https://orcid.org/sites/default/files/images/orcid_24x24.png" width="25" height="25" />
            </span>
            <span>  {{ $t('logout_button_orcid') }}</span>
          </button>
        </div>
        <div class="row" v-show="this.loggedInWithShibboleth">
          <button class="btn btn-primary w-100" @click.prevent="clickLogoutShibboleth">
            <span>{{ $t('logout_shibboleth') }}</span>
          </button>
        </div>
        <div class="row">
          <button class="btn btn-secondary w-100" @click.prevent="changeLogoutState">{{ $t('signup') }}</button>
        </div>
      </div>
    </template>
    
    <script lang='ts'>
    import Vue from 'vue';
    import jsonp from 'jsonp';
    
    export default Vue.extend({
      name: 'LogoutMain',
      data() {
        return {
          orcidLoggedIn: false,
        };
      },
      mounted() {
        if (document.cookie.indexOf('coscine.mergetoken') !== -1) {
          window.location.href = this.mergeReturnUrl;
          return;
        }
        this.getOrcidState();
      },
      props: {
        idpUrl: String,
        loggedInWithShibboleth: Boolean,
        mergeReturnUrl: String,
      },
      methods: {
        clickLogoutOrcid() {
          this.getOrcidState(true);
        },
        clickLogoutShibboleth() {
          window.location.href = this.idpUrl + '/idp/profile/Logout';
        },
        changeLogoutState() {
          this.$emit('changeLogoutState');
        },
        getOrcidState(logout = false) {
          const me = this;
          jsonp('https://orcid.org/userStatus.json' + ((logout) ? '?logUserOut=true' : ''),
            undefined,
            (err: any, data: any) => {
              if (err) {
                me.orcidLoggedIn = false;
              } else {
                me.orcidLoggedIn = data.loggedIn;
              }
            });
        },
      },
    });
    </script>
    
    <style scoped>
    </style>