Этот баннер — требование Роскомнадзора для исполнения 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 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
kolesovдобавьте ВСЕ СУЩЕСТВУЮЩИЕ РЕСУРСЫ в роль - посмотрите, что выйдет ;) Ща спробану! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:21 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Запихал все - увидал таки страничку родимую!!! ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:25 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsaОшибка: <PROTECT>%Log+1^%ZEN.Utils.1 ^%ISC.ZENLOG,c:\intersystems\cache\mgr\ Как я понимаю, не хватает доступа к базе, куда пишется лог - видать, в CACHESYS (но не уверен) Дайте ресурс %DB_CACHESYS - м.б. и поможет krvsaА это как и где? Такое ренее вообще не настраивал и не проверял... Конфигурация - Управление ЦСП-шлюзом - Проверить соединение с сервером Если в адресе обнаружится порт (типа http:localhost:57772), а в ЦСП ходите без порта (вернее, на 80-й) то нужно порт вытереть из адреса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:30 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsa, Еще забыл сказать - в роль нужно добавить права на таблицы и процедуры (с учетом области) это в роли закладочка такая.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:36 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
kolesovЕще забыл сказать - в роль нужно добавить права на таблицы и процедуры (с учетом области) это в роли закладочка такая.... Закладку видел... Я думал это будет т.с. вторая серия. Видно рано я порадовался... Решил "усложнить" пример! Добавил вторую кнопку с другим ресурсом... Код: 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. 27. 28. 29. 30. Но как бы я не логинился Админом или Юзером - всегда вижу обе кнопки. Где опять у меня что-то не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:41 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsa, Есть класс class %CSP.UI.Portal.ColumnPriv он унаследован от %ZEN.Component.page (более подоробно посмотрите в Class Reference). Применяя данный класс можно управлять доступом как к таблице так и к отдельному столбцу таблицы. Пример вызова. Method rowLincSQLTlb() [ Language = javascript ] { var table = this.getComponentById('table'); var index = table.getProperty('selectedIndex'); if (index == -1) { alert("Виберіть запис та повторіть дію!"); return; } var data = table.getRowData(index); var id = data.ID; var Grantee = data.Name; zenPage.launchPopupWindow( zenLink('%CSP.UI.Portal.ColumnPriv.cls?$ID1='+Grantee+'&NAMESPACE=CIVICRESPONSIBILITY&ObjectType=TABLE&tab=4&IncludeSystem=0'),'', 'status,scrollbars,resizable=no,modal=yes,width=840,height=660'); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:51 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
YuraM , мне бы с кнопочками пока разобраться... С таблицами потом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 16:53 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsa, Выведите имя текущего пользователя и его роли: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 17:28 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Ymka2007, Чуток перепутал с адресатом, кому надо было ответить (написал для krsva). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 17:29 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krsva! Извените не с тем ответом к Вам "влез"... Перепутал....http://www.sql.ru/forum/images/biggrin.gif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 17:30 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
YuraM, ничего страшного, я уже прочел это то понятно что можно использовать, но вопрос как это сделать программным образом??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 17:36 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
этот класс только для столбцов таблиц ('%CSP.UI.Portal.ColumnPriv.cls) а для таблиц? какой krvsa, извини что параллелим, может кому понадобится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 17:45 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Ymka2007, Таким образом добавляю программно addSQLTable() s pNamespace="CIVICRESPONSIBILITY" s pObjName="" s pGrantee="t222" ;роль или пользователь s pObjectType="TABLE" s pSchema="DATA_ACCOUNTING" s pTable="Register" s pColumns="Quantity" s pPrivs=",1,2,3,4" ;1="s",2="i",3="u",4="r" s pGrants="" s pRevoke=0 s pIncludeSystem=0 s tSC = ##class(%CSP.UI.Portal.ColumnPriv).SaveData(pNamespace, pObjName, pGrantee, pObjectType, pSchema, pTable, pColumns, pPrivs, pGrants, pRevoke, pIncludeSystem) q tSC Отдельно для таблицы я не нашел, но можно и через этот класс добавить туже таблицу (конечно надо указывать какие столбцы из таблицы будут добавляться). Надо "порыть" класс %SQL.Manager.API (класс метод SaveData из %CSP.UI.Portal.ColumnPriv использует Set tSC = ##class(%SQL.Manager.API).SaveObjPriv(acts(priv), nType, pObjName, pGrantee, 0, 1, .SQLCODE, .sMsg, GrantedBy, .fields) ) Может через него можно будет добавить только таблицу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 19:19 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Ymka2007, class %SQL.Manager.API extends %RegisteredObject This is a system class that allows control of the Cache SQL environment. Used by SQL Manager. classmethod SaveObjPriv(acts As %String, type As %Integer, objs As %String, users As %String, g, revoke As %Integer, ByRef SQLCODE As %Integer, ByRef %msg As %String, GrantedBy As %String = "", ByRef fields As %String = "") as %Status Parameters: acts - actions to grant. * for all actions a for Alter s for Select i for Insert u for Update d for Delete r for References or any combination type - "1" for table, "3" for view, "9" for procedure objs - name of the table or view users - comma delimited list of users g - 0/1 for WITH GRANT OPTION revoke - 1 if revoke (-1 otherwise) SQLCODE - Passed by reference. Returns SQLCODE contains 0 (success) or number < 0 (error) %msg - Passed by reference. If SQLCODE<0, contains error message. GrantedBy - Who the privilege was granted by. If revoke, revoke from user it was granted by fields - optional, $List of field names to grant or revoke the privs on the objs Т.е. если использовать этот класс-метод то можно сохранить всю таблицу сразу же, а не по колонкам... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 20:43 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Ymka2007, Код SaveData ClassMethod SaveData(pNamespace, pObjName, pGrantee, pObjectType, pSchema, pTable, pColumns = "", pPrivs = "", pGrants = "", pRevoke, pIncludeSystem) As %String [ ZenMethod ] { Set $ZT="Error" Set tResult = "" Do { Set GrantedBy = $Username Set nType = $S(pObjectType="TABLE":1,pObjectType="VIEW":3,1:9) Set currentNamespace = $zu(5) If pNamespace '= "",pNamespace '= currentNamespace ZN pNamespace If pObjName = "" Set pObjName = pSchema _ "." _ pTable #; If it is revoke all, gather all columns now If pRevoke = 1,pColumns = "*" Set pColumns = ..GetColumns(pGrantee, pSchema, pTable, pIncludeSystem) Quit:pColumns="" #; Set columns into $list Set fields = "" For r = 1:1:$L(pColumns,",") Set $li(fields,r) = $P(pColumns,",",r) #; parse out the privileges Set acts(1)="s",acts(2)="i",acts(3)="u",acts(4)="r" Set tRow = 2 Set priv = $P(pPrivs,",",tRow) ;&js<alert("#(pPrivs)#");> ;&js<alert("#(priv)#");> ;q s aa=acts(1) #; for every priv, grant the privilege: While priv '= "" { #; first remove all privileges then save the ones user selected. Set tSC = ##class(%SQL.Manager.API).SaveObjPriv(acts(priv), nType, pObjName, pGrantee, 0, 1, .SQLCODE, .sMsg, GrantedBy, .fields) ;&js<alert("#(SQLCODE)#");> If $$$ISERR(tSC) Set tResult = $ZCVT($System.Status.GetErrorText(tSC),"O","HTML") Quit If SQLCODE '= 0 Set tResult = tResult _ pObjName _ $$$TextHTML("Save failed. Could not remove existing privilege.")_" "_sMsg_"</br>" Quit Set nGrant = pGrants [ priv #;s ^%yan("priv",priv)=acts(priv)_"^"_nType_"^"_pObjName_"^"_pGrantee_"^"_nGrant_"^"_0_"^"_GrantedBy_"^"_fields Set tSC = ##class(%SQL.Manager.API).SaveObjPriv(acts(priv), nType, pObjName, pGrantee, nGrant, 0, .SQLCODE, .sMsg, GrantedBy, .fields) If SQLCODE '= 0 Set tResult = tResult _ pObjName _ $$$TextHTML("Save failed. Please make sure that you have sufficient SQL privilege to perform this operation.")_" "_sMsg_"</br>" Quit Set tRow = tRow + 1 Set priv = $P(pPrivs,",",tRow) } If pRevoke = 1 { Set tSC = ##class(%SQL.Manager.API).SaveObjPriv("*", nType, pObjName, pGrantee, 0, 1, .SQLCODE, .sMsg, GrantedBy, .fields) } If SQLCODE '= 0 { Set tResult = tResult _" ["_SQLCODE_"]"_sMsg_"<br>" } ZN currentNamespace } While 0 Quit tResult Error /// Set $ZT="" Do BACK^%ETN Set tResult = $ZCVT($ZE,"O","HTML") Quit tResult } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 20:45 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
servitВыведите имя текущего пользователя и его роли: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Завтра продолжим, спасибо что помогаете... А то тут без бутылки не разобраться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2010, 21:17 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Добавил что советовали... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Вот что получилось... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 09:47 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Вот описание самой роли... Как видно там есть ресурс UCH_ADM ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 09:54 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsa, Оставьте ресурсы %DB_%DEFAULT %DB_CACHESYS UCH_ADM остальные удалите. И зайдите в систему под пользователем для которого определена роль UCH_R_ADM. В этом случае Вы должны видеть только кнопку UCH_ADM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 10:37 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
YuraMОставьте ресурсы %DB_%DEFAULT %DB_CACHESYS UCH_ADM остальные удалите. Сейчас сделаю... YuraMИ зайдите в систему под пользователем для которого определена роль UCH_R_ADM. В этом случае Вы должны видеть только кнопку UCH_ADM. Таки и так только таким вхожу... Входил и тем для кого другая кнопка доступна... Да только видны всегда пока обе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 11:08 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Изменил роль... Но так все и осталось... Хотя и браузеры закрывал... И логинился всякий раз... Вот описание пользователя. Куда еще смотреть? ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 11:17 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Что интересно... Если например написать вот так Код: plaintext 1. обе кнопки исчезают! ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 11:20 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Или так... Код: plaintext 1. Т.е. они видны если ресурс вообще существует в описании Каше. И не обязательно привязан к пользователю... Я так пока понял. ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 11:23 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsa, Посмотрите профиль пользователя. Какие ресурсы и службы ему доступны. Были случаи(когда при инсталяции Cache' выбирался максимальный уровень безопасности) при добавлении нового пользователя ему присваивался ресурс %All. В списке выбранных ресурсов он отсутсвовал, а в профиле пользователя отображался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 11:43 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsa, Попробуйте убрать и ресурсы %DB_%DEFAULT %DB_CACHESYS Оставьте только свой ресурс. Без ресурсов %DB_%DEFAULT и %DB_CACHESYS должна возникнуть ошибка на странице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 12:05 |
|
||
|
Научите как пользоваться 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. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 12:15 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
для: classmethod SaveObjPriv(acts As %String, type As %Integer, objs As %String, users As %String, g, revoke As %Integer, ByRef SQLCODE As %Integer, ByRef %msg As %String, GrantedBy As %String = "", ByRef fields As %String = "") as %Status ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 12:24 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
в общем разобрался! вот программа: %Z.ex.sqlsec (находится в области %SYS) Код: 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. 27. 28. 29. 30. если программа запускается из области в которой нет такой таблицы, то действие выполняется, только результата нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 12:35 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
YuraMПопробуйте убрать и ресурсы %DB_%DEFAULT %DB_CACHESYS Оставьте только свой ресурс. Без ресурсов %DB_%DEFAULT и %DB_CACHESYS должна возникнуть ошибка на странице. Это я уже пробовал... Если убрать хоть один из них - ошибка на странице... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 12:37 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
YuraMПосмотрите профиль пользователя. Какие ресурсы и службы ему доступны. Там есть оба профиля! И куча еще чего, что я удалил давно. YuraMБыли случаи(когда при инсталяции Cache' выбирался максимальный уровень безопасности) при добавлении нового пользователя ему присваивался ресурс %All. В списке выбранных ресурсов он отсутсвовал, а в профиле пользователя отображался... И как теперь бороться т.с. "за чистоту" профиля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 12:42 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
У нас установка Каше с минимальной безопастностью... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 12:45 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Так как теперь профиль-то почистить? ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 15:21 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Попробовал создать нового пользевателя... Так мои ресурсы ему прописались сразу, как только я его записал. Т.е. даже роль ни какую ему не давал... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 15:27 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
потому что когда создаешь ресурс нужно сразу все галки отключить а включать их уже со страницы пользователя по умолчанию все вкулюченные сразу прописываются новичку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 15:53 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Ymka2007потому что когда создаешь ресурс нужно сразу все галки отключить а включать их уже со страницы пользователя по умолчанию все вкулюченные сразу прописываются новичку Сейчас проведу испытания... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 15:59 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
вот вопрос для передачи используется objs - name of the table or view я так понял это название таблицы или представления, не важно вот FormalSpec: acts:%String,type:%Integer, objs:%String ,users:%String,g,revoke:%Integer,&SQLCODE:%Integer,&%msg:%String,GrantedBy:%String="",&fields:%String="" т.е. при вызове я могу передать в этом параметре стринговую переменную, а дальше, см. код: Код: plaintext 1. 2. 3. 4. 5. 6. как передать в стринговой переменной несколько названий таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 16:03 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsa, проверено электроникой , все ужо запрограммировано в автоматический режим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 16:03 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Заработало! Большее всем спасибо. ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2010, 16:08 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Никак понять не могу. Можно ли использовать resource, если я использую свои таблицы с ролями, разрешениями и пользователями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 07:28 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
cachezenМожно ли использовать resource Для начала нужна "кащейская" регистрация пользователей... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 09:00 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
krvsacachezenМожно ли использовать resource Для начала нужна "кащейская" регистрация пользователей... т.е. возможно ли при авторизации в моем приложении, регистрировать временного пользователя в cache, чтоб управлять содержимым зен страницы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 10:16 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
Не совсем понятно что у вас и как... Но если выполнить "кащейскую" регистрацию - сразу начнет работать ресурс на всх зен-компанентах где оный прописан... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 10:29 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
cachezenНикак понять не могу. Можно ли использовать resource, если я использую свои таблицы с ролями, разрешениями и пользователями? Воспользуйтесь Delegated Authorization и/или Delegated Authentication . Примеры использования безопасности можно найти в Security Tutorial ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 11:19 |
|
||
|
Научите как пользоваться resource...
|
|||
|---|---|---|---|
|
#18+
servitcachezenНикак понять не могу. Можно ли использовать resource, если я использую свои таблицы с ролями, разрешениями и пользователями? Воспользуйтесь Delegated Authorization и/или Delegated Authentication . Примеры использования безопасности можно найти в Security Tutorial спасибо, буду изучать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2010, 11:29 |
|
||
|
|

start [/forum/topic.php?all=1&fid=39&tid=1558175]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
152ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
88ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 496ms |

| 0 / 0 |
