Skip to content
Snippets Groups Projects
UserProfile.vue 2.57 KiB
Newer Older
Florent Lavelle's avatar
dev
Florent Lavelle committed
<template>
  <div>
    <h4 class="ui horizontal divider header">
Florent Lavelle's avatar
Florent Lavelle committed
      PROFIL
    </h4>

    <div class="ui divided list">
Florent Lavelle's avatar
dev
Florent Lavelle committed
      <div class="item">
        <div class="right floated content">
          <div class="description">
            <span v-if="user.username">{{ user.username }} </span>
          </div>
        </div>
        <div class="content">
          Nom d'utilisateur
        </div>
      </div>
Florent Lavelle's avatar
Florent Lavelle committed

Florent Lavelle's avatar
dev
Florent Lavelle committed
      <div class="item">
        <div class="right floated content">
          <div class="description">
            {{ userFullname }}
          </div>
        </div>
        <div class="content">
          Nom complet
        </div>
      </div>
Florent Lavelle's avatar
Florent Lavelle committed

Florent Lavelle's avatar
dev
Florent Lavelle committed
      <div class="item">
        <div class="right floated content">
          <div class="description">
            {{ user.email }}
          </div>
        </div>
        <div class="content">
          Adresse e-mail
        </div>
      </div>
Florent Lavelle's avatar
Florent Lavelle committed

Florent Lavelle's avatar
dev
Florent Lavelle committed
      <div class="item">
        <div class="right floated content">
          <div class="description">
            {{ user.is_superuser ? "Oui" : "Non" }}
          </div>
        </div>
        <div class="content">
          Administrateur
        </div>
      </div>
Florent Lavelle's avatar
Florent Lavelle committed
    </div>

    <div
      v-if="qrcode"
      class="qrcode"
    >
      <img :src="qrcode">
      <p>
        Ce QR code vous permet de vous connecter à l'application mobile GéoContrib (bientôt disponible)
      </p>
    </div>
Florent Lavelle's avatar
dev
Florent Lavelle committed
  </div>
</template>

<script>
import { mapState, mapActions } from 'vuex';
import QRCode from 'qrcode';
Florent Lavelle's avatar
dev
Florent Lavelle committed

export default {
Florent Lavelle's avatar
Florent Lavelle committed

Florent Lavelle's avatar
dev
Florent Lavelle committed
  name: 'UserProfile',

  data() {
    return {
      qrcode: null
    };
  },

Florent Lavelle's avatar
dev
Florent Lavelle committed
  computed: {
    ...mapState([
      'configuration',
      'user',
      'userToken'
Florent Lavelle's avatar
dev
Florent Lavelle committed
    ]),

    userFullname() {
Florent Lavelle's avatar
Florent Lavelle committed
      if (this.user.first_name || this.user.last_name) {
Florent Lavelle's avatar
Florent Lavelle committed
        return `${this.user.first_name} ${this.user.last_name}`;
Florent Lavelle's avatar
Florent Lavelle committed
      }
Florent Lavelle's avatar
dev
Florent Lavelle committed
      return null;
    },
  },

  created() {
    this.GET_USER_TOKEN()
      .then(async () => {
        try {
          const qrcodeData = {
            url: `${this.configuration.VUE_APP_DJANGO_BASE}/geocontrib/`,
            token: this.userToken
          };
          this.qrcode = await QRCode.toDataURL(JSON.stringify(qrcodeData));
        } catch (err) {
          console.error(err);
        }
      })
      .catch((err) => {
        console.error(err);
      });
  },

  methods: {
    ...mapActions([
      'GET_USER_TOKEN'
    ])
Florent Lavelle's avatar
dev
Florent Lavelle committed
  }

};
</script>

<style scoped lang="less">
.qrcode {
  img {
    display: block;
    margin: auto;
    width: 12rem;
  }
  p {
    font-size: 0.8rem;
    font-style: italic;
    text-align: center;
  }