/// <summary> /// Determine that user can view scenario value /// </summary> /// <param name="user"></param> /// <param name="source"></param> /// <returns></returns> protected bool CanViewValue(ScenarioActionSource source) { try { if (SecuritySettings == null) { throw new NullReferenceException("Security settings is null"); } return(SecuritySettings.IsAvailableForUser(source.User, source.Source, ScenarioAction.ViewValue)); } catch (Exception e) { Log.ErrorFormat(e, "Ошибка во время вычисления прав для просмотра значения сценария [{0}][{1}]", Name, Id); return(false); } }
/// <summary> /// Determine that user can execute scenario /// </summary> /// <param name="user"></param> /// <param name="source"></param> /// <returns></returns> protected bool CanExecute(ScenarioActionSource source) { try { if (SecuritySettings == null) { throw new NullReferenceException("Security settings is null"); } var writeAvailableForThisSource = !OnlyGetValue || source.Source == ScenarioStartupSource.System; //crutch, scenario can be executed by itself or system return(writeAvailableForThisSource && SecuritySettings.IsAvailableForUser(source.User, source.Source, ScenarioAction.Execute)); } catch (Exception e) { Log.ErrorFormat(e, "Ошибка во время вычисления прав для выполнения сценария [{0}][{1}]", Name, Id); return(false); } }