diff --git a/motorradig/.idea/workspace.xml b/motorradig/.idea/workspace.xml index 09454e3..9b61d34 100644 --- a/motorradig/.idea/workspace.xml +++ b/motorradig/.idea/workspace.xml @@ -2,14 +2,13 @@ - - - + + @@ -233,7 +232,8 @@ - + + @@ -261,18 +261,18 @@ - + - + - + - + diff --git a/motorradig/app/Http/Controllers/AuthController.php b/motorradig/app/Http/Controllers/AuthController.php index 6744e5b..40528af 100644 --- a/motorradig/app/Http/Controllers/AuthController.php +++ b/motorradig/app/Http/Controllers/AuthController.php @@ -80,6 +80,37 @@ class AuthController extends Controller { } + public function set_role(Request $request){ + $user = User::find(Auth::user()->id); + if ($user->role !="ADMIN") { return response()->json(['error' => 'rejected'], 401); } + + $user_id=$request->user_id; + $role=$request->role; + + $user=User::where('id',$user_id)->first(); + $user->role = $role; + $user->save(); + + return response()->json([ + 'status' => 'success' + ]); + } + + public function delete_user(Request $request) + { + $user = User::find(Auth::user()->id); + if ($user->role != "ADMIN") { + return response()->json(['error' => 'rejected'], 401); + } + + User::destroy($request->user_id); + + return response()->json([ + 'status' => 'success' + ]); + } + + /** * Refresh JWT token */ diff --git a/motorradig/public/js/app.js b/motorradig/public/js/app.js index 005a70c..9813e9a 100644 --- a/motorradig/public/js/app.js +++ b/motorradig/public/js/app.js @@ -2128,6 +2128,8 @@ __webpack_require__.r(__webpack_exports__); // // // +// +// /* harmony default export */ __webpack_exports__["default"] = ({ data: function data() { return { @@ -2196,6 +2198,39 @@ __webpack_require__.r(__webpack_exports__); console.log("Loading of Userlist failed."); console.log(error); }); + }, + setRole: function setRole(user_id, role) { + var _this4 = this; + + console.log("Setting new role for userid " + user_id + ": " + role); // Empty brackets are an empty object usually containing form data + + axios.post('http://localhost:8000/api/v1/auth/set_role', { + user_id: user_id, + role: role + }, { + headers: { + 'Authorization': 'Bearer ' + this.$store.state.user_token + } + }).then(function (res) { + //this.$router.go();//Reload page with updated access-based display + _this4.$router.push('/'); + }); + }, + deleteUser: function deleteUser(user_id) { + var _this5 = this; + + console.log("Deleting userid " + user_id); // Empty brackets are an empty object usually containing form data + + axios.post('http://localhost:8000/api/v1/auth/delete_user', { + user_id: user_id + }, { + headers: { + 'Authorization': 'Bearer ' + this.$store.state.user_token + } + }).then(function (res) { + //this.$router.go();//Reload page with updated access-based display + _this5.$router.push('/'); + }); } }, created: function created() { @@ -31555,11 +31590,56 @@ var render = function() { _vm._s(user.role) + ")\n " ), - _c("button", [_vm._v("Gast")]), + _c( + "button", + { + on: { + click: function($event) { + return _vm.setRole(user.id, "GUEST") + } + } + }, + [_vm._v("Gast")] + ), _vm._v(" "), - _c("button", [_vm._v("Mitglied")]), + _c( + "button", + { + on: { + click: function($event) { + return _vm.setRole(user.id, "MEMBER") + } + } + }, + [_vm._v("Mitglied")] + ), _vm._v(" "), - _c("button", [_vm._v("Administrator")]) + _c( + "button", + { + on: { + click: function($event) { + return _vm.setRole(user.id, "ADMIN") + } + } + }, + [_vm._v("Administrator")] + ), + _vm._v(" "), + _c("span", [_vm._v(" ")]), + _vm._v(" "), + _c( + "button", + { + staticStyle: { color: "red" }, + on: { + click: function($event) { + return _vm.deleteUser(user.id) + } + } + }, + [_vm._v("LÖSCHEN")] + ) ]) }), 0 diff --git a/motorradig/resources/js/routes.js b/motorradig/resources/js/routes.js index 6c788ae..30e3021 100644 --- a/motorradig/resources/js/routes.js +++ b/motorradig/resources/js/routes.js @@ -13,6 +13,7 @@ export const routes= [ { path:'/register', name : 'register', component: Register }, { path:'/edit_page', name : 'edit_page', component: EditPage }, { path:'/userlist', name : 'userlist', component: UserList }, + ]; Vue.use(VueRouter); diff --git a/motorradig/resources/js/views/UserList.vue b/motorradig/resources/js/views/UserList.vue index 3c98ebf..ce6d925 100644 Binary files a/motorradig/resources/js/views/UserList.vue and b/motorradig/resources/js/views/UserList.vue differ diff --git a/motorradig/routes/api.php b/motorradig/routes/api.php index 1f31624..19a5dd7 100644 --- a/motorradig/routes/api.php +++ b/motorradig/routes/api.php @@ -46,6 +46,9 @@ Route::prefix('v1')->group(function () { Route::post('load_page', 'PageController@load_page'); Route::post('get_userlist', 'AuthController@userlist'); + + Route::post('set_role','AuthController@set_role'); + Route::post('delete_user','AuthController@delete_user'); }); }); }); diff --git a/motorradig/routes/web.php b/motorradig/routes/web.php index 576553d..0f48935 100644 --- a/motorradig/routes/web.php +++ b/motorradig/routes/web.php @@ -11,6 +11,11 @@ | */ + +Route::get('/{any}', function () { + return view('main'); +}); + Route::get('/', function () { return view('main'); });