object=Module { ParentID=$868F9EA7 ObjectID=$06CA7A3F Name=Pravice Alias=modAutoLoadRights Comment=Modul s funkcijami za nastavljanje pravic v sistemu. Module=/*##Modul za nastavljanje pravic objektov####Avtor, verzija datum:## Aleš Trtnik, Softdata d.o.o., 1.2, 29.7.03##Opis:## V tem modulu se nahajajo potrebne rutine za nastavljanje pravic objektov. Z## njimi se lahko nastavi pravice za vec objektov hkrati.##Namestitev:## Prenesite datoteko pravice.sif in jo v SDMS uvozite z opcijo Uvoz SIF## datoteke. Modul se bo avtomatsko naložil v aplikacijo.##Uporaba:## Pred uporabo te procedure priporocamo izdelavo varnostne kopije mape 'Objects'## v bazi podatkov, saj se lahko z nepravilno uporabo zaklene vse objekte in jih## ni mogoce vec uporabljati. V aplikaciji pritisnete presledek, da dobite## ukazno okno. V njem napišete ukaz NastaviPravice. Le ta prikaže dialog, kjer## izberemo katere pravice nastavljamo in katerim objektom. Dolocimo skupino## uporabnikov, za posamezno pravico (Pravica urejanja, Pravica vpogleda in## Pravica urejanja podatkov, Pravica vpogleda v podatke če bomo nastavljali## podatkovne plasti). Ce pravice ne želimo spreminjati, ne izberemo nobene## skupine oz. prvo opcijo 'Skupine uporabnikov'. Izberemo še tip objektov, ki## jih bomo spreminjali. V naslednjem dialogu pa izberemo objekte, ki jim bomo## spremenili pravice. Izbrati moramo Mapo in s tem nastavimo pravice vsem## objektom v tej mapi in vseh podmapah.##Možni problemi## Pri nastavljanu pravic zelo starim podatkovnim plastem (So bile nazadnje editirane## pred 98) program javi napako Memory overflow. Rešitev je v optimizaciji podatkovne plasti.##Zgodovina## 29.7.03, 1.2 - Narobe je določal tip objekta, kadar je bil ID večji od $xx800000. To je samo pri podatkovnih plasteh.## 11.2.02, 1.1 - Shranjujejo se nastavitve v dialogu.## 9.10.00, 1.0 - Prva verzija##*/####Sub NastaviPravice## Dim EA, VA, LEA, LVA As TUserGroup,O As TFolder## Dim F As TCustomForm, I, J as Long#### EA = USERGROUPS.Get (GlobalEnvironment.AsLong('PraviceEA'))## VA = USERGROUPS.Get (GlobalEnvironment.AsLong('PraviceVA'))## LEA = USERGROUPS.Get (GlobalEnvironment.AsLong('PraviceLEA'))## LVA = USERGROUPS.Get (GlobalEnvironment.AsLong('PraviceLVA'))## J = GlobalEnvironment.AsLong('PraviceTree')#### F = CreateCustomForm## F.CellWidth = 400## F.CellSplit = 180## F.AddTreeBox ("EA", "Pravica urejanja:", UserGroups)## If Assigned (EA) Then F.TreeValue ("EA") = EA EndIf## F.AddTreeBox ("VA", "Pravica vpogleda:", UserGroups)## If Assigned (VA) Then F.TreeValue ("VA") = VA EndIf## F.AddTreeBox ("LEA", "Pravica urejanja podatkov:", UserGroups)## If Assigned (LEA) Then F.TreeValue ("LEA") = LEA EndIf## F.AddTreeBox ("LVA", "Pravica vpogleda v podatke:", UserGroups)## If Assigned (LVA) Then F.TreeValue ("LVA") = LVA EndIf## F.AddComboBox ("Tr", "Izberi drevo",## "Aplikacija" + Line + "Šrafura" + Line + "Hitre tipke" + Line +## "Podatkovna plast" + Line + "Tip Linije" + Line + "Modul" + Line +## "Meni" + Line + "Predloga izrisa" + Line + "Simbol" + Line +## "Tabela" + Line + "Orodjarna" + Line + "Uporabnik" + Line +## "Skupina uporabnikov" + Line + "Tematika")## F.ListIndex ("tr") = J## If F.Execute Then## EA = F.TreeValue ("EA")## VA = F.TreeValue ("VA")## LEA = F.TreeValue ("LEA")## LVA = F.TreeValue ("LVA")#### J = F.ListIndex ("tr")#### GlobalEnvironment.AsLong('PraviceEA') = EA.ID## GlobalEnvironment.AsLong('PraviceVA') = VA.ID## GlobalEnvironment.AsLong('PraviceLEA') = LEA.ID## GlobalEnvironment.AsLong('PraviceLVA') = LVA.ID## GlobalEnvironment.AsLong('PraviceTree') = J#### Select Case J## Case 0 O = Applications.SelectFolder ("Izberi Vejo")## Case 1 O = HatcheS.SelectFolder ("Izberi Vejo")## Case 2 O = HOTKEYS.SelectFolder ("Izberi Vejo")## Case 3 O = LAYERS.SelectFolder ("Izberi Vejo")## Case 4 O = LINETYPES.SelectFolder ("Izberi Vejo")## Case 5 O = MODULES.SelectFolder ("Izberi Vejo")## Case 6 O = MENUS.SelectFolder ("Izberi Vejo")## Case 7 O = PRINTLAYOUTS.SelectFolder ("Izberi Vejo")## Case 8 O = SYMBOLS.SelectFolder ("Izberi Vejo")## Case 9 O = TABLES.SelectFolder ("Izberi Vejo")## Case 10 O = TOOLBARS.SelectFolder ("Izberi Vejo")## Case 11 O = USERS.SelectFolder ("Izberi Vejo")## Case 12 O = USERGROUPS.SelectFolder ("Izberi Vejo")## Case 13 O = DRAWLISTS.SelectFolder ("Izberi Vejo")## EndSelect#### If Assigned (O) Then## Nastavi (O, EA, VA, LEA, LVA)## EndIf#### EndIf## F.Destroy##EndSub####Sub Nastavi (O As TFolder, EA, VA, LEA, LVA As TUserGroup)## Dim O1 As TFolder, L1 As TLayer## Dim I, J As Long#### For I = 0 To O.ChildrenCount - 1## O1 = O.Childrens (I)## J = Trunc (O1.ID / $1000000)## If J > 0 Then## If Assigned (VA) Then## O1.ViewAccess = VA## EndIf## If Assigned (EA) Then## O1.EditAccess = EA## EndIf## If J = 4 Then## L1 = O1## If Assigned (LVA) Then## L1.DataViewAccess = LVA## EndIf## If Assigned (LEA) Then## L1.DataEditAccess = LEA## EndIf## EndIf## O1.Store## Else## Nastavi (O1, EA, VA, LEA, LVA)## EndIf## Next##EndSub## }