mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-13 04:11:06 +03:30
Structor CSSD
This commit is contained in:
Vendored
+192
-121
@@ -2303,27 +2303,39 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
||||
return {
|
||||
logo: './img/vuetifylogo.png',
|
||||
links: [{
|
||||
to: '/dashboard',
|
||||
to: {
|
||||
name: 'Dashboard'
|
||||
},
|
||||
icon: 'mdi-view-dashboard',
|
||||
text: 'Dashboard'
|
||||
}, {
|
||||
to: '/my-info',
|
||||
to: {
|
||||
name: 'MyInfo'
|
||||
},
|
||||
icon: 'mdi-account',
|
||||
text: 'My Info'
|
||||
}, {
|
||||
to: '/all-resualttest',
|
||||
to: {
|
||||
name: 'AllResultTest'
|
||||
},
|
||||
icon: 'description',
|
||||
text: 'All Test Result'
|
||||
}, {
|
||||
to: '/manage-users',
|
||||
to: {
|
||||
name: 'ManageUsers'
|
||||
},
|
||||
icon: 'far fa-address-book',
|
||||
text: 'Manage Users'
|
||||
}, {
|
||||
to: '/test-creator',
|
||||
to: {
|
||||
name: 'ListTestType'
|
||||
},
|
||||
icon: 'fas fa-vial',
|
||||
text: 'Add a Test Type'
|
||||
text: 'List Test Type'
|
||||
}, {
|
||||
to: '/submit-test-result',
|
||||
to: {
|
||||
name: 'SubmitTestResult'
|
||||
},
|
||||
icon: 'done',
|
||||
text: 'Submit Test Result'
|
||||
}],
|
||||
@@ -3370,6 +3382,7 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js");
|
||||
/* harmony import */ var _services__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/services */ "./resources/js/vue/services/index.js");
|
||||
/* harmony import */ var _config_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/config/utils */ "./resources/js/vue/config/utils.js");
|
||||
/* harmony import */ var _config_urls__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/config/urls */ "./resources/js/vue/config/urls.js");
|
||||
|
||||
|
||||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
||||
@@ -3411,6 +3424,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
||||
|
||||
|
||||
|
||||
|
||||
/* harmony default export */ __webpack_exports__["default"] = ({
|
||||
data: function data() {
|
||||
return {
|
||||
@@ -3431,13 +3445,13 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
||||
switch (_context.prev = _context.next) {
|
||||
case 0:
|
||||
_context.next = 2;
|
||||
return _services__WEBPACK_IMPORTED_MODULE_2__["ApiService"].post("Users/ChangeRole/".concat(this.getModalProperties.user.id), this.data);
|
||||
return _services__WEBPACK_IMPORTED_MODULE_2__["ApiService"].post(_config_urls__WEBPACK_IMPORTED_MODULE_4__["urls"].changeRoleUser(this.getModalProperties.user.id), this.data);
|
||||
|
||||
case 2:
|
||||
result = _context.sent;
|
||||
|
||||
if (result && result.status == 200) {
|
||||
this.setResultModal(result.data);
|
||||
this.setResultModal(result.data.data);
|
||||
this.closeModal();
|
||||
}
|
||||
|
||||
@@ -61810,6 +61824,62 @@ __webpack_require__.r(__webpack_exports__);
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/vue/config/urls.js":
|
||||
/*!*****************************************!*\
|
||||
!*** ./resources/js/vue/config/urls.js ***!
|
||||
\*****************************************/
|
||||
/*! exports provided: urls */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "urls", function() { return urls; });
|
||||
var urls = {
|
||||
storeTestType: "/TestTypes",
|
||||
updateInfo: "/UpdateInfo",
|
||||
getInfo: "/GetInfo",
|
||||
login: "/login",
|
||||
logout: "/logout",
|
||||
storeMedicalCenter: "/MedicalCenters",
|
||||
listOpertor: "/Users",
|
||||
listMedicalCenter: function listMedicalCenter(page) {
|
||||
return "/MedicalCenters?page=" + page;
|
||||
},
|
||||
listTestType: function listTestType(page) {
|
||||
return "/TestTypes?page=" + page;
|
||||
},
|
||||
deleteTestType: function deleteTestType(id) {
|
||||
return "/TestTypes/".concat(id);
|
||||
},
|
||||
editTestType: function editTestType(id) {
|
||||
return "/TestTypes/".concat(id, "/edit");
|
||||
},
|
||||
updateTestType: function updateTestType(id) {
|
||||
return "/TestTypes/".concat(id);
|
||||
},
|
||||
updateMedicalCenter: function updateMedicalCenter(id) {
|
||||
return "/MedicalCenters/".concat(id);
|
||||
},
|
||||
deleteMedicalCenter: function deleteMedicalCenter(id) {
|
||||
return "/MedicalCenters/".concat(id);
|
||||
},
|
||||
listOpertorMedicalCenter: function listOpertorMedicalCenter(id) {
|
||||
return "/Users/MedicalCenter/".concat(id);
|
||||
},
|
||||
changeStatusUser: function changeStatusUser(userId) {
|
||||
return "Users/ChangeStatus/".concat(userId);
|
||||
},
|
||||
changeRoleUser: function changeRoleUser(userId) {
|
||||
return "Users/ChangeRole/".concat(userId);
|
||||
},
|
||||
deleteUser: function deleteUser(userId) {
|
||||
return "Users/".concat(userId);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./resources/js/vue/config/utils.js":
|
||||
@@ -62332,34 +62402,47 @@ __webpack_require__.r(__webpack_exports__);
|
||||
}, {
|
||||
path: '/my-info',
|
||||
name: 'MyInfo',
|
||||
view: 'MyInfo'
|
||||
}, {
|
||||
path: '/all-resualttest',
|
||||
name: 'AllResultTest',
|
||||
view: 'AllResultTest'
|
||||
view: 'User/MyInfo'
|
||||
}, {
|
||||
path: '/manage-users',
|
||||
name: 'ManageUsers',
|
||||
view: 'ManageUsers',
|
||||
meta: {
|
||||
roles: 'Admin'
|
||||
}
|
||||
view: 'User/List'
|
||||
}, {
|
||||
path: '/test-creator',
|
||||
name: 'AddNewTest',
|
||||
view: 'TestCreator'
|
||||
path: '/test-type/create',
|
||||
name: 'AddTestType',
|
||||
view: 'TestType/AddEdit'
|
||||
}, {
|
||||
path: '/manage-medical-center',
|
||||
path: '/test-type/:testType/edit',
|
||||
name: 'EditTestType',
|
||||
view: 'TestType/AddEdit'
|
||||
}, {
|
||||
path: '/test-types',
|
||||
name: 'ListTestType',
|
||||
view: 'TestType/List'
|
||||
}, {
|
||||
path: '/medical-center',
|
||||
name: 'ManageMedicalCenter',
|
||||
view: 'ManageMedicalCenter'
|
||||
view: 'MedicalCenter/List'
|
||||
}, {
|
||||
path: '/medical-center/:id/edit',
|
||||
path: '/medical-center/create',
|
||||
name: 'AddMedicalCenter',
|
||||
view: 'MedicalCenter/AddEdit'
|
||||
}, {
|
||||
path: '/medical-center/:medicalCenter/edit',
|
||||
name: 'EditMedicalCenter',
|
||||
view: 'AddMedicalCenter'
|
||||
view: 'MedicalCenter/AddEdit'
|
||||
}, {
|
||||
path: '/add-operator/:medicalCenter',
|
||||
name: 'AddOperator',
|
||||
view: 'Auth/Register'
|
||||
}, {
|
||||
path: '/operator-list/:medicalCenter',
|
||||
name: 'OperatorList',
|
||||
view: 'MedicalCenter/OperatorList'
|
||||
}, {
|
||||
path: '/login',
|
||||
name: 'Login',
|
||||
view: 'Login',
|
||||
view: 'Auth/Login',
|
||||
meta: {
|
||||
public: true,
|
||||
// Allow access to even if not logged in
|
||||
@@ -62368,29 +62451,29 @@ __webpack_require__.r(__webpack_exports__);
|
||||
}, {
|
||||
path: '/register',
|
||||
name: 'Register',
|
||||
view: 'Register',
|
||||
view: 'Auth/Register',
|
||||
meta: {
|
||||
public: true,
|
||||
// Allow access to even if not logged in
|
||||
onlyWhenLoggedOut: true
|
||||
}
|
||||
}, {
|
||||
path: '/Adminregister',
|
||||
name: 'AdminRegister',
|
||||
view: 'AdminRegister'
|
||||
path: '/forgot-password',
|
||||
name: 'ForgotPassword',
|
||||
view: 'Auth/ForgotPassword',
|
||||
meta: {
|
||||
public: true,
|
||||
// Allow access to even if not logged in
|
||||
onlyWhenLoggedOut: true
|
||||
}
|
||||
}, {
|
||||
path: '/all-resualttest',
|
||||
name: 'AllResultTest',
|
||||
view: 'AllResultTest'
|
||||
}, {
|
||||
path: '/submit-test-result',
|
||||
name: 'SubmitTestResult',
|
||||
view: 'SubmitTestResult'
|
||||
}, {
|
||||
path: '/forgot-password',
|
||||
name: 'ForgotPassword',
|
||||
view: 'ForgotPassword',
|
||||
meta: {
|
||||
public: true,
|
||||
// Allow access to even if not logged in
|
||||
onlyWhenLoggedOut: true
|
||||
}
|
||||
}, {
|
||||
path: '/test-creator',
|
||||
name: 'TestCreator',
|
||||
@@ -62399,18 +62482,6 @@ __webpack_require__.r(__webpack_exports__);
|
||||
path: '/test',
|
||||
name: 'Test',
|
||||
view: 'Test'
|
||||
}, {
|
||||
path: '/add-medical-center',
|
||||
name: 'AddMedicalCenter',
|
||||
view: 'AddMedicalCenter'
|
||||
}, {
|
||||
path: '/add-operator/:medicalCenter',
|
||||
name: 'AddOperator',
|
||||
view: 'Register'
|
||||
}, {
|
||||
path: '/operator-list/:medicalCenter',
|
||||
name: 'OperatorList',
|
||||
view: 'OperatorList'
|
||||
}]);
|
||||
|
||||
/***/ }),
|
||||
@@ -62541,6 +62612,7 @@ __webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony import */ var _global_api_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../global/api.service */ "./resources/js/vue/services/global/api.service.js");
|
||||
/* harmony import */ var _storage_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./storage.service */ "./resources/js/vue/services/auth/storage.service.js");
|
||||
/* harmony import */ var _config_urls__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/config/urls */ "./resources/js/vue/config/urls.js");
|
||||
|
||||
|
||||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
||||
@@ -62572,6 +62644,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
|
||||
|
||||
|
||||
|
||||
|
||||
var AuthenticationError =
|
||||
/*#__PURE__*/
|
||||
function (_Error) {
|
||||
@@ -62610,7 +62683,7 @@ var UserService = {
|
||||
case 0:
|
||||
requestData = {
|
||||
method: "post",
|
||||
url: "/login",
|
||||
url: _config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].login,
|
||||
data: {
|
||||
cell_number: cell_number,
|
||||
password: password,
|
||||
@@ -62780,7 +62853,7 @@ var UserService = {
|
||||
refreshToken = _storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].getRefreshToken();
|
||||
requestData = {
|
||||
method: "post",
|
||||
url: "login",
|
||||
url: _config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].login,
|
||||
data: {
|
||||
grant_type: "refresh_token",
|
||||
refresh_token: refreshToken
|
||||
@@ -62831,20 +62904,16 @@ var UserService = {
|
||||
var _logout = _asyncToGenerator(
|
||||
/*#__PURE__*/
|
||||
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee5() {
|
||||
var requestData, response;
|
||||
var response;
|
||||
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee5$(_context5) {
|
||||
while (1) {
|
||||
switch (_context5.prev = _context5.next) {
|
||||
case 0:
|
||||
requestData = {
|
||||
method: "post",
|
||||
url: "logout"
|
||||
};
|
||||
_context5.prev = 1;
|
||||
_context5.next = 4;
|
||||
return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].customRequest(requestData);
|
||||
_context5.prev = 0;
|
||||
_context5.next = 3;
|
||||
return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].post(_config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].logout);
|
||||
|
||||
case 4:
|
||||
case 3:
|
||||
response = _context5.sent;
|
||||
// Remove the token and remove Authorization header from Api Service as well
|
||||
_storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].removeToken();
|
||||
@@ -62855,17 +62924,17 @@ var UserService = {
|
||||
_global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].unmount401Interceptor();
|
||||
return _context5.abrupt("return", response.data);
|
||||
|
||||
case 13:
|
||||
_context5.prev = 13;
|
||||
_context5.t0 = _context5["catch"](1);
|
||||
case 12:
|
||||
_context5.prev = 12;
|
||||
_context5.t0 = _context5["catch"](0);
|
||||
throw new AuthenticationError(_context5.t0.response.status, _context5.t0.response.data.detail);
|
||||
|
||||
case 16:
|
||||
case 15:
|
||||
case "end":
|
||||
return _context5.stop();
|
||||
}
|
||||
}
|
||||
}, _callee5, null, [[1, 13]]);
|
||||
}, _callee5, null, [[0, 12]]);
|
||||
}));
|
||||
|
||||
function logout() {
|
||||
@@ -62884,24 +62953,20 @@ var UserService = {
|
||||
var _getInfo = _asyncToGenerator(
|
||||
/*#__PURE__*/
|
||||
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee6() {
|
||||
var requestData, response;
|
||||
var response;
|
||||
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee6$(_context6) {
|
||||
while (1) {
|
||||
switch (_context6.prev = _context6.next) {
|
||||
case 0:
|
||||
requestData = {
|
||||
method: "get",
|
||||
url: "getInfo"
|
||||
};
|
||||
_context6.next = 3;
|
||||
return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].customRequest(requestData);
|
||||
_context6.next = 2;
|
||||
return _global_api_service__WEBPACK_IMPORTED_MODULE_1__["ApiService"].get(_config_urls__WEBPACK_IMPORTED_MODULE_3__["urls"].getInfo);
|
||||
|
||||
case 3:
|
||||
case 2:
|
||||
response = _context6.sent;
|
||||
_storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].saveInfo(response.data);
|
||||
return _context6.abrupt("return", response.data);
|
||||
_storage_service__WEBPACK_IMPORTED_MODULE_2__["TokenService"].saveInfo(response.data.data);
|
||||
return _context6.abrupt("return", response.data.data);
|
||||
|
||||
case 6:
|
||||
case 5:
|
||||
case "end":
|
||||
return _context6.stop();
|
||||
}
|
||||
@@ -62967,10 +63032,14 @@ var ApiService = {
|
||||
return axios__WEBPACK_IMPORTED_MODULE_1___default.a.post(resource, data);
|
||||
},
|
||||
put: function put(resource, data) {
|
||||
return axios__WEBPACK_IMPORTED_MODULE_1___default.a.put(resource, data);
|
||||
data['_method'] = 'put';
|
||||
return axios__WEBPACK_IMPORTED_MODULE_1___default.a.post(resource, data);
|
||||
},
|
||||
delete: function _delete(resource) {
|
||||
return axios__WEBPACK_IMPORTED_MODULE_1___default.a.delete(resource);
|
||||
var data = {
|
||||
'_method': 'delete'
|
||||
};
|
||||
return axios__WEBPACK_IMPORTED_MODULE_1___default.a.post(resource, data);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -63103,9 +63172,9 @@ function errorResponseHandler(error) {
|
||||
}
|
||||
|
||||
function successHandler(response) {
|
||||
if (response.data == 200) {
|
||||
if (response.status == 200) {
|
||||
if (typeof response.data.message !== 'undefined') {
|
||||
_toast_service__WEBPACK_IMPORTED_MODULE_1__["default"].success(response.data.message);
|
||||
_toast_service__WEBPACK_IMPORTED_MODULE_1__["default"].success(response.data.message, response.data.title);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63859,87 +63928,89 @@ var toggle = function toggle(property) {
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var map = {
|
||||
"./AddMedicalCenter.vue": [
|
||||
"./resources/js/vue/views/AddMedicalCenter.vue",
|
||||
0,
|
||||
6
|
||||
],
|
||||
"./AddNewTest.vue": [
|
||||
"./resources/js/vue/views/AddNewTest.vue",
|
||||
1
|
||||
2
|
||||
],
|
||||
"./AllResultTest.vue": [
|
||||
"./resources/js/vue/views/AllResultTest.vue",
|
||||
7
|
||||
],
|
||||
"./Auth/ForgotPassword.vue": [
|
||||
"./resources/js/vue/views/Auth/ForgotPassword.vue",
|
||||
11
|
||||
],
|
||||
"./Auth/Login.vue": [
|
||||
"./resources/js/vue/views/Auth/Login.vue",
|
||||
6
|
||||
],
|
||||
"./Auth/Register.vue": [
|
||||
"./resources/js/vue/views/Auth/Register.vue",
|
||||
13
|
||||
],
|
||||
"./Dashboard.vue": [
|
||||
"./resources/js/vue/views/Dashboard.vue",
|
||||
8
|
||||
],
|
||||
"./ForgotPassword.vue": [
|
||||
"./resources/js/vue/views/ForgotPassword.vue",
|
||||
9
|
||||
],
|
||||
"./Icons.vue": [
|
||||
"./resources/js/vue/views/Icons.vue",
|
||||
10
|
||||
],
|
||||
"./Login.vue": [
|
||||
"./resources/js/vue/views/Login.vue",
|
||||
11
|
||||
],
|
||||
"./ManageMedicalCenter.vue": [
|
||||
"./resources/js/vue/views/ManageMedicalCenter.vue",
|
||||
2
|
||||
],
|
||||
"./ManageUsers.vue": [
|
||||
"./resources/js/vue/views/ManageUsers.vue",
|
||||
12
|
||||
],
|
||||
"./Maps.vue": [
|
||||
"./resources/js/vue/views/Maps.vue",
|
||||
5
|
||||
],
|
||||
"./MyInfo.vue": [
|
||||
"./resources/js/vue/views/MyInfo.vue",
|
||||
13
|
||||
"./MedicalCenter/AddEdit.vue": [
|
||||
"./resources/js/vue/views/MedicalCenter/AddEdit.vue",
|
||||
0
|
||||
],
|
||||
"./MedicalCenter/List.vue": [
|
||||
"./resources/js/vue/views/MedicalCenter/List.vue",
|
||||
1
|
||||
],
|
||||
"./MedicalCenter/OperatorList.vue": [
|
||||
"./resources/js/vue/views/MedicalCenter/OperatorList.vue",
|
||||
23
|
||||
],
|
||||
"./Notifications.vue": [
|
||||
"./resources/js/vue/views/Notifications.vue",
|
||||
14
|
||||
],
|
||||
"./OperatorList.vue": [
|
||||
"./resources/js/vue/views/OperatorList.vue",
|
||||
0,
|
||||
15
|
||||
],
|
||||
"./Register.vue": [
|
||||
"./resources/js/vue/views/Register.vue",
|
||||
16
|
||||
],
|
||||
"./SubmitTestResult.vue": [
|
||||
"./resources/js/vue/views/SubmitTestResult.vue",
|
||||
17
|
||||
],
|
||||
"./TableList.vue": [
|
||||
"./resources/js/vue/views/TableList.vue",
|
||||
20
|
||||
18
|
||||
],
|
||||
"./TestCreator.vue": [
|
||||
"./resources/js/vue/views/TestCreator.vue",
|
||||
"./TestType/AddEdit.vue": [
|
||||
"./resources/js/vue/views/TestType/AddEdit.vue",
|
||||
3
|
||||
],
|
||||
"./TestType/List.vue": [
|
||||
"./resources/js/vue/views/TestType/List.vue",
|
||||
21
|
||||
],
|
||||
"./Typography.vue": [
|
||||
"./resources/js/vue/views/Typography.vue",
|
||||
4
|
||||
],
|
||||
"./Upgrade.vue": [
|
||||
"./resources/js/vue/views/Upgrade.vue",
|
||||
20
|
||||
],
|
||||
"./User/List.vue": [
|
||||
"./resources/js/vue/views/User/List.vue",
|
||||
9
|
||||
],
|
||||
"./User/MyInfo.vue": [
|
||||
"./resources/js/vue/views/User/MyInfo.vue",
|
||||
22
|
||||
],
|
||||
"./UserProfile.vue": [
|
||||
"./resources/js/vue/views/UserProfile.vue",
|
||||
21
|
||||
19
|
||||
]
|
||||
};
|
||||
function webpackAsyncContext(req) {
|
||||
@@ -63951,7 +64022,7 @@ function webpackAsyncContext(req) {
|
||||
throw e;
|
||||
});
|
||||
}
|
||||
return Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {
|
||||
return __webpack_require__.e(ids[1]).then(function() {
|
||||
var id = ids[0];
|
||||
return __webpack_require__(id);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user