Commit 7e249114 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Permite usar targets privados para tracking

En caso de que la vista esté configurada para requerir permisos, se
aprovecha para configurar también un conjunto de targets privados para
solicitar los datos de tracking. Esto es una medida temporal, hasta que
se integren todos los accesos bajo el mismo servicio y se evaluen los
permisos del usuario.
parent 6cff7d35
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -274,7 +274,14 @@ define([

		_getActivityTrackingConfig: function(config) {

			return {
			var additionalConfig = {};

			if (config && config.accessGranted) {
				additionalConfig.props = {};
				additionalConfig.props.usePrivateTarget = config.accessGranted;
			}

			return this._merge([{
				width: 6,
				height: 6,
				type: ActivityTrackingMap,
@@ -282,7 +289,7 @@ define([
					title: 'tracking',
					pathVariableId: this._activityData.id
				}
			};
			}, additionalConfig]);
		},

		_getActivityInfrastructureConfig: function(config) {
+8 −4
Original line number Diff line number Diff line
@@ -73,9 +73,9 @@ define([
			this._once(channelToSubscribe, lang.hitch(this, function(grantsDfd, res) {

				if (res.accessGranted) {
					grantsDfd.resolve();
					grantsDfd.resolve(true);
				} else {
					grantsDfd.reject();
					grantsDfd.reject(false);
				}
			}, dfd));

@@ -85,7 +85,7 @@ define([
			});
		},

		_onLayoutNotGranted: function(res) {
		_onLayoutNotGranted: function(grantsDfd) {

			// TODO mostrar al usuario un aviso de que existen datos en la actividad, pero no tiene permiso.
			// Ofrecerle identificarse.
@@ -103,12 +103,16 @@ define([
			}
		},

		_prepareDetailLayoutWidgets: function(detailLayout, layoutConfig) {
		_prepareDetailLayoutWidgets: function(detailLayout, layoutConfig, grantsDfd) {

			if (!this._detailLayoutWidgets) {
				this._detailLayoutWidgets = [];
			}

			if (grantsDfd !== undefined) {
				layoutConfig.accessGranted = grantsDfd;
			}

			var prepareWidgetsMethod;

			if (detailLayout === 'citationMap') {
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ define([
		_accessByActivityCategory: function(activityCategory) {

			if (!activityCategory || this.activityCategory.indexOf(activityCategory) === -1) {
				this._goTo404();
				//this._goTo404();
			}
		}
	});
+6 −1
Original line number Diff line number Diff line
@@ -40,6 +40,10 @@ define([
			};

			lang.mixin(this, this.config, args);

			if (this.usePrivateTarget) {
				this.baseTargetChildren = redmicConfig.services.privateElementsTrackingActivity;
			}
		},

		_setMainConfigurations: function() {
@@ -50,7 +54,8 @@ define([
					height: 6,
					type: declare([Tracking, _TrackingWithListByFilter]),
					props: {
						classWindowContent: "view"
						classWindowContent: "view",
						usePrivateTarget: this.usePrivateTarget
					}
				}
			}, this.widgetConfigs || {}]);
+5 −3
Original line number Diff line number Diff line
@@ -60,8 +60,6 @@ define([
				"class": "",

				layersTarget: redmicConfig.services.pointTrackingCluster,
				// TODO cuando se pidan por actividad, definir este en redmicConfig
				//layersTarget: "/api/activities/{id}/tracking/cluster",
				infoTarget: redmicConfig.services.trackingActivity,

				mainEvents: {
@@ -100,6 +98,10 @@ define([
			};

			lang.mixin(this, this.config, args);

			if (this.usePrivateTarget) {
				this.layersTarget = redmicConfig.services.privatePointTrackingCluster;
			}
		},

		_setMainConfigurations: function() {
@@ -287,7 +289,7 @@ define([
			this._activityIdByUuid[idProperty] = item.activityId;

			var target = lang.replace(this.layersTarget, {
					elementuuid: idProperty,	// TODO cuando se pidan por actividad, omitir este parámetro
					elementuuid: idProperty,
					activityid: this._activityIdByUuid[idProperty]
				}),
				infoTarget = lang.replace(this.infoTarget, {
Loading