powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Верификация пользователя в Zen
19 сообщений из 19, страница 1 из 1
Верификация пользователя в Zen
    #37924798
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, такая проблема: есть страница логина, необходимо отсылать на неё с других страниц проекта всех пользователей, кто не находится в данный момент в %session или у кого время тайм-аута вышло.

Пробовал реализовать это в событиях страницы %onAfterCreatePage и %onBeforeCreatePage - но всё бестолку, ибо методы js такие как &js<window.location='GUI.WEB.LoginPage.cls'> просто-напросто виснут(вероятно по причине отсутствия самой страницы скрипт страницы работать не может)

Еще есть событие onCreatePage но оно распознает только JavaScript и я не могу там описать сложное условие верификации пользователя Cache. Когда пытаюсь её перенаправить на метод написанный на Cache - ругается и матерится при выполнении.

Короче, есть идеи?
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37924937
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegКороче, есть идеи?
Начинай делать тестовый пример...
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37924953
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

Тестовый пример? А я непонятно объяснил? Если что он у меня уже есть готовый.
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37924969
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Method verifyUser() [ ZenMethod ]
{
	if $g(%session.Data("user"))'=""
    {
       	set pHashPassword=$g(%session.Data("user"))
			set res=##class(BL.Subj.Employee).CheckLogin(,,pHashPassword)
			if $$$ISERR(res)
			{
				set ^bda("CheckLogin!!!","%OnBeforeCreatePage")=$system.Status.GetErrorText(res)
				set $EC=$system.Status.GetErrorText(res)
			}
    }
	else
	{
			&js<window.location='GUI.WEB.Index.cls'>
	}
}

/// This client method, if present, is called when this component is
/// instantiated. This allows for any additional client-side 
/// initialization for this object.<br>
/// Note that this <em>must</em> be a client-side method.
ClientMethod onCreate() [ Language = javascript ]
{
	this.verifyUser();
}



при переходе к верификации js ругается
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37925060
Nikator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
feanorcheg, попробуйте так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Method verifyUser() [ ZenMethod ]
{
	if $g(%session.Data("user"))'=""
    {
       	set pHashPassword=$g(%session.Data("user"))
			set res=##class(BL.Subj.Employee).CheckLogin(,,pHashPassword)
			if $$$ISERR(res)
			{
				set ^bda("CheckLogin!!!","%OnBeforeCreatePage")=$system.Status.GetErrorText(res)
				set $EC=$system.Status.GetErrorText(res)
			}
    }
	else
	{
                  #dim %response As %CSP.Response
  	         set %response.Redirect="GUI.WEB.Index.cls"
		
	}
}

/// This client method, if present, is called when this component is
/// instantiated. This allows for any additional client-side 
/// initialization for this object.<br>
/// Note that this <em>must</em> be a client-side method.
ClientMethod onCreate() [ Language = javascript ]
{
	this.verifyUser();
}
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37925554
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegРебят, такая проблема: есть страница логина, необходимо отсылать на неё с других страниц проекта всех пользователей, кто не находится в данный момент в %session или у кого время тайм-аута вышло.

Приведенный код не соответствует вашей задаче - или задача другая, или код не к ней.

Если же задача именно такая, как в цитате, то отсылать никого никуда не нужно. Достаточно обновить текущую страницу (например, яваскриптом) - каше срастит, что сессии нету и сам предложит залогиниться ;)
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37925607
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesovfeanorchegРебят, такая проблема: есть страница логина, необходимо отсылать на неё с других страниц проекта всех пользователей, кто не находится в данный момент в %session или у кого время тайм-аута вышло.

Приведенный код не соответствует вашей задаче - или задача другая, или код не к ней.

Если же задача именно такая, как в цитате, то отсылать никого никуда не нужно. Достаточно обновить текущую страницу (например, яваскриптом) - каше срастит, что сессии нету и сам предложит залогиниться ;)

В каком смысле не подходит? Что здесь не так?

Nikatorfeanorcheg, попробуйте так

у меня не выходит даже перейти с события OnCreate на Cache метод.

Ну нет, внутренний механизм я не использовал, задача поставлена так, что необходимо держать сведенья о пользователях в конкретной таблице и не прибегать к внешним механизмам.
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37925753
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давно не работал с ZEN
При первом обращении к приложения я полагаю отображаешь страницу авторизации, потому как можешь определить пользователь не прошел авторизацию.
когда прошел авторизацию
зная время таймаута, можно запустить счетчик времени, чтобы по истечении этого времени просто перевел на главную страницу (с авторизацией)

если ты пока вообще никак не авторизуешь, и страница авторизации у тебя отдельная, то в OnPreHTTP каждой страницы тебе нужно определить требуется ли авторизация, и перенаправляешь на страницу авторизации

что то типа этого
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
ClassMethod OnPreHTTP() As %Boolean [ ServerOnly = 1 ]
{
	s requireLogin=1
	i requireLogin {
		s %response.Redirect="LoginPage.cls"
		q 0
	}
	q 1
}
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37926337
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMors %response.Redirect="LoginPage.cls"[/src]

Спасибо, получилось=)
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37926618
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про такое даже в документации есть инфа...
http://docs.intersystems.com/cache20102/csp/docbook/DocBook.UI.Page.cls?KEY=TCSP_ResponseExample
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37926694
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorcheg,

Это для ВУЗа контрольная снова?
А какой ВУЗ?
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37927308
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegkolesovпропущено...

Приведенный код не соответствует вашей задаче - или задача другая, или код не к ней.

Если же задача именно такая, как в цитате, то отсылать никого никуда не нужно. Достаточно обновить текущую страницу (например, яваскриптом) - каше срастит, что сессии нету и сам предложит залогиниться ;)

В каком смысле не подходит? Что здесь не так?

Как я понимаю, если пользователь пытается открыть страницу не залогинившись, то ему и так покажется страница с логином.
А если есть желание использовать страницу логина, отличную от дефолтовой, то правильнее, имхо, ее в настройках приложения указать как страницу логина.
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37927367
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesovКак я понимаю, если пользователь пытается открыть страницу не залогинившись, то ему и так покажется страница с логином.
Немного дополню. Для этого галка "Не аутентифицированный" должна быть убрана :)
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37927639
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шваров Евгений,

Это для работы.
А вуз МГТУ им. Баумана

Ребят, спасиб, я просто второй месяц вращаюсь в этой СУБД и всё со сроками торопился, так что не было времени заботнуть как следует.
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37928555
gehc2ChSo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
feanorchegЭто для работы.

Тогда привет Дмитрию Александровичу!
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37928923
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gehc2ChSofeanorchegЭто для работы.

Тогда привет Дмитрию Александровичу!

Фига себе!! Неужели ЭскейпМ единственные, кто программирует профессионально в этой среде?
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37928933
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorcheggehc2ChSoпропущено...

Тогда привет Дмитрию Александровичу!

Фига себе!! Неужели ЭскейпМ единственные, кто программирует профессионально в этой среде?

Не знаю о чем вы, но компаний профессионально программирующих на Cache, много больше чем одна, тем более в Москве
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37928940
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
feanorchegФига себе!! Неужели ЭскейпМ единственные
Ну почему единственные? Просто нас мало, все дргу друга и так знают
...
Рейтинг: 0 / 0
Верификация пользователя в Zen
    #37928963
feanorcheg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это единственное объяснение тому, что сейчас произошло))
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Верификация пользователя в Zen
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]