diff options
-rw-r--r-- | app/Controllers/Http/DashboardController.js | 5 | ||||
-rw-r--r-- | app/Controllers/Http/UserController.js | 19 | ||||
-rw-r--r-- | database/migrations/1612629845398_users_update_schema.js | 20 | ||||
-rw-r--r-- | resources/views/dashboard/account.edge | 8 | ||||
-rw-r--r-- | resources/views/dashboard/data.edge | 6 |
5 files changed, 51 insertions, 7 deletions
diff --git a/app/Controllers/Http/DashboardController.js b/app/Controllers/Http/DashboardController.js index 3de4816..2f06961 100644 --- a/app/Controllers/Http/DashboardController.js +++ b/app/Controllers/Http/DashboardController.js | |||
@@ -122,6 +122,7 @@ class DashboardController { | |||
122 | return view.render('dashboard.account', { | 122 | return view.render('dashboard.account', { |
123 | username: auth.user.username, | 123 | username: auth.user.username, |
124 | email: auth.user.email, | 124 | email: auth.user.email, |
125 | lastname: auth.user.lastname | ||
125 | }); | 126 | }); |
126 | } | 127 | } |
127 | 128 | ||
@@ -135,6 +136,7 @@ class DashboardController { | |||
135 | let validation = await validateAll(request.all(), { | 136 | let validation = await validateAll(request.all(), { |
136 | username: 'required', | 137 | username: 'required', |
137 | email: 'required', | 138 | email: 'required', |
139 | lastname: 'required' | ||
138 | }); | 140 | }); |
139 | if (validation.fails()) { | 141 | if (validation.fails()) { |
140 | session.withErrors(validation.messages()).flashExcept(['password']); | 142 | session.withErrors(validation.messages()).flashExcept(['password']); |
@@ -168,6 +170,7 @@ class DashboardController { | |||
168 | // Update user account | 170 | // Update user account |
169 | const { user } = auth; | 171 | const { user } = auth; |
170 | user.username = request.input('username'); | 172 | user.username = request.input('username'); |
173 | user.lastname = request.input('lastname'); | ||
171 | user.email = request.input('email'); | 174 | user.email = request.input('email'); |
172 | if (request.input('password')) { | 175 | if (request.input('password')) { |
173 | const hashedPassword = crypto.createHash('sha256').update(request.input('password')).digest('base64'); | 176 | const hashedPassword = crypto.createHash('sha256').update(request.input('password')).digest('base64'); |
@@ -192,6 +195,7 @@ class DashboardController { | |||
192 | 195 | ||
193 | return view.render('dashboard.data', { | 196 | return view.render('dashboard.data', { |
194 | username: general.username, | 197 | username: general.username, |
198 | lastname: general.lastname, | ||
195 | mail: general.email, | 199 | mail: general.email, |
196 | created: general.created_at, | 200 | created: general.created_at, |
197 | updated: general.updated_at, | 201 | updated: general.updated_at, |
@@ -211,6 +215,7 @@ class DashboardController { | |||
211 | 215 | ||
212 | const exportData = { | 216 | const exportData = { |
213 | username: general.username, | 217 | username: general.username, |
218 | lastname: general.lastname, | ||
214 | mail: general.email, | 219 | mail: general.email, |
215 | services, | 220 | services, |
216 | workspaces, | 221 | workspaces, |
diff --git a/app/Controllers/Http/UserController.js b/app/Controllers/Http/UserController.js index e367d99..dc92b21 100644 --- a/app/Controllers/Http/UserController.js +++ b/app/Controllers/Http/UserController.js | |||
@@ -48,9 +48,11 @@ class UserController { | |||
48 | // Validate user input | 48 | // Validate user input |
49 | const validation = await validateAll(request.all(), { | 49 | const validation = await validateAll(request.all(), { |
50 | firstname: 'required', | 50 | firstname: 'required', |
51 | lastname: 'required', | ||
51 | email: 'required|email|unique:users,email', | 52 | email: 'required|email|unique:users,email', |
52 | password: 'required', | 53 | password: 'required', |
53 | }); | 54 | }); |
55 | |||
54 | if (validation.fails()) { | 56 | if (validation.fails()) { |
55 | return response.status(401).send({ | 57 | return response.status(401).send({ |
56 | message: 'Invalid POST arguments', | 58 | message: 'Invalid POST arguments', |
@@ -59,7 +61,7 @@ class UserController { | |||
59 | }); | 61 | }); |
60 | } | 62 | } |
61 | 63 | ||
62 | const data = request.only(['firstname', 'email', 'password']); | 64 | const data = request.only(['firstname', 'lastname', 'email', 'password']); |
63 | 65 | ||
64 | // Create user in DB | 66 | // Create user in DB |
65 | let user; | 67 | let user; |
@@ -68,6 +70,7 @@ class UserController { | |||
68 | email: data.email, | 70 | email: data.email, |
69 | password: data.password, | 71 | password: data.password, |
70 | username: data.firstname, | 72 | username: data.firstname, |
73 | lastname: data.lastname, | ||
71 | }); | 74 | }); |
72 | } catch (e) { | 75 | } catch (e) { |
73 | return response.status(401).send({ | 76 | return response.status(401).send({ |
@@ -149,13 +152,13 @@ class UserController { | |||
149 | email: auth.user.email, | 152 | email: auth.user.email, |
150 | emailValidated: true, | 153 | emailValidated: true, |
151 | features: {}, | 154 | features: {}, |
152 | firstname: 'Franz', | 155 | firstname: auth.user.username, |
153 | id: '82c1cf9d-ab58-4da2-b55e-aaa41d2142d8', | 156 | id: '82c1cf9d-ab58-4da2-b55e-aaa41d2142d8', |
154 | isPremium: true, | 157 | isPremium: true, |
155 | isSubscriptionOwner: true, | 158 | isSubscriptionOwner: true, |
156 | lastname: 'Franz', | 159 | lastname: auth.user.lastname, |
157 | locale: 'en-US', | 160 | locale: 'en-US', |
158 | ...settings || {}, | 161 | ...settings || {}, |
159 | }); | 162 | }); |
160 | } | 163 | } |
161 | 164 | ||
@@ -185,13 +188,13 @@ class UserController { | |||
185 | email: auth.user.email, | 188 | email: auth.user.email, |
186 | emailValidated: true, | 189 | emailValidated: true, |
187 | features: {}, | 190 | features: {}, |
188 | firstname: 'Franz', | 191 | firstname: auth.user.username, |
189 | id: '82c1cf9d-ab58-4da2-b55e-aaa41d2142d8', | 192 | id: '82c1cf9d-ab58-4da2-b55e-aaa41d2142d8', |
190 | isPremium: true, | 193 | isPremium: true, |
191 | isSubscriptionOwner: true, | 194 | isSubscriptionOwner: true, |
192 | lastname: 'Franz', | 195 | lastname: auth.user.lastname, |
193 | locale: 'en-US', | 196 | locale: 'en-US', |
194 | ...newSettings || {}, | 197 | ...newSettings || {}, |
195 | }, | 198 | }, |
196 | status: [ | 199 | status: [ |
197 | 'data-updated', | 200 | 'data-updated', |
@@ -246,6 +249,7 @@ class UserController { | |||
246 | email, | 249 | email, |
247 | password: hashedPassword, | 250 | password: hashedPassword, |
248 | username: 'Franz', | 251 | username: 'Franz', |
252 | lastname: 'Franz' | ||
249 | }); | 253 | }); |
250 | 254 | ||
251 | return response.send('Your account has been created but due to this server\'s configuration, we could not import your Franz account data.\n\nIf you are the server owner, please set CONNECT_WITH_FRANZ to true to enable account imports.'); | 255 | return response.send('Your account has been created but due to this server\'s configuration, we could not import your Franz account data.\n\nIf you are the server owner, please set CONNECT_WITH_FRANZ to true to enable account imports.'); |
@@ -301,6 +305,7 @@ class UserController { | |||
301 | email: userInf.email, | 305 | email: userInf.email, |
302 | password: hashedPassword, | 306 | password: hashedPassword, |
303 | username: userInf.firstname, | 307 | username: userInf.firstname, |
308 | lastname: userInf.lastname | ||
304 | }); | 309 | }); |
305 | } catch (e) { | 310 | } catch (e) { |
306 | const errorMessage = `Could not create your user in our system.\nError: ${e}`; | 311 | const errorMessage = `Could not create your user in our system.\nError: ${e}`; |
diff --git a/database/migrations/1612629845398_users_update_schema.js b/database/migrations/1612629845398_users_update_schema.js new file mode 100644 index 0000000..d07f66d --- /dev/null +++ b/database/migrations/1612629845398_users_update_schema.js | |||
@@ -0,0 +1,20 @@ | |||
1 | 'use strict' | ||
2 | |||
3 | /** @type {import('@adonisjs/lucid/src/Schema')} */ | ||
4 | const Schema = use('Schema') | ||
5 | |||
6 | class UsersUpdateSchema extends Schema { | ||
7 | up() { | ||
8 | this.table('users', (table) => { | ||
9 | table.string('lastname', 80).notNullable().default(''); | ||
10 | }) | ||
11 | } | ||
12 | |||
13 | down() { | ||
14 | this.table('users', (table) => { | ||
15 | table.dropColumn('lastname') | ||
16 | }) | ||
17 | } | ||
18 | } | ||
19 | |||
20 | module.exports = UsersUpdateSchema \ No newline at end of file | ||
diff --git a/resources/views/dashboard/account.edge b/resources/views/dashboard/account.edge index 9f3539e..6792615 100644 --- a/resources/views/dashboard/account.edge +++ b/resources/views/dashboard/account.edge | |||
@@ -38,6 +38,14 @@ | |||
38 | </div> | 38 | </div> |
39 | </div> | 39 | </div> |
40 | <div class="mb-6"> | 40 | <div class="mb-6"> |
41 | <label class="block text-gray-700 text-sm font-bold mb-2">Last Name</label> | ||
42 | <div> | ||
43 | <input | ||
44 | class="shadow appearance-none rounded w-full py-2 px-3 text-gray-700 mb-3 leading-tight focus:outline-none focus:shadow-outline" | ||
45 | type="text" value="{{ old('lastname', lastname) }}" placeholder="Last Name" name="lastname" required> | ||
46 | </div> | ||
47 | </div> | ||
48 | <div class="mb-6"> | ||
41 | <label class="block text-gray-700 text-sm font-bold mb-2">E-Mail</label> | 49 | <label class="block text-gray-700 text-sm font-bold mb-2">E-Mail</label> |
42 | <div> | 50 | <div> |
43 | <input | 51 | <input |
diff --git a/resources/views/dashboard/data.edge b/resources/views/dashboard/data.edge index 60ef10b..92a78d4 100644 --- a/resources/views/dashboard/data.edge +++ b/resources/views/dashboard/data.edge | |||
@@ -123,6 +123,9 @@ | |||
123 | Name | 123 | Name |
124 | </th> | 124 | </th> |
125 | <th> | 125 | <th> |
126 | Last Name | ||
127 | </th> | ||
128 | <th> | ||
126 | Order | 129 | Order |
127 | </th> | 130 | </th> |
128 | <th> | 131 | <th> |
@@ -148,6 +151,9 @@ | |||
148 | {{ workspace.name }} | 151 | {{ workspace.name }} |
149 | </td> | 152 | </td> |
150 | <td> | 153 | <td> |
154 | {{ workspace.lastname }} | ||
155 | </td> | ||
156 | <td> | ||
151 | {{ workspace.order }} | 157 | {{ workspace.order }} |
152 | </td> | 158 | </td> |
153 | <td> | 159 | <td> |