Avatar billede leif Seniormester
22. december 2005 - 16:01 Der er 33 kommentarer og
1 løsning

Beskytte Form og View

Hej,

Er ved at lege lidt med en Notes Database til forskellige ting.

Kan man beskytte henholdsvis et View og en Form evt. et felt, således at kun enkelte personer kan se hvad der står ?

På forhånd tak.

/Leif
Avatar billede jogii Nybegynder
22. december 2005 - 16:11 #1
View: Mens du designer et view, kan du i oversigtens Properties på sidste faneblad angive, hvem der må se den pågældende oversigt. Husk at inkludere dig selv eller "din gruppe".

Dokumenter: Ved at tilføje "Reader"-felter kan du styre hvem der kan se dokumenterne.

Felter: Hvis du vil beskytte visse felter på dokumeterne må du anvende kryptering på de enkelte felter.
Avatar billede cdelicht Nybegynder
22. december 2005 - 19:50 #2
Husk: udelukkelse fra et view er IKKE ens betydende med, at man ikke kan se data! De samme dokumenter kan f.eks. være tilgængelige i et andet view.
Avatar billede jogii Nybegynder
22. december 2005 - 21:15 #3
... samt brugerne kan ofte lave private oversigter, om ikke andet så ved at tage en kopi af databasen. Readernames og kryptering er mere sikre metoder.
Avatar billede yeager Nybegynder
23. december 2005 - 08:38 #4
...er lige med på en "lytter".
Har I nogle gode steder på nettet hvor man kan læse mere om kryptering af felter.
Go'Jul!
MvHans
Avatar billede leif Seniormester
23. december 2005 - 08:43 #5
Kryptering af felter var faktisk ikke svært i sig selv.

Hvad ville i gøre ? Kryptere felterne eller beskytte formen med Readers ?
Avatar billede cdelicht Nybegynder
23. december 2005 - 08:49 #6
Bemærk: der er MEGET stor forskel på 1) at kryptere felter og 2) at sætte readers felt på en form!
1) anvendes oftest når enkelte oplysninger er hemmelige, f.eks. løn oplysninger, mens resten af person oplysningerne er åbne for alle. Kræver bl.a. at der genereres en nøgle for de som må se de krypterede oplysninger
2) kan anvendes som ovenstående, men oftes lader man en "bagdør" stå åben for Administratorer, der altid indgår i feltet. Readers kan med fordel anvendes til at udelukke en række dokumenter fra generelle oversigter (du kan se dine, jeg kan se mine - samme oversigt). Readers felter kan have BETYDELIG performance impact!
Avatar billede leif Seniormester
23. december 2005 - 09:15 #7
1) Kan jeg sagtens få til at virke
2) Jeg har indsat et felt af typen Readers, men alle kan alligevel se dokumenterne !
Avatar billede cdelicht Nybegynder
23. december 2005 - 09:35 #8
et tomt Reader felt = intet Readers felt ;-)
Avatar billede leif Seniormester
23. december 2005 - 10:10 #9
Jeg fik vist ikke skrevet at jeg har også indtastet en person i feltet efter korrekt Notes metode dvs. Navn Efternavn/OU/Dom
Avatar billede leif Seniormester
23. december 2005 - 11:14 #10
Okay ! Jeg vælger krypteringen i første omgang !
Avatar billede leif Seniormester
23. december 2005 - 11:14 #11
Side spm. ? Kan man lave et felt unikt ? Dvs. at jeg fx. ikke kan oprette 2 dokumenter med samme telefonnummer ?
Avatar billede jogii Nybegynder
23. december 2005 - 14:58 #12
Hvis du ud over reader felter har author felter, som evt. giver adgang til et dokument, så har det forrang. Dvs at hvis du giver en bruger lov til at redigere et dokument så har pågældende automatisk læserettigheder. Men så snart der findes Reader-felter på dokumentet, så er det summen af navne i alle Author- og Reader-felter der udgør læseskaren.

Sidespørgsmålet: Nej, det er umuligt i Notes. Jeg mener virkelig 100% umulig, hvis det gælder om at garantere at det ikke kan lade sig gøre. Men man kan altid programmere sig til en kontrolfunktion. Bør man måske gøre, jeg mener dog at det for det meste er overflødig. Telefonnumre (og alle andre former for "unikke" værdier kan altid staves forkert, så funktionen er blot vejledende, men ingen garanti).
Avatar billede jogii Nybegynder
23. december 2005 - 14:58 #13
Hvis du er interesseret i løsninger til dit sidespørgsmål kan du jo altid oprette et rigtigt spørgsmål :-)

Glædelig Jul til allesammen
Avatar billede leif Seniormester
23. december 2005 - 15:07 #14
Underligt ! Jeg har nemlig kun readers på men ingen authors. Men alligevel har alle lov.
Avatar billede jogii Nybegynder
23. december 2005 - 15:16 #15
Hov, du har sikkert tilføjet feltet senere på formularen, men de gamle dokumenter har jo ikke "feltet" på sig endnu. Du skal rette i et dokument (fysisk <Ctrl E><Ctrl S><ESC>) eller via en agent (skal vistnok være LotusScript som sætter feltet og AUTHOR som felttype) eller køre handlingen "ToolsRefreshSelectedDocuments" (udfører CTRL E S ESC).

Men pas på, du bør tilføje et extra AuthorFelt med en eller anden administrator rolle på , således at du (eller nogen) senere kan få tildelt denne rolle og på denne måde skaffe sig adgang til dokumenterne. Det er det som cdl hentyder til længere opppe.
Avatar billede leif Seniormester
23. december 2005 - 15:19 #16
Det er også på nye dokumenter !
Avatar billede jogii Nybegynder
23. december 2005 - 15:25 #17
Så prøv at se på det felt som du opretter via DocumentProperties. Der skal være et FIELD FLAG på som hedder READER NAMES. Author felter har et READER-AUTHOR NAMES flag.
Avatar billede leif Seniormester
23. december 2005 - 19:07 #18
De er der ! Jeg tester videre efter jul !

vil du have point jogii ?
Avatar billede jogii Nybegynder
27. december 2005 - 17:43 #19
yderst underligt. men hvis du har lyst at sende mig en kopi af databasen så skal jeg nok kunne fortælle dig hvad der er galt.
Avatar billede leif Seniormester
27. december 2005 - 17:48 #20
Jeg tester lige et par ting. Vender lige tilbage !

Jeg har vist din mail adresse liggende, du sendte vist noget om Link Message.
Avatar billede leif Seniormester
27. december 2005 - 18:43 #21
Hmm ! Bare for at være sikker. Hvis en person sætter sig selv som Author på et dokument, så kan jeg stadig rette dokumentet ? Men det er vel så i min egenskab af Manager af databasen ?
Avatar billede leif Seniormester
27. december 2005 - 18:54 #22
Kan det endvidere passe at man ikke kan bruge gruppe navne i felterne ?
Avatar billede jogii Nybegynder
28. december 2005 - 10:32 #23
Gruppenavne er fint, bare basen er på en server.
Har du et felt af typen AuthorNames og f.eks. formlen @Username og du selv opretter et dokument, så vil du have retterettigheder til dokumentet, forudsat at din overordnede adgang er Author eller højere. Hvis du er Reader kan du stadig læse dokumentet, men ikke rette det. Den adgang du får i ACL er den overordnede adgang, mens Reader/Author-felter forfiner den overordnede adgang.

Standardadgang for almindelige brugere til databaser bør være Author. Dette giver dem ret til at rette udpegede dokumenter (dem som indeholder deres Navn, en Gruppe de er medlem af eller en Rolle de har fået tildelt), mens de normalt har læse-adgang til resten af dokumenter, pånær dem som har Reader-felter, hvor deres navn/gruppe/rolle ikke er angivet.

Men undgå grupper i felterne. Arbejd helst med roller istedetfor.
Avatar billede leif Seniormester
28. december 2005 - 12:39 #24
jogii -> Du tabte mig da du begyndte at snakke roller ! Skal jeg starte en ny tråd vedr. Roller ?
Avatar billede jogii Nybegynder
28. december 2005 - 13:01 #25
Nej. Roller defineres i ACL. Roller svarer til "kasketter". De kan anvendes for at "forfine" det overordnede adgangsbegreb.

Forestil dig en personaledatabase. Her ville du normalt give personaleafdelingen adgang til nogle ekstra knapper og evt. redigeringsadgang til lidt flere dokumenter (men måske ikke alle, derfor er deres overordnede adgang stadig forfatter/author)

For at give adgang til knapper og dokumenter tilføjer du gruppen "Lønkontorister" til et Author-felt eller hide-when-fanebladet for knappen.

"Nej" - siger du så, jeres personaleafdelingsguppe hedder ikke Lønkontorister, men "Personaleafdelingen". Forestil dig så at gruppen pga. en fusion med et andet firma ændrer navn til "Personaleafdeling". Prøv at se hvor mange steder du skal rette i koden og i Author-felter for at gruppeændringen træder i kraft.

Hvis nu du som programmør kunne kode op imod en "rolle", f.eks. "Personalemedarbejder" eller "PersonnelAdmin" eller lignende, og ikke behøvede at tage stilling til hvad/hvem der var "PersonaleAdministrator", så ville du kunne kode i fred og ro. Alle steder i Notes hvor du normalt ville henvise til gruppen "PersonaleLønKursusAdmin" så henviser du nu blot til rollen "[PersAdmin]" (navnet på rollen som den er navngivet i ACL, blot med kantede paranteser omkring). Nu vil enhver gruppenavnsændring, tilføjelse af en person eller ekstra gruppe foregå fra en NotesAdministrator i ACL. Ingen kodning nødvendig, ingen omdøbningsagent. Smart ikke?
Avatar billede leif Seniormester
28. december 2005 - 13:42 #26
Ahhh ! Jeg bliver jo snart haj til der her kode.

Hvis jeg gerne vil undgå at fx. personer som ikke er medlem af Rollen [PersonaleAdmin] eller [LønAdmin] kan oprette nye Personaledokumenter kan jeg så nøjes med at tilføje:

@Command([Compose];"";@If(@IsMember("[PersonaleAdmin]";"[LønAdmin]";@UserRoles);"Manager";
"Employee"))
Avatar billede jogii Nybegynder
28. december 2005 - 13:57 #27
Jeg ville hellere lave følgende:

_form := @If( @UserRoles *= "[PersonaleAdmin]" : "[LønAdmin]"; "Manager"; "Employee");
@Command([Compose]; ""; _form)

bemærk at '*=' laver en "permutationssammemligning", dvs. alle elementer til venstre for = bliver sammenlignet med alle elementer til højre for =. Hvis man kun laver en '='-sammenligning så laver man en parvis sammenligning, dvs. [PersonaleAdmin] bliver sammenlignet med med første element til højre og [LønAdmin] bliver sammenlignet med andet element fra højre side. @IsMember laver en permutationssammenligning, men den vil kun være sand hvis begge roller (både [PersonaleAdmin] OG [LønAdmin] er tildelt.

Bemærk at = operatoren er CaseSEnsitive, dvs. at [PersonaleAdmin] er ikke lig [Personaleadmin]
Avatar billede leif Seniormester
28. december 2005 - 14:29 #28
Hvor er det lige jeg skal smide de linier ? Hvis jeg smider dem ind på Hide-When så virker det ikke rigtigt og smider jeg dem ned i Click sker der ikke rigtigt noget.
Avatar billede jogii Nybegynder
28. december 2005 - 14:45 #29
I hidewhen skal der stå følgende:

  !( @UserRoles *= "[PersonaleAdmin]" : "[LønAdmin]" )

så vil paragrafen/elementet være skjult for alle personer der ikke har fået tildelt rollen


Koden i forrige indlæg burde virke i en knap. Men det den gør er følgende: Hvis en bruger med "admin"-rettigheder trykker på knappen, opretter et nyt dokument baseret på formularen "Manager", for alle andre et dokument med formularen "Employee". Jeg ved ikke om det var det du ville?
Avatar billede leif Seniormester
28. december 2005 - 15:04 #30
Det var noget kode jeg havde hugget fra Help i Designer !
_form := @If( @UserRoles *= "[PersonaleAdmin]" : "[LønAdmin]"; "Person"; "");
@Command([Compose]; ""; _form)

Virker fint nu da jeg fandt ud af den så brugte Person som form navn.

Men så kommer den bare op og spørger hvilken Form der skal bruges hvis personen ligger uden for gruppen PersonaleAdmin eller LønAdmin kan det ikke laves om ? Evt. lave et tjeck på formen Person som tjecker det ?
Avatar billede jogii Nybegynder
28. december 2005 - 16:46 #31
Så skal du lave følgende:

_admin := @UserRoles *= "[PersonaleAdmin]" : "[LønAdmin]";
@If(_admin; @Success; @Return(""));
@Command([Compose]; ""; "Person")
Avatar billede leif Seniormester
28. december 2005 - 18:27 #32
Cool ! Tak.

Vil du have lidt flere point ?
Avatar billede jogii Nybegynder
28. december 2005 - 18:29 #33
nej, behold dem bare . Godt nytår
Avatar billede leif Seniormester
28. december 2005 - 18:42 #34
Tak i lige måde !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Cognizant Technology Solutions Denmark ApS

Test Manager

ALD Automotive Danmark A/S

Senior Software Engineer

Netcompany A/S

Software Developer

Netcompany A/S

IT Consultant