Changing user roles, Deleting users
This commit is contained in:
parent
e38d8e3a88
commit
3053b1c89a
7 changed files with 132 additions and 12 deletions
18
motorradig/.idea/workspace.xml
generated
18
motorradig/.idea/workspace.xml
generated
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
*/
|
||||
|
|
|
|||
86
motorradig/public/js/app.js
vendored
86
motorradig/public/js/app.js
vendored
|
|
@ -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
|
||||
|
|
|
|||
1
motorradig/resources/js/routes.js
vendored
1
motorradig/resources/js/routes.js
vendored
|
|
@ -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);
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -11,6 +11,11 @@
|
|||
|
|
||||
*/
|
||||
|
||||
|
||||
Route::get('/{any}', function () {
|
||||
return view('main');
|
||||
});
|
||||
|
||||
Route::get('/', function () {
|
||||
return view('main');
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue