mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-10-31 15:53:33 +00:00 
			
		
		
		
	Fix satisy typo
This commit is contained in:
		| @@ -30,7 +30,7 @@ const internalAccessList = { | |||||||
| 					.omit(omissions()) | 					.omit(omissions()) | ||||||
| 					.insertAndFetch({ | 					.insertAndFetch({ | ||||||
| 						name:          data.name, | 						name:          data.name, | ||||||
| 						satify_any:    data.satify_any, | 						satisfy_any:   data.satisfy_any, | ||||||
| 						owner_user_id: access.token.getUserId(1) | 						owner_user_id: access.token.getUserId(1) | ||||||
| 					}); | 					}); | ||||||
| 			}) | 			}) | ||||||
| @@ -126,8 +126,8 @@ const internalAccessList = { | |||||||
| 						.query() | 						.query() | ||||||
| 						.where({id: data.id}) | 						.where({id: data.id}) | ||||||
| 						.patch({ | 						.patch({ | ||||||
| 							name:       data.name, | 							name:        data.name, | ||||||
| 							satify_any: data.satify_any, | 							satisfy_any: data.satisfy_any, | ||||||
| 						}); | 						}); | ||||||
| 				} | 				} | ||||||
| 			}) | 			}) | ||||||
|   | |||||||
							
								
								
									
										34
									
								
								backend/migrations/20200410143840_access_list_client_fix.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								backend/migrations/20200410143840_access_list_client_fix.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | const migrate_name = 'access_list_client_fix'; | ||||||
|  | const logger       = require('../logger').migrate; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Migrate | ||||||
|  |  * | ||||||
|  |  * @see http://knexjs.org/#Schema | ||||||
|  |  * | ||||||
|  |  * @param   {Object}  knex | ||||||
|  |  * @param   {Promise} Promise | ||||||
|  |  * @returns {Promise} | ||||||
|  |  */ | ||||||
|  | exports.up = function (knex/*, Promise*/) { | ||||||
|  | 	logger.info('[' + migrate_name + '] Migrating Up...'); | ||||||
|  |  | ||||||
|  | 	return knex.schema.table('access_list', function (access_list) { | ||||||
|  | 		proxy_host.renameColumn('satify_any', 'satisfy_any'); | ||||||
|  | 	}) | ||||||
|  | 		.then(() => { | ||||||
|  | 			logger.info('[' + migrate_name + '] access_list Table altered'); | ||||||
|  | 		}); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Undo Migrate | ||||||
|  |  * | ||||||
|  |  * @param   {Object}  knex | ||||||
|  |  * @param   {Promise} Promise | ||||||
|  |  * @returns {Promise} | ||||||
|  |  */ | ||||||
|  | exports.down = function (knex, Promise) { | ||||||
|  | 	logger.warn('[' + migrate_name + '] You can\'t migrate down this one.'); | ||||||
|  | 	return Promise.resolve(true); | ||||||
|  | }; | ||||||
| @@ -90,7 +90,7 @@ class AccessList extends Model { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	get satisfy() { | 	get satisfy() { | ||||||
| 		return this.satify_any ? 'satisfy any' : 'satisfy all'; | 		return this.satisfy_any ? 'satisfy any' : 'satisfy all'; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,229 +1,227 @@ | |||||||
| { | { | ||||||
|   "$schema": "http://json-schema.org/draft-07/schema#", | 	"$schema": "http://json-schema.org/draft-07/schema#", | ||||||
|   "$id": "endpoints/access-lists", | 	"$id": "endpoints/access-lists", | ||||||
|   "title": "Access Lists", | 	"title": "Access Lists", | ||||||
|   "description": "Endpoints relating to Access Lists", | 	"description": "Endpoints relating to Access Lists", | ||||||
|   "stability": "stable", | 	"stability": "stable", | ||||||
|   "type": "object", | 	"type": "object", | ||||||
|   "definitions": { | 	"definitions": { | ||||||
|     "id": { | 		"id": { | ||||||
|       "$ref": "../definitions.json#/definitions/id" | 			"$ref": "../definitions.json#/definitions/id" | ||||||
|     }, | 		}, | ||||||
|     "created_on": { | 		"created_on": { | ||||||
|       "$ref": "../definitions.json#/definitions/created_on" | 			"$ref": "../definitions.json#/definitions/created_on" | ||||||
|     }, | 		}, | ||||||
|     "modified_on": { | 		"modified_on": { | ||||||
|       "$ref": "../definitions.json#/definitions/modified_on" | 			"$ref": "../definitions.json#/definitions/modified_on" | ||||||
|     }, | 		}, | ||||||
|     "name": { | 		"name": { | ||||||
|       "type": "string", | 			"type": "string", | ||||||
|       "description": "Name of the Access List" | 			"description": "Name of the Access List" | ||||||
|     }, | 		}, | ||||||
|     "directive": { | 		"directive": { | ||||||
|       "type": "string", | 			"type": "string", | ||||||
|       "enum": ["allow", "deny"] | 			"enum": ["allow", "deny"] | ||||||
|     }, | 		}, | ||||||
|     "address": { | 		"address": { | ||||||
|       "oneOf": [ | 			"oneOf": [ | ||||||
|         { | 				{ | ||||||
|           "type": "string", | 					"type": "string", | ||||||
|           "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$" | 					"pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}(/([0-9]|[1-2][0-9]|3[0-2]))?$" | ||||||
|         }, | 				}, | ||||||
|         { | 				{ | ||||||
|           "type": "string", | 					"type": "string", | ||||||
|           "pattern": "^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$" | 					"pattern": "^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$" | ||||||
|         }, | 				}, | ||||||
|         { | 				{ | ||||||
|           "type": "string", | 					"type": "string", | ||||||
|           "pattern": "^any$" | 					"pattern": "^any$" | ||||||
|         } | 				} | ||||||
|       ] | 			] | ||||||
|     }, | 		}, | ||||||
|     "satify_any": { | 		"satisfy_any": { | ||||||
|       "type": "boolean" | 			"type": "boolean" | ||||||
|     }, | 		}, | ||||||
|     "meta": { | 		"meta": { | ||||||
|       "type": "object" | 			"type": "object" | ||||||
|     } | 		} | ||||||
|   }, | 	}, | ||||||
|   "properties": { | 	"properties": { | ||||||
|     "id": { | 		"id": { | ||||||
|       "$ref": "#/definitions/id" | 			"$ref": "#/definitions/id" | ||||||
|     }, | 		}, | ||||||
|     "created_on": { | 		"created_on": { | ||||||
|       "$ref": "#/definitions/created_on" | 			"$ref": "#/definitions/created_on" | ||||||
|     }, | 		}, | ||||||
|     "modified_on": { | 		"modified_on": { | ||||||
|       "$ref": "#/definitions/modified_on" | 			"$ref": "#/definitions/modified_on" | ||||||
|     }, | 		}, | ||||||
|     "name": { | 		"name": { | ||||||
|       "$ref": "#/definitions/name" | 			"$ref": "#/definitions/name" | ||||||
|     }, | 		}, | ||||||
|     "meta": { | 		"meta": { | ||||||
|       "$ref": "#/definitions/meta" | 			"$ref": "#/definitions/meta" | ||||||
|     } | 		} | ||||||
|   }, | 	}, | ||||||
|   "links": [ | 	"links": [ | ||||||
|     { | 		{ | ||||||
|       "title": "List", | 			"title": "List", | ||||||
|       "description": "Returns a list of Access Lists", | 			"description": "Returns a list of Access Lists", | ||||||
|       "href": "/nginx/access-lists", | 			"href": "/nginx/access-lists", | ||||||
|       "access": "private", | 			"access": "private", | ||||||
|       "method": "GET", | 			"method": "GET", | ||||||
|       "rel": "self", | 			"rel": "self", | ||||||
|       "http_header": { | 			"http_header": { | ||||||
|         "$ref": "../examples.json#/definitions/auth_header" | 				"$ref": "../examples.json#/definitions/auth_header" | ||||||
|       }, | 			}, | ||||||
|       "targetSchema": { | 			"targetSchema": { | ||||||
|         "type": "array", | 				"type": "array", | ||||||
|         "items": { | 				"items": { | ||||||
|           "$ref": "#/properties" | 					"$ref": "#/properties" | ||||||
|         } | 				} | ||||||
|       } | 			} | ||||||
|     }, | 		}, | ||||||
|     { | 		{ | ||||||
|       "title": "Create", | 			"title": "Create", | ||||||
|       "description": "Creates a new Access List", | 			"description": "Creates a new Access List", | ||||||
|       "href": "/nginx/access-list", | 			"href": "/nginx/access-list", | ||||||
|       "access": "private", | 			"access": "private", | ||||||
|       "method": "POST", | 			"method": "POST", | ||||||
|       "rel": "create", | 			"rel": "create", | ||||||
|       "http_header": { | 			"http_header": { | ||||||
|         "$ref": "../examples.json#/definitions/auth_header" | 				"$ref": "../examples.json#/definitions/auth_header" | ||||||
|       }, | 			}, | ||||||
|       "schema": { | 			"schema": { | ||||||
|         "type": "object", | 				"type": "object", | ||||||
|         "additionalProperties": false, | 				"additionalProperties": false, | ||||||
|         "required": [ | 				"required": ["name"], | ||||||
|           "name" | 				"properties": { | ||||||
|         ], | 					"name": { | ||||||
|         "properties": { | 						"$ref": "#/definitions/name" | ||||||
|           "name": { | 					}, | ||||||
|             "$ref": "#/definitions/name" | 					"satisfy_any": { | ||||||
|           }, | 						"$ref": "#/definitions/satisfy_any" | ||||||
|           "satify_any": { | 					}, | ||||||
|             "$ref": "#/definitions/satify_any" | 					"items": { | ||||||
|           }, | 						"type": "array", | ||||||
|           "items": { | 						"minItems": 0, | ||||||
|             "type": "array", | 						"items": { | ||||||
|             "minItems": 0, | 							"type": "object", | ||||||
|             "items": { | 							"additionalProperties": false, | ||||||
|               "type": "object", | 							"properties": { | ||||||
|               "additionalProperties": false, | 								"username": { | ||||||
|               "properties": { | 									"type": "string", | ||||||
|                 "username": { | 									"minLength": 1 | ||||||
|                   "type": "string", | 								}, | ||||||
|                   "minLength": 1 | 								"password": { | ||||||
|                 }, | 									"type": "string", | ||||||
|                 "password": { | 									"minLength": 1 | ||||||
|                   "type": "string", | 								} | ||||||
|                   "minLength": 1 | 							} | ||||||
|                 } | 						} | ||||||
|               } | 					}, | ||||||
|             } | 					"clients": { | ||||||
|           }, | 						"type": "array", | ||||||
|           "clients": { | 						"minItems": 0, | ||||||
|             "type": "array", | 						"items": { | ||||||
|             "minItems": 0, | 							"type": "object", | ||||||
|             "items": { | 							"additionalProperties": false, | ||||||
|               "type": "object", | 							"properties": { | ||||||
|               "additionalProperties": false, | 								"address": { | ||||||
|               "properties": { | 									"$ref": "#/definitions/address" | ||||||
|                 "address": { | 								}, | ||||||
|                   "$ref": "#/definitions/address" | 								"directive": { | ||||||
|                 }, | 									"$ref": "#/definitions/directive" | ||||||
|                 "directive": { | 								} | ||||||
|                   "$ref": "#/definitions/directive" | 							} | ||||||
|                 } | 						} | ||||||
|               } | 					}, | ||||||
|             } | 					"meta": { | ||||||
|           }, | 						"$ref": "#/definitions/meta" | ||||||
|           "meta": { | 					} | ||||||
|             "$ref": "#/definitions/meta" | 				} | ||||||
|           } | 			}, | ||||||
|         } | 			"targetSchema": { | ||||||
|       }, | 				"properties": { | ||||||
|       "targetSchema": { | 					"$ref": "#/properties" | ||||||
|         "properties": { | 				} | ||||||
|           "$ref": "#/properties" | 			} | ||||||
|         } | 		}, | ||||||
|       } | 		{ | ||||||
|     }, | 			"title": "Update", | ||||||
|     { | 			"description": "Updates a existing Access List", | ||||||
|       "title": "Update", | 			"href": "/nginx/access-list/{definitions.identity.example}", | ||||||
|       "description": "Updates a existing Access List", | 			"access": "private", | ||||||
|       "href": "/nginx/access-list/{definitions.identity.example}", | 			"method": "PUT", | ||||||
|       "access": "private", | 			"rel": "update", | ||||||
|       "method": "PUT", | 			"http_header": { | ||||||
|       "rel": "update", | 				"$ref": "../examples.json#/definitions/auth_header" | ||||||
|       "http_header": { | 			}, | ||||||
|         "$ref": "../examples.json#/definitions/auth_header" | 			"schema": { | ||||||
|       }, | 				"type": "object", | ||||||
|       "schema": { | 				"additionalProperties": false, | ||||||
|         "type": "object", | 				"properties": { | ||||||
|         "additionalProperties": false, | 					"name": { | ||||||
|         "properties": { | 						"$ref": "#/definitions/name" | ||||||
|           "name": { | 					}, | ||||||
|             "$ref": "#/definitions/name" | 					"satisfy_any": { | ||||||
|           }, | 						"$ref": "#/definitions/satisfy_any" | ||||||
|           "satify_any": { | 					}, | ||||||
|             "$ref": "#/definitions/satify_any" | 					"items": { | ||||||
|           }, | 						"type": "array", | ||||||
|           "items": { | 						"minItems": 0, | ||||||
|             "type": "array", | 						"items": { | ||||||
|             "minItems": 0, | 							"type": "object", | ||||||
|             "items": { | 							"additionalProperties": false, | ||||||
|               "type": "object", | 							"properties": { | ||||||
|               "additionalProperties": false, | 								"username": { | ||||||
|               "properties": { | 									"type": "string", | ||||||
|                 "username": { | 									"minLength": 1 | ||||||
|                   "type": "string", | 								}, | ||||||
|                   "minLength": 1 | 								"password": { | ||||||
|                 }, | 									"type": "string", | ||||||
|                 "password": { | 									"minLength": 0 | ||||||
|                   "type": "string", | 								} | ||||||
|                   "minLength": 0 | 							} | ||||||
|                 } | 						} | ||||||
|               } | 					}, | ||||||
|             } | 					"clients": { | ||||||
|           }, | 						"type": "array", | ||||||
|           "clients": { | 						"minItems": 0, | ||||||
|             "type": "array", | 						"items": { | ||||||
|             "minItems": 0, | 							"type": "object", | ||||||
|             "items": { | 							"additionalProperties": false, | ||||||
|               "type": "object", | 							"properties": { | ||||||
|               "additionalProperties": false, | 								"address": { | ||||||
|               "properties": { | 									"$ref": "#/definitions/address" | ||||||
|                 "address": { | 								}, | ||||||
|                   "$ref": "#/definitions/address" | 								"directive": { | ||||||
|                 }, | 									"$ref": "#/definitions/directive" | ||||||
|                 "directive": { | 								} | ||||||
|                   "$ref": "#/definitions/directive" | 							} | ||||||
|                 } | 						} | ||||||
|               } | 					} | ||||||
|             } | 				} | ||||||
|           } | 			}, | ||||||
|         } | 			"targetSchema": { | ||||||
|       }, | 				"properties": { | ||||||
|       "targetSchema": { | 					"$ref": "#/properties" | ||||||
|         "properties": { | 				} | ||||||
|           "$ref": "#/properties" | 			} | ||||||
|         } | 		}, | ||||||
|       } | 		{ | ||||||
|     }, | 			"title": "Delete", | ||||||
|     { | 			"description": "Deletes a existing Access List", | ||||||
|       "title": "Delete", | 			"href": "/nginx/access-list/{definitions.identity.example}", | ||||||
|       "description": "Deletes a existing Access List", | 			"access": "private", | ||||||
|       "href": "/nginx/access-list/{definitions.identity.example}", | 			"method": "DELETE", | ||||||
|       "access": "private", | 			"rel": "delete", | ||||||
|       "method": "DELETE", | 			"http_header": { | ||||||
|       "rel": "delete", | 				"$ref": "../examples.json#/definitions/auth_header" | ||||||
|       "http_header": { | 			}, | ||||||
|         "$ref": "../examples.json#/definitions/auth_header" | 			"targetSchema": { | ||||||
|       }, | 				"type": "boolean" | ||||||
|       "targetSchema": { | 			} | ||||||
|         "type": "boolean" | 		} | ||||||
|       } | 	] | ||||||
|     } |  | ||||||
|   ] |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ | |||||||
|                         <div class="col-sm-6 col-md-6"> |                         <div class="col-sm-6 col-md-6"> | ||||||
|                             <div class="form-group"> |                             <div class="form-group"> | ||||||
|                                 <label class="custom-switch"> |                                 <label class="custom-switch"> | ||||||
|                                     <input type="checkbox" class="custom-switch-input" name="satify_any" value="1"<%- typeof satify_any !== 'undefined' && satify_any ? ' checked' : '' %>> |                                     <input type="checkbox" class="custom-switch-input" name="satisfy_any" value="1"<%- typeof satisfy_any !== 'undefined' && satisfy_any ? ' checked' : '' %>> | ||||||
|                                     <span class="custom-switch-indicator"></span> |                                     <span class="custom-switch-indicator"></span> | ||||||
|                                     <span class="custom-switch-description"><%- i18n('access-lists', 'satisfy-any') %></span> |                                     <span class="custom-switch-description"><%- i18n('access-lists', 'satisfy-any') %></span> | ||||||
|                                 </label> |                                 </label> | ||||||
| @@ -48,7 +48,7 @@ | |||||||
|                             </div> |                             </div> | ||||||
|                         </div> |                         </div> | ||||||
|                     </div> |                     </div> | ||||||
|          |  | ||||||
|                     <div class="items"><!-- items --></div> |                     <div class="items"><!-- items --></div> | ||||||
|                 </div> |                 </div> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -72,7 +72,7 @@ module.exports = Mn.View.extend({ | |||||||
|  |  | ||||||
|             let data = { |             let data = { | ||||||
|                 name:       form_data.name, |                 name:       form_data.name, | ||||||
|                 satify_any: !!form_data.satify_any, |                 satisfy_any: !!form_data.satisfy_any, | ||||||
|                 items:      items_data, |                 items:      items_data, | ||||||
|                 clients:    clients_data |                 clients:    clients_data | ||||||
|             }; |             }; | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ | |||||||
|     <%- i18n('access-lists', 'client-count', {count: clients.length || 0}) %> |     <%- i18n('access-lists', 'client-count', {count: clients.length || 0}) %> | ||||||
| </td> | </td> | ||||||
| <td> | <td> | ||||||
|     <% if (satify_any) { %> |     <% if (satisfy_any) { %> | ||||||
|     <%- i18n('str', 'any') %> |     <%- i18n('str', 'any') %> | ||||||
|     <%} else { %> |     <%} else { %> | ||||||
|     <%- i18n('str', 'all') %> |     <%- i18n('str', 'all') %> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user