Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
В ZEN-квикстарте есть упонинание про вот такой вид безопастности... автор Код: plaintext Но далее про это ничего не найду... Как создать этот "ресурс"? Как потом осуществить привязку пользователя страницы к этому ресурсу? Очень хотелось бы научиться этим пользоваться... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 10:36 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Добрый день, krvsa! Приведу фрагменты кода где использую и создаю ресурсы. Клиент. <hmenu id="MainMenu" onshowHelp="zenPage.showHelp(help);" help="Top"> <menu caption="Система" id="menuSystem" resource="User_SYS" layout="vertical"> <menuItem id="mnuRegUser" caption="Реєстрація користувачів" link="WEBFORM.frmRegUsers.cls" image="images/regusers.png" title="Реєстрація користувачів для роботи в системі" resource="Admin_Total" /> <menuItem id="mnuPeople" caption="Фізичні особи" link="WEBFORM.frmPeople.cls" image="images/users.png" title="Довідник фізичних осіб" resource="Individual" /> ... Программа, используя которую можно создавать пользователей, роли и ресурсы. sysWork ; //создание нового пользователя NewUser(oldLog,log,pwd,id,idGr,managerSys) s PeopleID=##class(DATA.HUMAN.People).%OpenId(id) s FullName=PeopleID.Man.Surname_" "_PeopleID.Man.Name_" "_PeopleID.Man.Patronymic d PeopleID.%Close() s Gr=##class(DATA.SHARED.GroupUserSys).%OpenId(idGr) s NameGr=Gr.Name d Gr.%Close() s namespace=$ZNSpace zn "%SYS" s prop="",sysUser="" s sysUser=##Class(Security.Users).Get(oldLog,.prop) if sysUser=1 { s roles="%DB_%DEFAULT,%DB_CACHESYS,"_NameGr if managerSys {s roles=roles_",%Manager"} s prop("Roles")=roles s prop("Password")=pwd s prop("FullName")=FullName s sysUser=##Class(Security.Users).Modify(oldLog,.prop) } else { s sysUser=##Class(Security.Users).%New() s sysUser.Name=log s sysUser.Password=pwd s sysUser.FullName=FullName do sysUser.Roles.Clear() do sysUser.Roles.Insert("%DB_%DEFAULT") do sysUser.Roles.Insert("%DB_CACHESYS") if managerSys {do sysUser.Roles.Insert("%Manager")} do sysUser.Roles.Insert(NameGr) d sysUser.%Save() } zn namespace &sql(GRANT * ON * TO *) q //удаление пользователя DeleteUser(id) ;DO $SYSTEM.Security.Login("_SYSTEM","SYS") s cls=##class(DATA.SYSTEM.USERS).%OpenId(id) if cls'="" { s login=cls.Login d cls.%Close() zn "%SYS" d ##Class(Security.Users).Delete(login) } q //удаление роли DeleteRoles(id) zn "%SYS" do ##Class(Security.Roles).Delete(id) q //создание роли CreateRoles(Name,Opis,SpisRes) zn "%SYS" if (##Class(Security.Roles).Exists(Name)) { s Properties("Resources")="" s Properties("Resources")=SpisRes do ##Class(Security.Roles).Modify(Name,.Properties) } else { s res=##Class(Security.Roles).%New() d res.Create(Name,Opis,SpisRes,) ; создает роль с ресурсами(разделитель запятая) d res.%Save() } q //редактирование роли EditRoles(oldid,id) zn "%SYS" do ##Class(Security.Roles).Copy(oldid,id,oldid) do ##Class(Security.Roles).Delete(oldid) q //удаление ресурса DeleteResources(id) zn "%SYS" do ##Class(Security.Resources).Delete(id) q //создание ресурса CreateResources(Name,Opis) zn "%SYS" s res=##Class(Security.Resources).%New() s res.Name=Name s res.Description=Opis d res.%Save() q CreateAllResources s namespace=$ZNSpace zn "%SYS" Set rset = ##class(%ResultSet).%New("DATA.SHARED.ResSys:ByName") Do rset.Execute() //заполняем созданый список ресурсов While (rset.Next()) { s res=##Class(Security.Resources).%New() s res.Name=rset.Data("Name") s res.Description=rset.Data("Opisanie") d res.%Save() } zn namespace q СreateResourcesFrom() ;дополнение списка ресурсов s namespace=$ZNSpace zn "%SYS" s i=0 for { set i=i+1 set option=$CASE(i,1:"Individual^Фізічна особа", 2:"Juridical^Юридична особа", 3:"Admin_Total^Адміністратор системи", 4:"Admin_DB^Адміністратор бази даних", 5:"User_SYS^Загальний користувач", 6:"Individual_Edit^Редагування Фізічної особи", 7:"Juridical_Edit^Редагування Юридичної особи", 8:"Total_Edit^Редагування", 9:"User_GO^Загальний користувач ОСАГО", 10:"Admin_GO^Адміністратор бази данних ОСАГО", 11:"%System_CallOut^%System_CallOut", 12:"%All^%All", :"close") q:option="close" s NamRes=$p(option,"^"),NamOpis=$p(option,"^",2) i NamRes'="" { s res=##Class(Security.Resources).Exists(NamRes) i 'res { s sres=##Class(Security.Resources).%New() s sres.Name=NamRes s sres.Description=NamOpis d sres.%Save() } zn namespace Set rset = ##class(%ResultSet).%New("DATA.SHARED.ResSys:SerchName") Do rset.Execute(NamRes) i 'rset.Next() { s rres=##Class(DATA.SHARED.ResSys).%New() s rres.Name=NamRes s rres.Opisanie=NamOpis d rres.%Save() } zn "%SYS" } } q 1 Пример вызова программы. /// Формирование полного набора ресурсов Method СreateResourcesFrom() [ ZenMethod ] { j СreateResourcesFrom^sysWork() h 1 &js<zenPage.gotoPage('WEBFORM.frmAllResSys.cls');> q } Создание роли. Class WEBFORM.frmCardGroup Extends WEBFORM.Template.TemplateCard { /// Имя приложения, которому принадлежит эта страница. Parameter APPLICATION = "WEBFORM.Application"; /// Отображаемое имя для нового приложения. Parameter PAGENAME; /// Домен, используемый для локализации. Parameter DOMAIN; Property objID As %ZEN.Datatype.integer(ZENURL = "ID") [ InitialExpression = 1 ]; /// Этот блок Style содержит определение CSS стиля страницы. XData Style { <style type="text/css"> </style> } /// Этот XML блок описывает содержимое этой страницы. XData mainPane [ XMLNamespace = "http://www.intersystems.com/zen" ] { <pane xmlns="http://www.intersystems.com/zen" title=""> <dataController id="source" modelClass="WEBFORM.DataModel.GroupUserSys" modelId="#(%url.ID)#"/> <fieldSet label="Картка ролі користувача" labelStyle="font-size: 1.5em; text-align: center;"> <form id="idForm" align="center" valign="middle" controllerId="source"> <text label="Назва ролі:" id="Name" name="Name" size="50" required="true" requiredMessage="не заповнено" dataBinding="Name" /> </form> </fieldSet> <hgroup align="right"> <button align="right" caption="Зберегти" onclick="zenPage.saveItem();"/> <spacer width="40"/> <button align="right" caption="Вихід" onclick="zenPage.ExitForm();"/> </hgroup> <text label="ID:" id="objid" value="#(%url.ID)#" size="4" hidden="true"/> </pane> } /// сохранение записи Method saveItem() [ Language = javascript ] { var form = zenPage.getComponentById('idForm'); form.save(); var name = zenPage.getComponentById('Name').getProperty('value'); this.CreateRoles(name); self.close(); } /// создание роли ClassMethod CreateRoles(id) [ ZenMethod ] { j CreateRoles^sysWork(id,id,"") Quit } /// закрываем окно Method ExitForm() [ ZenMethod ] { &js<self.close();> } } создание списка ресурсов для роли. Class WEBFORM.frmCardPermissionGroup Extends WEBFORM.Template.TamplateObject { /// Имя приложения, которому принадлежит эта страница. Parameter APPLICATION = "WEBFORM.Application"; /// Отображаемое имя для нового приложения. Parameter PAGENAME; /// Домен, используемый для локализации. Parameter DOMAIN; Property objID As %ZEN.Datatype.integer(ZENURL = "ID") [ InitialExpression = 1 ]; /// Этот блок Style содержит определение CSS стиля страницы. XData Style { <style type="text/css"> </style> } /// Этот XML блок описывает содержимое этой страницы. XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ] { <page xmlns="http://www.intersystems.com/zen" title="" dragAndDrop="true"> <hgroup align="center"> <vgroup valign="top"> <titleBox title="Доступні ресурси"/> <spacer height="2"/> <listBox id="DostMenu" listWidth="400px" listHeight="570px" dragEnabled="true" dropEnabled="true" onafterdrag="zenPage.afterDrag(zenThis,dragData);"> </listBox> </vgroup> <spacer width="10"/> <vgroup valign="top"> <titleBox title="Вибрані ресурси"/> <spacer height="2"/> <listBox id="SelectMenu" listWidth="400px" listHeight="570px" dragEnabled="true" dropEnabled="true" onafterdrag="zenPage.afterDrag(zenThis,dragData);"> </listBox> </vgroup> </hgroup> <hgroup align="center"> <button align="center" caption="Зберегти" onclick="zenPage.saveItem();"/> <spacer width="40"/> <button align="center" caption="Вихід" onclick="zenPage.ExitForm();"/> </hgroup> <text label="ID:" id="objid" value="#(%url.ID)#" size="4" hidden="true"/> </page> } /// сохранение записи Method saveItem() [ Language = javascript ] { var menu= zenPage.getComponentById('SelectMenu'); var itemCount=menu.getOptionCount(); var getStringItem = new Array(); for (i=0;i<itemCount;i++) { getStringItem[i]=menu.getOptionValue(i)+'^'+menu.getOptionText(i); } this.savePermissionGroup(getStringItem); } Method savePermissionGroup(listItem As %ListOfDataTypes) [ ZenMethod ] { s cl=##class(DATA.SHARED.GroupUserSys).%OpenId(..objID) s name=cl.Name d cl.SelectMenu.Clear() s res="" if (listItem'="") { for i=1:1:listItem.Count() { s clItem=##class(DATA.SHARED.ParamSaveGroup).%New() s clItem.value=$p(listItem.GetAt(i),"^",1) s clItem.text=$p(listItem.GetAt(i),"^",2) d cl.SelectMenu.Insert(clItem) s res=res_clItem.value_":U," } } s res=$e(res,1,$l(res)-1) d cl.%Save() j CreateRoles^sysWork(name,name,res) &js<alert('Ресурси записані!');> } Method loadPermissionGroup() [ ZenMethod ] { //открываем класс где определены доступные пункты меню для группы s cl=##class(DATA.SHARED.GroupUserSys).%OpenId(..objID) //создаем стартовый список пунктов меню s clDostMenu=##class(%ListOfDataTypes).%New() Set rset = ##class(%ResultSet).%New("DATA.SHARED.ResSys:ByName") Do rset.Execute() //заполняем созданый список ресурсов While (rset.Next()) { set option=rset.Data("Name")_"^"_rset.Data("Opisanie") d clDostMenu.Insert(option) } //очищаем списоки &js<var compSelect = zenPage.getComponentById('SelectMenu'); var compDost = zenPage.getComponentById('DostMenu'); if (compSelect){compSelect.resetOptions()}; if (compDost){compDost.resetOptions()};> Set tComp = %page.%GetComponentById("SelectMenu") If $IsObject(tComp) { for i=1:1:cl.SelectMenu.Count() { s clItem=##class(DATA.SHARED.ParamSaveGroup).%New() s clItem=cl.SelectMenu.GetAt(i) // заполняем список выбранных пунктов меню &js< var comp = zenPage.getComponentById('SelectMenu'); if (comp) { comp.appendOption('#(clItem.value)#','#(clItem.text)#'); } > //убираем из списка доступных пунктов меню выбранные for j=1:1:clDostMenu.Count() { s iDelete=clDostMenu.Find(clItem.value_"^"_clItem.text) d clDostMenu.RemoveAt(iDelete) } } } //заполняем список доступных пунктов меню for j=1:1:clDostMenu.Count() { s clDostItem=clDostMenu.GetAt(j) s value=$p(clDostItem,"^",1) s text=$p(clDostItem,"^",2) &js< var comp = zenPage.getComponentById('DostMenu'); if (comp) { comp.appendOption('#(value)#','#(text)#'); } > } } /// закрываем окно Method ExitForm() [ ZenMethod ] { &js<self.close();> } Method afterDrag(listBox, dragData) [ Language = javascript ] { if (dragData.targetComponent.isOfType('listBox')) { // ignore drag onto ourselves if (dragData.targetComponent != listBox) { if (dragData.sourceItem >= 0) { listBox.removeOption(dragData.sourceItem); } } } } /// This client event, if present, is fired when the page is loaded. Method onloadHandler() [ Language = javascript ] { this.loadPermissionGroup(); } } Создание нового пользователя Class WEBFORM.frmCardRegUser Extends WEBFORM.Template.TemplateCard { /// Имя приложения, которому принадлежит эта страница. Parameter APPLICATION = "WEBFORM.Application"; /// Отображаемое имя для нового приложения. Parameter PAGENAME; /// Домен, используемый для локализации. Parameter DOMAIN; Property objID As %ZEN.Datatype.integer(ZENURL = "ID") [ InitialExpression = 1 ]; Property paramSave As %Integer [ InitialExpression = 0 ]; /// Этот блок Style содержит определение CSS стиля страницы. XData Style { <style type="text/css"> </style> } /// Этот XML блок описывает содержимое этой страницы. XData mainPane [ XMLNamespace = "http://www.intersystems.com/zen" ] { <pane xmlns="http://www.intersystems.com/zen" title=""> <dataController id="sourceUsers" modelClass="WEBFORM.DataModel.Users" modelId="#(%url.ID)#"/> <fieldSet label="Реєстраційна картка користувача" labelStyle="font-size: 1.5em; text-align: center;"> <vgroup id="groupRight" width="100%" valign="top"> <spacer height="10"/> <html id="error" align="center" enclosingStyle="color:red;"></html> <form id="formBasic" align="center" width="500px"> <group align="center"> <spacer height="40"/> <dataCombo label="Фізична особа" id="idSurname" name="idSurname" size="40" dropdownWidth="400" editable="true" searchKeyLen="20" comboType="button" buttonCaption="Пошук" buttonTitle="Пошук за прізвищем" sql="SELECT %ID,Man_Surname,Man_Surname _' '_ Man_Name _' '_ Man_Patronymic, Man_BirthDay FROM DATA_HUMAN.People WHERE Man_Surname %STARTSWITH ? ORDER BY Man_Surname" sqlLookup="SELECT Man_Surname,Man_Surname _' '_ Man_Name _' '_ Man_Patronymic, Man_BirthDay FROM DATA_HUMAN.People WHERE %ID=? ORDER BY Man_Surname" unrestricted="true" columnHeaders="Прізвище ім'я та по батькові, День народження" displayColumns="3,4" choiceColumn="2" valueColumn="1" maxRows="100" required="false" onchange="zenPage.changeEnterprise();" /> <spacer height="10"/> <dataCombo id="idGruppa" size="30" comboType="button" buttonCaption="Група ресурсів" label="Групи системних ресурсів" name="idGruppa" editable="true" choiceColumn="2" valueColumn="1" displayColumns="2" dropdownWidth="25.0em" dropdownHeight="auto" searchKeyLen="5" sql="SELECT %ID,Name FROM DATA_SHARED.GroupUserSys ORDER BY Name" sqlLookup="SELECT Name FROM DATA_SHARED.GroupUserSys WHERE %ID = ? ORDER BY Name" columnHeaders="Групи системних ресурсів" cached="true" required="false" unrestricted="true" /> <text label="Логін:" id="Login" name="Login" size="40" required="true"/> <password label="Пароль:" id="Password1" name="Password1" size="40" required="true"/> <password label="ще раз:" id="Password2" name="Password2" size="40" required= "true"/> <checkbox id="manager" label="Дозволено добавляти нових користувачів, та редагувати права доступу існуючих" /> <checkbox id="ShowAllRecord" label="Дозволено перегляд усіх записів" /> </group> </form> </vgroup> </fieldSet> <spacer height="40"/> <hgroup align="right"> <button align="right" caption="Реєстрація" onclick="zenPage.Registration();"/> <spacer width="40"/> <button align="right" caption="Вихід" onclick="zenPage.ExitForm();"/> </hgroup> </pane> } Method changeEnterprise() [ Language = javascript ] { var checkUser=zenPage.getComponentById('idSurname'); var id=checkUser.getProperty('value'); var countWorkPlace=this.systemIStartSetup(id); if (countWorkPlace==0) alert('Увага! Для даної фізичної особи необхідно додати місце роботи!'); } Method systemIStartSetup(id) As %Integer [ ZenMethod ] { s recordCount=0 set rs=##class(%ResultSet).%New() set rs.ClassName="DATA.PERSONNELDEPARTMEN.Workplace" set rs.QueryName="GetWorkplaceByPeopleID" set sc=rs.Execute(id) If $$$ISOK(sc) { while rs.%Next() { s ..paramSave=1 s recordCount=recordCount+1 } } q recordCount } Method ExitForm() [ ZenMethod ] { ///закрываем окно &js<self.close();> } /// Регистрация Method Registration() [ ZenMethod ] { if ..paramSave=0 { &js<alert('Увага! Для даної фізичної особи необхідно додати місце роботи!');> q } if ($ROLES["%All")||($ROLES["%Manager") { if (..objID="") { set user=##class(DATA.SYSTEM.USERS).%New() } else { set user=##class(DATA.SYSTEM.USERS).%OpenId(..objID) } set p1 = ..%GetValueById("Password1") set p2 = ..%GetValueById("Password2") if p1'=p2 { &js<zenPage.getComponentById('error').setContent("Ви ввели два різних пароля!");> quit } #; проверка на наличие пустых полей if '(..CheckValue()){ &js<zenPage.getComponentById('error').setContent("Заповніть всі поля!");> quit } set oldLogin=user.Login set login = ..%GetValueById("Login") ;s ^a(1)=oldLogin_","_login_","_(oldLogin '= login) #; если введенный Login существует – ошибка if (..objID="") { set pId = ##class(DATA.SYSTEM.USERS).FindPersonal(login) if (pId '= "") { &js<zenPage.getComponentById('error').setContent("Користувач с таким логіном уже існує! Введіть інший.");> quit } } if oldLogin'="",oldLogin'=login { &js<zenPage.getComponentById('error').setContent("Заборонено редагувати логін в цьому режимі! Потрібно вилучити користувача.");> Do %page.%SetValueById("Login",user.Login) quit } #; новый класс DATA.SYSTEM.USERS //Set text=$ZCONVERT(p1,"O","UTF8") //Set pasw=$SYSTEM.Encryption.Base64Encode(text) //set user.Password=pasw Set text=$ZCONVERT(p1,"O","UTF8") Set pasw=$SYSTEM.Encryption.Base64Encode(text) set user.Password=pasw set user.Login = login //set user.Password = p1 d user.PeopleSetObjectId(..%GetValueById("idSurname")) d user.GrNameSetObjectId(..%GetValueById("idGruppa")) //пользователю добавляется роль %Manager для возможности управления пользователями в системе s user.ManagerSys=..%GetValueById("manager") s user.ShowAllRecord=..%GetValueById("ShowAllRecord") d user.%Save() &js<var formB = zenPage.getComponentById('formBasic'); var error = zenPage.getComponentById('error'); error.setProperty('enclosingStyle',"color:green;") error.setContent("Реєстрація завершена успішно!"); > //добавляем данного пользователя в пользователи Cache' j NewUser^sysWork(oldLogin,login,p1,..%GetValueById("idSurname"),..%GetValueById("idGruppa"),..%GetValueById("manager")) } else { &js<alert("У вас недостатньо превілегій для даної операції. Зверніться до 'Адміністратора системи'");> } quit } /// Проверка всех полей ввода Method CheckValue() As %ZEN.Datatype.boolean [ ZenMethod ] { set p1 = ..%GetValueById("Password1") set login = ..%GetValueById("Login") set surname = ..%GetValueById("idSurname") set priorit = ..%GetValueById("idGruppa") if (login="")||(surname="")||(p1="")||(priorit="") { quit 0 } quit 1 } ClassMethod LoadUser(pForm As %ZEN.Component.form, pID As %ZEN.Datatype.string) [ ZenMethod ] { set user=##class(DATA.SYSTEM.USERS).%OpenId(pID) if user'="" { Do %page.%SetValueById("Login",user.Login) set ent = user.People if ent'="" {Do %page.%SetValueById("idSurname",ent.%Id())} set ent = user.GrName if ent'="" {Do %page.%SetValueById("idGruppa",ent.%Id())} Do %page.%SetValueById("manager",user.ManagerSys) Do %page.%SetValueById("ShowAllRecord",user.ShowAllRecord) } } Method %OnAfterCreatePage() As %Status { If (..objID '= "") { #; load contents of given object into form Set tForm = ..%GetComponentById("formBasic") Do ..LoadUser(tForm,..objID) } Quit $$$OK } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 11:29 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Руководство по администрированию Caché версий 5.2, 2008, 2009, 2010 (стр. 137) Уголок разработчика . Есть описание того, как можно интегрировать эту страницу в стандартную документацию Caché. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 11:34 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
в общем ситуация такая: при формировании страницы на стороне сервера происходит сбор всех компонентов и т.д. метод %DrawHTML по моему, в каждом компоненете при его формировании есть метод проверки разрешения его отображения на странице (это и есть resourse). Если пользователь имеет в своем списке ресурсов такое название ресурса с признаком использования, то компонет отображается, иначе нет. Соответственно: если на странице происходит обращение к компоненту, не важно из COS или JS, рекомендуется во избежании выскакивания ошибки, проверять наличие компонента. Код: plaintext 1. 2. Код: plaintext 1. 2. Ресурсы назначаются как пользователям так и ролям, роли соответственно потом назначаются пользователям. Все действия по назначению и т.д. можно делать в портале, а можно использовать свои штучки дрючки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 12:53 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
servit Руководство по администрированию Caché версий 5.2, 2008, 2009, 2010 За это отдельное спасибо! Начинаю читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 13:01 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
YuraM, подскажите, а как вы SQL-таблицы раздаете пользователям?, точнее ролям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 13:20 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Что-то сразу много информации... А если т.с. "по шагам"? Вот есть ЗЕН-страничка... Код: plaintext 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. Что теперь нужно сделать для того, чтобы кнопка показывалась "не всем"? Т.е. что делать: 1. ? 2. ? 3. ? ...? ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 13:40 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsa, 1. Сделать кнопку ресурсом (указать resource в теге кнопки) 2. Описать этот ресурс в системе (не оставив общедоступного права: Общедоступное право: галку "Чтение " убрать) 3. Создать нужную роль и добавить ресурс в роль 4. Добавить пользователю роль. Разлогиниться и залогиниться - кнопки не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 14:32 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
сорри - кнопка как-раз будет ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 14:33 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
kolesov1. Сделать кнопку ресурсом (указать resource в теге кнопки) Т.е. так? Код: plaintext kolesov2. Описать этот ресурс в системе (не оставив общедоступного права: Общедоступное право: галку "Чтение " убрать) Вот он kolesov3. Создать нужную роль и добавить ресурс в роль Вот она kolesov4. Добавить пользователю роль. Вот он kolesovРазлогиниться и залогиниться - кнопки не будет. А это как? При старте странички у меня логин, пароль не запрашиваются... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 14:58 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
kolesovсорри - кнопка как-раз будет ;) А на чем тогда тренироваться? Как тогда кнопками управлять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 14:59 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Что интересно... У ресурса убраны все галки... А если его дать роли - все галки включены. Если там их все убрать - кнопка "Сохранить" не активна... Это так нужно? ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 15:06 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
для кнопки достаточно только "U" - использовать теперь зайди в [Домашняя страница] > [Управление безопасностью] > [CSP приложения] найди свое приложение, редактирование, убрать галку с "Не аутентифицированный" поставить галку "пароль" закрыть браузер и открыть ту страницу из студии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 15:17 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Ymka2007для кнопки достаточно только "U" - использовать Написал везде U... Ymka2007теперь зайди в [Домашняя страница] > [Управление безопасностью] > [CSP приложения] найди свое приложение, редактирование, убрать галку с "Не аутентифицированный" поставить галку "пароль" Вот так написал... Даже ресурс указал! Надо или нет? Ymka2007закрыть браузер и открыть ту страницу из студии Что-то не спрашивает... У меня ведь ЗЕН-страница или это не важно? УРЛ во такой использую http://cache/uchet/uch.ZEN.tmp.cls ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 15:29 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Через некоторое время таки пароль спросила... Но потом выдала ошибку Код: plaintext Причем в юникоде. И никакой пользовательской страницы у меня не объявлено... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 15:34 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Как теперь посмотреть чего не так? ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 15:39 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Отменяю "Пароль", ставлю "Не аутентифицированный" моя кнопочка рисуется без проблем... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 15:49 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Что тут может быть не так? Код: plaintext 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. ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 15:50 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
все так если у твоего пользователя нет ресурса test, то у него на странице и не будет этой кнопки поставь ресурс на страницу сразу все понятно будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:09 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsa, только этой роли недостаточно... нужно еще добавить роли типа "пользователь системы", "смотрельщик ЦСП", "читатель БД" и проч - тут простор для фантазии Можно за счет нескольких ролей, можно просто все нужные ресурсы запихнуть в ту роль... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:10 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsa, В т.ч. нужны ресурсы типа %DB_%DEFAULT (или %DB_ВашаБД) Кроме того, нужно проверить, что на гейтвее настроен и работает доступ к ЦСП (нажмите "проверить соединение с сервером" - м.б. вы в процессе убили неавторизованный доступ к ЦСП-сервису) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:15 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
kolesovтолько этой роли недостаточно... нужно еще добавить роли типа "пользователь системы", "смотрельщик ЦСП", "читатель БД" и проч - тут простор для фантазии У меня как раз с фантазией-то и туго. Мне бы рассказали точно чего еще добавить и куда дабы заработало... kolesovМожно за счет нескольких ролей, можно просто все нужные ресурсы запихнуть в ту роль... Я же пока вообще не вкурсе чего и как... Пока все на ощупь... Упёрся вот в ошибку... Чего еще и куда добавлять не знаю... Может возьмёт кто не умелго по потронаж? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:16 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsa, добавление ресурса %DB_%DEFAULT в роль не помогло? добавьте ВСЕ СУЩЕСТВУЮЩИЕ РЕСУРСЫ в роль - посмотрите, что выйдет ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:18 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
kolesovВ т.ч. нужны ресурсы типа %DB_%DEFAULT (или %DB_ВашаБД) Добавил в роль ресурс %DB_%DEFAULT - получил вот такую ошибку... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. %DB_ВашаБД еще нет... Не создавал никогда... kolesovКроме того, нужно проверить, что на гейтвее настроен и работает доступ к ЦСП (нажмите "проверить соединение с сервером" - м.б. вы в процессе убили неавторизованный доступ к ЦСП-сервису) А это как и где? Такое ренее вообще не настраивал и не проверял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:20 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=36469991&tid=1558175]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 376ms |

| 0 / 0 |
