Changing user roles, Deleting users

This commit is contained in:
tschneider 2020-02-03 16:20:27 +01:00
parent e38d8e3a88
commit 3053b1c89a
7 changed files with 132 additions and 12 deletions

View file

@ -2,14 +2,13 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="eed7de89-f054-487c-bf59-36356758942b" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/resources/js/views/UserList.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/AuthController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/AuthController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/public/js/app.js" beforeDir="false" afterPath="$PROJECT_DIR$/public/js/app.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/routes.js" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/routes.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/store.js" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/store.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/views/Main.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/views/Main.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/js/views/UserList.vue" beforeDir="false" afterPath="$PROJECT_DIR$/resources/js/views/UserList.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/api.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/api.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/web.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/web.php" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -151,7 +150,7 @@
<property name="node.js.selected.package.eslint" value="(autodetect)" />
<property name="node.js.selected.package.tslint" value="(autodetect)" />
<property name="nodejs_package_manager_path" value="yarn" />
<property name="settings.editor.selected.configurable" value="terminal" />
<property name="settings.editor.selected.configurable" value="preferences.general" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
@ -233,7 +232,8 @@
<workItem from="1580461236383" duration="4110000" />
<workItem from="1580563491409" duration="793000" />
<workItem from="1580564326421" duration="3051000" />
<workItem from="1580650898570" duration="4078000" />
<workItem from="1580650898570" duration="4205000" />
<workItem from="1580726763967" duration="4887000" />
</task>
<servers />
</component>
@ -261,18 +261,18 @@
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="629" y="273" key="#com.intellij.openapi.updateSettings.impl.PluginUpdateInfoDialog/0.0.1920.1080@0.0.1920.1080" timestamp="1580564280549" />
<state x="450" y="179" key="SettingsEditor" timestamp="1580565058667">
<state x="450" y="179" key="SettingsEditor" timestamp="1580731664075">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="450" y="179" key="SettingsEditor/0.0.1920.1080@0.0.1920.1080" timestamp="1580565058667" />
<state x="450" y="179" key="SettingsEditor/0.0.1920.1080@0.0.1920.1080" timestamp="1580731664075" />
<state x="1280" y="23" width="1720" height="857" maximized="true" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1580282545601">
<screen x="1280" y="23" width="1920" height="1057" />
</state>
<state x="1280" y="23" width="1720" height="857" maximized="true" key="com.intellij.history.integration.ui.views.FileHistoryDialog/0.23.1280.777/1280.23.1920.1057@1280.23.1920.1057" timestamp="1580282545601" />
<state x="655" y="365" key="com.intellij.ide.util.TipDialog" timestamp="1580650911688">
<state x="655" y="365" key="com.intellij.ide.util.TipDialog" timestamp="1580726765734">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="655" y="365" key="com.intellij.ide.util.TipDialog/0.0.1920.1080@0.0.1920.1080" timestamp="1580650911688" />
<state x="655" y="365" key="com.intellij.ide.util.TipDialog/0.0.1920.1080@0.0.1920.1080" timestamp="1580726765734" />
<state x="623" y="178" width="673" height="724" key="find.popup" timestamp="1580465329892">
<screen x="0" y="0" width="1920" height="1080" />
</state>

View file

@ -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
*/

View file

@ -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

View file

@ -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);

View file

@ -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');
});
});
});

View file

@ -11,6 +11,11 @@
|
*/
Route::get('/{any}', function () {
return view('main');
});
Route::get('/', function () {
return view('main');
});