| 
 
  
	| Представление по группе доступа На страницу  Пред.  1, 2
 
 |  
	
		| Предыдущая тема :: Следующая тема |  
		| Автор | Сообщение |  
		| cool_dude Участник - экстремал
 
 
 Вступление в Клуб: 05.02.2013
 
 | 
			
				|  Чт Фев 13, 2025 13:08    |   |  
				| Полезность: Нет оценки 
 |  
				| нашел такую функцию SECURITY.Ref_Accessible и поставил во вкладке Условие такой код --проверка доступа по реквизиту 	  | Volod пишет: |  	  | В Админ1 - это закладка Отладка в редакторе вьюхи | 
 --1=1
 
  	  | Код: |  	  | SECURITY.Ref_Accessible(A12_2.C_DEPART, /*PL+*/SYS_CONTEXT('BFF_FG0000005_OPER','DEPART')/*PL-*/, 'USER', 'DEPART')=1 AND A12_1.C_NUM_PK = 'ГЛВ_ХР' | 
 BFF_FG0000005_OPER - это группа доступа пользователя. Скомпилировалась без ошибок, но когда запускаешь ни одной записи не показывает. Может я что-то пропустил в этой функции или что-то неправильное написал?
 |  |  
		|  |  
		| Random Эксперт
 
 
 Вступление в Клуб: 27.06.2011
 
 | 
			
				|  Пт Фев 14, 2025 10:13    |   |  
				| Полезность: Нет оценки 
 |  
				|  	  | cool_dude пишет: |  	  | нашел такую функцию SECURITY.Ref_Accessible и поставил во вкладке Условие такой код --проверка доступа по реквизиту 	  | Volod пишет: |  	  | В Админ1 - это закладка Отладка в редакторе вьюхи | 
 --1=1
 
  	  | Код: |  	  | SECURITY.Ref_Accessible(A12_2.C_DEPART, /*PL+*/SYS_CONTEXT('BFF_FG0000005_OPER','DEPART')/*PL-*/, 'USER', 'DEPART')=1 AND A12_1.C_NUM_PK = 'ГЛВ_ХР' | 
 BFF_FG0000005_OPER - это группа доступа пользователя. Скомпилировалась без ошибок, но когда запускаешь ни одной записи не показывает. Может я что-то пропустил в этой функции или что-то неправильное написал?
 | 
 Функция SYS_CONTEXT используется неверно.
 Первый параметр - там вообще сейчас без вариантов должен использоваться user_context
 Второй параметр - имя переменной, которую вы перед этим установите в контекст с этим именем
 
 А в функции вообще на этом месте должно быть username пользователя, как я понимаю, т.е. stdlib.userid.[USERNAME]
 |  |  
		|  |  
		| cool_dude Участник - экстремал
 
 
 Вступление в Клуб: 05.02.2013
 
 | 
			
				|  Пт Фев 14, 2025 13:29    |   |  
				| Полезность: Нет оценки 
 |  
				| то что Вы написали то что я понял, сделал так 	  | Random пишет: |  	  |  	  | cool_dude пишет: |  	  | нашел такую функцию SECURITY.Ref_Accessible и поставил во вкладке Условие такой код --проверка доступа по реквизиту 	  | Volod пишет: |  	  | В Админ1 - это закладка Отладка в редакторе вьюхи | 
 --1=1
 
  	  | Код: |  	  | SECURITY.Ref_Accessible(A12_2.C_DEPART, /*PL+*/SYS_CONTEXT('BFF_FG0000005_OPER','DEPART')/*PL-*/, 'USER', 'DEPART')=1 AND A12_1.C_NUM_PK = 'ГЛВ_ХР' | 
 BFF_FG0000005_OPER - это группа доступа пользователя. Скомпилировалась без ошибок, но когда запускаешь ни одной записи не показывает. Может я что-то пропустил в этой функции или что-то неправильное написал?
 | 
 Функция SYS_CONTEXT используется неверно.
 Первый параметр - там вообще сейчас без вариантов должен использоваться user_context
 Второй параметр - имя переменной, которую вы перед этим установите в контекст с этим именем
 
 А в функции вообще на этом месте должно быть username пользователя, как я понимаю, т.е. stdlib.userid.[USERNAME]
 | 
 но выдает ошибку. 	  | Код: |  	  | SECURITY.Ref_Accessible(A12_2.C_DEPART, sys_context(/*PL+*/user_context/*PL-*/, 'STDLIB.USERID.[USERNAME]'), 'USER', 'DEPART')=1 AND A12_1.C_NUM_PK = 'ГЛВ_ХР'
 | 
 А Вы не могли бы подкорректировать мой код?
 |  |  
		|  |  
		| Volod Эксперт
 
 
 Вступление в Клуб: 19.09.2007
 
 | 
			
				|  Пт Фев 14, 2025 16:53    |   |  
				| Полезность: Нет оценки 
 |  
				| Получить юзера  - SYS_CONTEXT('IBS_SYSTEM','USER') |  |  
		|  |  
		| cool_dude Участник - экстремал
 
 
 Вступление в Клуб: 05.02.2013
 
 | 
			
				|  Пт Фев 14, 2025 20:23    |   |  
				| Полезность: Нет оценки 
 |  
				| а как получить группу доступа юзера? Помогите плиз. 	  | Volod пишет: |  	  | Получить юзера  - SYS_CONTEXT('IBS_SYSTEM','USER') | 
 Вообще, это возможно реализовать в представлениях?
 |  |  
		|  |  
		| Volod Эксперт
 
 
 Вступление в Клуб: 19.09.2007
 
 | 
			
				|  Пн Фев 17, 2025 08:59    |   |  
				| Полезность: Нет оценки 
 |  
				| Если посмотреть исходный код представления, то можно увидеть следующий условия 
 
  	  | Код: |  	  | ( SYS_CONTEXT('IBS_SYSTEM','ADMIN')='1' OR EXISTS
 (
 SELECT 1 FROM Criteria_Rights M_R, Subj_Equal SE
 WHERE M_R.Obj_Id ='4469'
 AND M_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
 )
 AND
 ( EXISTS
 (
 SELECT 1 FROM Class_Rights C_R, Subj_Equal SE
 WHERE C_R.Obj_Id=a1.CLASS_ID AND C_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
 )
 )
 AND (EXISTS
 ( SELECT 1 FROM Object_Rights_EX O_E, Subj_Equal SE
 WHERE O_E.Class_Id='BRANCH' AND O_E.Right_Class_Id=a1.CLASS_ID AND O_E.Obj_Id=TO_CHAR(a1.C_FILIAL)
 AND O_E.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
 )
 AND
 exists (select 1 from object_rights_ex o, subj_equal e where e.subj_id=SYS_CONTEXT('IBS_SYSTEM','USER') and o.subj_id=e.equal_id and o.obj_id=to_char(a1.C_FILIAL) and o.right_class_id=a1.CLASS_ID and o.class_id='BRANCH')
 
 )
 
 | 
 
 Но этот код формируется в результате настройки представления и доступа
 |  |  
		|  |  
		| cool_dude Участник - экстремал
 
 
 Вступление в Клуб: 05.02.2013
 
 | 
			
				|  Пн Фев 17, 2025 12:33    |   |  
				| Полезность: Нет оценки 
 |  
				| да, я видел этот код, но мне не помог. Просто меня интересует вопрос, можно ли получить группу доступа юзера в представлении? Если Да, то укажите пжл код, если нет и это невозможно, то скажите, чтоб зря время не терять ) А то я уже который день мучаюсь и никак не могу решить данную проблему. 	  | Volod пишет: |  	  | Если посмотреть исходный код представления, то можно увидеть следующий условия 
 
  	  | Код: |  	  | ( SYS_CONTEXT('IBS_SYSTEM','ADMIN')='1' OR EXISTS
 (
 SELECT 1 FROM Criteria_Rights M_R, Subj_Equal SE
 WHERE M_R.Obj_Id ='4469'
 AND M_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
 )
 AND
 ( EXISTS
 (
 SELECT 1 FROM Class_Rights C_R, Subj_Equal SE
 WHERE C_R.Obj_Id=a1.CLASS_ID AND C_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
 )
 )
 AND (EXISTS
 ( SELECT 1 FROM Object_Rights_EX O_E, Subj_Equal SE
 WHERE O_E.Class_Id='BRANCH' AND O_E.Right_Class_Id=a1.CLASS_ID AND O_E.Obj_Id=TO_CHAR(a1.C_FILIAL)
 AND O_E.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
 )
 AND
 exists (select 1 from object_rights_ex o, subj_equal e where e.subj_id=SYS_CONTEXT('IBS_SYSTEM','USER') and o.subj_id=e.equal_id and o.obj_id=to_char(a1.C_FILIAL) and o.right_class_id=a1.CLASS_ID and o.class_id='BRANCH')
 
 )
 
 | 
 
 Но этот код формируется в результате настройки представления и доступа
 | 
 |  |  
		|  |  
		| cool_dude Участник - экстремал
 
 
 Вступление в Клуб: 05.02.2013
 
 | 
			
				|  Ср Фев 19, 2025 18:15    |   |  
				| Полезность: Нет оценки 
 |  
				| Тему можно закрыть. Нашел решение. Всем спасибо. 	  | cool_dude пишет: |  	  | да, я видел этот код, но мне не помог. Просто меня интересует вопрос, можно ли получить группу доступа юзера в представлении? Если Да, то укажите пжл код, если нет и это невозможно, то скажите, чтоб зря время не терять ) А то я уже который день мучаюсь и никак не могу решить данную проблему. 	  | Volod пишет: |  	  | Если посмотреть исходный код представления, то можно увидеть следующий условия 
 
  	  | Код: |  	  | ( SYS_CONTEXT('IBS_SYSTEM','ADMIN')='1' OR EXISTS
 (
 SELECT 1 FROM Criteria_Rights M_R, Subj_Equal SE
 WHERE M_R.Obj_Id ='4469'
 AND M_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
 )
 AND
 ( EXISTS
 (
 SELECT 1 FROM Class_Rights C_R, Subj_Equal SE
 WHERE C_R.Obj_Id=a1.CLASS_ID AND C_R.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
 )
 )
 AND (EXISTS
 ( SELECT 1 FROM Object_Rights_EX O_E, Subj_Equal SE
 WHERE O_E.Class_Id='BRANCH' AND O_E.Right_Class_Id=a1.CLASS_ID AND O_E.Obj_Id=TO_CHAR(a1.C_FILIAL)
 AND O_E.Subj_Id=SE.Equal_Id AND SE.Subj_Id=SYS_CONTEXT('IBS_SYSTEM','USER')
 )
 AND
 exists (select 1 from object_rights_ex o, subj_equal e where e.subj_id=SYS_CONTEXT('IBS_SYSTEM','USER') and o.subj_id=e.equal_id and o.obj_id=to_char(a1.C_FILIAL) and o.right_class_id=a1.CLASS_ID and o.class_id='BRANCH')
 
 )
 
 | 
 
 Но этот код формируется в результате настройки представления и доступа
 | 
 | 
 |  |  
		|  |  
		|  |  
  
	| 
 
 | Вы не можете начинать темы Вы не можете отвечать на сообщения
 Вы не можете редактировать свои сообщения
 Вы не можете удалять свои сообщения
 Вы не можете голосовать в опросах
 
 |  |