user.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import { REST } from 'vuejs/api/rest-axios'
  2. import { JSONAPI } from 'vuejs/api/json-axios'
  3. import qs from 'querystring'
  4. export default {
  5. namespaced: true,
  6. // initial state
  7. state : {
  8. uid:null,
  9. // username: '',
  10. mail:'',
  11. token: null,
  12. logout_token: null,
  13. isloggedin: false
  14. },
  15. // getters
  16. getters : {},
  17. // mutations
  18. mutations : {
  19. setToken (state, data) {
  20. state.uid = data.current_user.uid
  21. // state.username = data.username
  22. state.mail = data.current_user.mail
  23. state.token = data.csrf_token
  24. state.isloggedin = true
  25. state.logout_token = data.logout_token
  26. },
  27. setUid (state, uid) {
  28. state.uid = uid
  29. state.isloggedin = true
  30. },
  31. setUser (state, data) {
  32. state.mail = data.mail[0].value
  33. state.uuid = data.uuid[0].value
  34. },
  35. setLoggedOut (state) {
  36. state.uid= null
  37. state.mail = ''
  38. state.token = null
  39. state.isloggedin = false
  40. state.logout_token = null
  41. }
  42. },
  43. // actions
  44. actions : {
  45. getToken ({ dispatch, commit, state }, credentials) {
  46. REST.post('/user/login?_format=json', credentials)
  47. .then(({ data }) => {
  48. console.log('user getToken data', data)
  49. commit('setToken', data)
  50. dispatch('getUser')
  51. })
  52. .catch(( error ) => {
  53. console.warn('Issue with login', error)
  54. Promise.reject(error)
  55. })
  56. },
  57. getUser ({ commit, state }) {
  58. let params = {
  59. token: state.token
  60. }
  61. REST.get(`/user/${state.uid}?_format=json`, params)
  62. .then(({ data }) => {
  63. console.log('user REST getUser data', data)
  64. console.log('roles', data['roles']);
  65. commit('setUser', data)
  66. JSONAPI.get(`/user/user/${state.uuid}?include=roles`)
  67. .then(({ data }) => {
  68. console.log('user JSONAPI getUser data', data)
  69. })
  70. .catch(( error ) => {
  71. console.warn('Issue with getUser', error)
  72. Promise.reject(error)
  73. })
  74. })
  75. .catch(( error ) => {
  76. console.warn('Issue with getUser', error)
  77. Promise.reject(error)
  78. })
  79. },
  80. userLogout ({ commit, state }) {
  81. let credentials = qs.stringify({
  82. token: state.token
  83. })
  84. REST.post('/user/logout', credentials)
  85. .then((resp) => {
  86. console.log('resp', resp)
  87. commit('setLoggedOut')
  88. })
  89. .catch(( error ) => {
  90. console.warn('Issue with logout', error)
  91. Promise.reject(error)
  92. })
  93. }
  94. }
  95. }