impersonate

parent 492dc574
......@@ -45,6 +45,7 @@ INSTALLED_APPS = [
'administration.apps.AdministrationConfig',
'users.apps.UsersConfig',
'django_extensions',
'impersonate'
]
MIDDLEWARE = [
......@@ -53,9 +54,11 @@ MIDDLEWARE = [
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'impersonate.middleware.ImpersonateMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'catalog.middleware.AuthRequiredMiddleware',
]
ROOT_URLCONF = 'GeoInt_SIDT.urls'
......
......@@ -31,5 +31,6 @@ urlpatterns = [
url(r'^mail/', include('mail.urls')),
url(r'^administration/', include('administration.urls')),
url(r'^users/', include('users.urls')),
url(r'^impersonate/', include('impersonate.urls')),
]
# + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
......@@ -164,6 +164,10 @@
{% if user.superuser == True %}checked{% endif %}>
</td>
<td>
{% if not user.superuser and request.user.is_superuser %}
<a title="swithc user" href="{% url 'impersonate-start' user.user_id %}" class="btn btn-warning"><i
class="fa fa-eye"></i></a>
{% endif %}
<button title="save" type="submit" class="btn btn-success"><i
class="fa fa-save"></i></button>
{% if Viewname != "Request" %}
......
......@@ -15,6 +15,7 @@ class AuthRequiredMiddleware(object):
# the view (and later middleware) are called.
response = self.get_response(request)
print ('midleware response',response)
if "/reports/" in request.path_info and not request.user.is_authenticated:
......@@ -33,12 +34,17 @@ class AuthRequiredMiddleware(object):
#elif not request.user.is_authenticated and request.path_info == reverse('tile') or request.path_info == reverse('tileinfo') :
# return response
elif "/impersonate/" in request.path_info:
return response
elif request.path_info == reverse('ipn'):
return response
elif not request.user.is_authenticated and request.path_info != reverse('login') and not request.user.is_active:
return HttpResponseRedirect(reverse('login'))
# Code to be executed for each request/response after
# the view is called.
print ('user', request.user)
return response
......@@ -32,13 +32,14 @@
{% block headMedia %}{% endblock %}
<link rel="stylesheet" href="{% static 'catalog/adminlte/bower_components/guides-master/dist/guides.css' %}">
<link rel="stylesheet" href="{% static 'catalog/css/base_top.css' %}">
</head>
<body style="overflow: hidden;" class="hold-transition skin-yellow sidebar-mini">
<!-- <div id="map" class="map" tabindex="0"> </div>-->
<!-- <iframe id="catalogFrame" name="catalogFrame">my frame</iframe>-->
<!-- <div id="map" class="map" tabindex="0"> </div>-->
<!-- <iframe id="catalogFrame" name="catalogFrame">my frame</iframe>-->
<div class="wrmapper">
<div class="wrmapper">
<header class="main-header">
<!-- Logo -->
<a {% if request.user.is_authenticated %}href="{{ BASE_URL }}/catalog" {% else %}
......@@ -51,6 +52,7 @@
</a>
<!-- Header Navbar: style can be found in header.less -->
<nav class="navbar navbar-static-top">
<!-- Sidebar toggle button-->
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
<span class="sr-only">Toggle navigation</span>
......@@ -110,7 +112,10 @@
</div>
{% endif %}
</nav>
</header>
<!-- Left side column. contains the logo and sidebar -->
<aside class="main-sidebar">
<!-- sidebar: style can be found in sidebar.less -->
......@@ -124,7 +129,15 @@
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper" style="border:0px solid blue;">
{% block content %}{% endblock %}
{% if user.is_impersonate %}
<div class="alert alert2 alert-dismissible " >
<a href="{% url 'impersonate-stop' %}" class="close" data-dismiss="alert" aria-label="close">&times;</a>
<strong>View as: </strong> {{ user.get_full_name }}
</div>
{% endif %}
{% block content %}
{% endblock %}
{% block templates %}{% endblock %}
</div>
<!-- /.content-wrapper -->
......@@ -228,36 +241,36 @@
</div>
<!-- control para dibujar el poligono -->
</div>
</div>
<!-- ./wrapper -->
</div>
<!-- ./wrapper -->
<!-- T E M P L A T E S -->
<!-- T E M P L A T E S -->
<!-- T E M P L A T E S -->
<!-- MODAL 1 -->
{% block modals %}{% endblock %}
<!-- MODAL 1 -->
<!-- T E M P L A T E S -->
<!-- MODAL 1 -->
{% block modals %}{% endblock %}
<!-- MODAL 1 -->
<!-- Bootstrap 3.3.7 -->
<script src="{% static 'catalog/adminlte/bower_components/bootstrap/dist/js/bootstrap.min.js' %}"></script>
<!-- AdminLTE App -->
<script src="{% static 'catalog/adminlte/dist/js/adminlte.min.js' %}"></script>
<!-- Data management file -->
<script src="{% static 'catalog/js/dataRetrieval.js' %}" type="text/javascript"></script>
<!-- Chartsjs -->
<script src="{% static 'catalog/js/Chart.min.js' %}" type="text/javascript"></script>
<!-- Fengyuan Chen's Datepicker -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/datepicker/0.6.5/datepicker.min.js"
<!-- Bootstrap 3.3.7 -->
<script src="{% static 'catalog/adminlte/bower_components/bootstrap/dist/js/bootstrap.min.js' %}"></script>
<!-- AdminLTE App -->
<script src="{% static 'catalog/adminlte/dist/js/adminlte.min.js' %}"></script>
<!-- Data management file -->
<script src="{% static 'catalog/js/dataRetrieval.js' %}" type="text/javascript"></script>
<!-- Chartsjs -->
<script src="{% static 'catalog/js/Chart.min.js' %}" type="text/javascript"></script>
<!-- Fengyuan Chen's Datepicker -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/datepicker/0.6.5/datepicker.min.js"
integrity="sha256-/7FLTdzP6CfC1VBAj/rsp3Rinuuu9leMRGd354hvk0k=" crossorigin="anonymous"></script>
<script src="{% static 'catalog/adminlte/bower_components/guides-master/dist/guides.min.js' %}"
<script src="{% static 'catalog/adminlte/bower_components/guides-master/dist/guides.min.js' %}"
type="text/javascript"></script>
{% block footer %}{% endblock %}
{% block footer %}{% endblock %}
{% block scripts %}{% endblock %}
{% block scripts %}{% endblock %}
{% if messages %}
{% if messages %}
<div class="container col-md-2 col-lg-2 col-xs-2 col-sm-2" style="bottom: 0; right: 0;position: absolute">
{% for message in messages %}
<div {% if message.tags %} class="fade in alert alert-dismissible alert-{{ message.tags }}"{% endif %}>
......@@ -266,10 +279,10 @@
</div>
{% endfor %}
</div>
{% endif %}
{% endif %}
{% block guide %}
{% endblock %}
{% block guide %}
{% endblock %}
</body>
</html>
......
MAPBOX_ACCESS_TOKEN = 'pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw';
MAX_OPACITY = 1;
FIRST_IMAGE_LAYER_INDEX = 2;
document.getElementById("light").checked = true;
// create wkt polygon
const wktFormat = new ol.format.WKT();
......@@ -79,6 +79,8 @@ else {
x = 'light';
//console.log({x})
}
document.getElementById(x).checked = true;
const polygonLayer = new ol.layer.Vector({
name: 'polygon',
source: new ol.source.Vector({
......@@ -207,7 +209,7 @@ function changeLayers(especific_layerName) {
}
layers.set(layerName, xyz);
sessionStorage.setItem(layerName, layerName); // replace
sessionStorage.setItem(layerName, layerName);
});
}
......@@ -223,7 +225,7 @@ function removeLayer(layerName) {
map.removeLayer(layers.get(layerName));
layers.delete(layerName);
sessionStorage.layers = layers;
sessionStorage.removeItem(layerName)
}
// set opacity to layers
......
......@@ -208,7 +208,7 @@ def Reports(request):
for file in os.listdir(zip_path):
if file.endswith(".zip"):
zip = zip_path + "/" + file
if os.path.exists(USERS_PATH + producto['user__email'] + '/' + str(producto['id']) + '/scl_data.json'):
if os.path.getsize(USERS_PATH + producto['user__email'] + "/" + str(producto['id']) + "/scl_data.json") > 3:
Data = True
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment