Динамическое управление включением механизма прав доступа

Добрый день!

Возникла потребность на карточке объекта, для которого в разделе права доступа к объекту настроено администрирование по колонкам, в зависимости от пользователя, включать или выключать данное администрирование, проверку прав.

Нашел модуль SecurutyUtilities, метод checkColumnsEditRight, который как мне кажется выполняет данную проверку, одна при открытии карточки отладчик не попадает в этот метод.

Подскажите, в какую сторону копать, какой метод или сервис можно переопределить для решения данной задачи.

Нравится

1 комментарий

Этот метод используется только в схеме OrderPageV2 пакета Order:

/**
* Validates payment status and change if valid.
* @protected
* @param {Function} callback The callback function.
* @param {Object} scope Environment object callback function.
*/
validatePaymentStatus: function(callback, scope) {
	if (this.validate()) {
		var parameters = {
			columnNames: ["PaymentStatus"],
			callback: this.handleColumnRightsAvailability.bind(this, callback, scope)
		};
		this.checkColumnsEditRight.call(this, parameters);
	} else {
		callback.call(scope || this);
	}
},
 
/**
* Handles column rights availability.
* @private
* @param {Function} callback The callback function.
* @param {Object} scope Environment object callback function.
* @param {Object} columnRights Rights of column.
*/
handleColumnRightsAvailability: function(callback, scope, columnRights) {
	if (columnRights.PaymentStatus) {
		this.changePaymentStatus(callback, scope || this);
	} else {
		callback.call(scope || this);
	}
},

Но права доступа определяются на стороне сервера и не уверен, что на стороне браузера получится их регулировать.

Вообще, непонятно, чем отличаются обычные права по колонкам от того, что Вы хотите. Если у пользователя есть права, он видит или может менять значение поля, нет — не может. 

Показать все комментарии