20 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Expression Policy
 | |
| 
 | |
| Expression Policies allows you to write custom Policy Logic using Jinja2 Templating language.
 | |
| 
 | |
| For a language reference, see [here](https://jinja.palletsprojects.com/en/2.11.x/templates/).
 | |
| 
 | |
| The following objects are passed into the variable:
 | |
| 
 | |
| - `request`: A PolicyRequest object, which has the following properties:
 | |
|     - `request.user`: The current User, which the Policy is applied against. ([ref](../../property-mappings/reference/user-object.md))
 | |
|     - `request.http_request`: The Django HTTP Request, as documented [here](https://docs.djangoproject.com/en/3.0/ref/request-response/#httprequest-objects).
 | |
|     - `request.obj`: A Django Model instance. This is only set if the Policy is ran against an object.
 | |
| - `pb_is_sso_flow`: Boolean which is true if request was initiated by authenticating through an external Provider.
 | |
| - `pb_is_group_member(user, group_name)`: Function which checks if `user` is member of a Group with Name `gorup_name`.
 | |
| 
 | |
| There are also the following custom filters available:
 | |
| 
 | |
| - `regex_match(regex)`: Return True if value matches `regex`
 | |
| - `regex_replace(regex, repl)`: Replace string matched by `regex` with `repl`
 | 
