diff --git a/app/src/helpers/dataStore.js b/app/src/helpers/dataStore.js
index 1d2ac4fa..9d59cc27 100644
--- a/app/src/helpers/dataStore.js
+++ b/app/src/helpers/dataStore.js
@@ -20,7 +20,7 @@ export default {
},
'ADD_USERS' (state, user) {
- // FIXME will trigger an error if first created user
+ if (state.users === undefined) state.users = {}
Vue.set(state.users, user.username, user)
},
@@ -47,6 +47,12 @@ export default {
state.groups = groups
},
+ 'ADD_GROUPS' (state, { name }) {
+ if (state.groups !== undefined) {
+ Vue.set(state.groups, name, { members: [], permissions: [] })
+ }
+ },
+
'SET_PERMISSIONS' (state, permissions) {
state.permissions = permissions
}
@@ -68,7 +74,7 @@ export default {
'FETCH_ALL' ({ state, commit }, queries) {
return Promise.all(queries.map(({ uri, param, storeKey = uri, force = false }) => {
const currentState = param ? state[storeKey][param] : state[storeKey]
- // if data has already been queried, simply return
+ // if data has already been queried, simply return the state as cached
if (currentState !== undefined && !force) {
return { cached: true, responseData: currentState }
}
diff --git a/app/src/locales/en.json b/app/src/locales/en.json
index 5a01cd8a..ae80af6e 100644
--- a/app/src/locales/en.json
+++ b/app/src/locales/en.json
@@ -120,9 +120,10 @@
"firewall": "Firewall",
"footer_version": "Powered by {ynh} {version} ({repo}).",
"form_errors": {
- "username_syntax": "Invalid username: Must be lower-case alphanumeric and underscore characters only",
- "username_exists": "The user '{user}' already exists",
- "email_syntax": "Invalid email: Must be alphanumeric, underscore and dash characters only (e.g. someone@example.com, s0me-1@example.com)"
+ "email_syntax": "Invalid email: Must be alphanumeric, underscore and dash characters only (e.g. someone@example.com, s0me-1@example.com)",
+ "groupname_syntax": "Invalid group name: Must be alphanumeric, underscore and space characters only",
+ "username_exists": "The user '{name}' already exists",
+ "username_syntax": "Invalid username: Must be lower-case alphanumeric and underscore characters only"
},
"form_input_example": "Example: %s",
"from_to": "from %s to %s",
@@ -223,7 +224,8 @@
"placeholder": {
"username": "johndoe",
"firstname": "John",
- "lastname": "Doe"
+ "lastname": "Doe",
+ "groupname": "My group name"
},
"logs": "Logs",
"logs_operation": "Operations made on system with YunoHost",
diff --git a/app/src/views/group/GroupCreate.vue b/app/src/views/group/GroupCreate.vue
index 8e67f856..645eb15c 100644
--- a/app/src/views/group/GroupCreate.vue
+++ b/app/src/views/group/GroupCreate.vue
@@ -1,11 +1,81 @@
+
+
+
+
+
+
+ {{ this.error.groupname }}
+
+
+
+
+
+
+
+ {{ $t('save') }}
+
+
+
+
diff --git a/app/src/views/user/UserCreate.vue b/app/src/views/user/UserCreate.vue
index 2214448b..2fc5c72e 100644
--- a/app/src/views/user/UserCreate.vue
+++ b/app/src/views/user/UserCreate.vue
@@ -127,6 +127,8 @@
import SplittedMailInput from '@/components/SplittedMailInput'
export default {
+ name: 'UserCreate',
+
data () {
return {
form: {
@@ -194,7 +196,7 @@ export default {
// FIXME check allowed characters
error = this.$i18n.t('form_errors.username_syntax')
} else if (Object.keys(this.$store.state.data.users).includes(username)) {
- error = this.$i18n.t('form_errors.username_exists', { user: username })
+ error = this.$i18n.t('form_errors.username_exists', { name: username })
}
this.error.username = error
this.isValid.username = error === '' ? null : false