Jan

27

Alle CSS Styles für ein Element per Javascript ermitteln

By Dirk Bergles

...und zwar alle CSS Styles eines Elementes, geerbte, aus den verschiedenen Klassen, etc.
Für die Integration des TinyMCE dauer die Suche nach einem geeigneten Weg den IFrame aus dem Bodyfeld zu "kopieren" noch immer an.
Damit der IFrame genauso aussieht wie das gestaltete BodyFeld müssen letztendlich die Styles des Bodyfeldes irgendwie dem <body>, bzw. dem nachfolgendem Text, des iFrames zugeordnet werden.
Hört sich total einfach an....
Bei der Suche schien sich eine Lösung abzuzeichnen mit der es möglich ist, einfach die gesamten Styles des Bodyfeldes auszulesen und zu kopieren. Es war nicht die Lösung, aber immerhin ist die Technik sehr interessant.

Leider ist sie browserspezifisch

Für Mozilla ist es das magische Objekt document.defaultView.getComputedStyle(), im IE ist es das Objekt currentStyle[]
mehr...

Archiv

TechInfo

Ansicht mit Designelementen in einer Picklist

By Dirk Bergles

Hier nun der praktische Einsatz des Designexperimentes mit Desingelementen in Notesansichten. Wie im CMS Meeting vorgeschlagen, steht nun eine Picklist von Subforms zur Verfügung.
Die beiden Buttons bieten eine Picklist über alle Notessubforms an und fügen sie entsprechend in das Fald CCM_Content_Notes_Subform ein.


Die View der Picklist benötigt das Feld $FormulaClass mit dem Wert "4" und die Selection selektiert ausschließlich Subforms.
"SELECT @Left($Flags;2) = "CU" & !@Contains($Flags;"n")"

Archiv

TechInfo

Auswahllisten jenseits der 32K Grenze

By Dirk Bergles

Tagtäglich erfreuen wir uns ja an der 32K Grenze von Notes. Ein Beispiel dafür sind Auswahllisten, z.B. für Kategorien, welche, auch durchaus berechtigt, gerne mal die 32K Grenze überschreiten und damit nicht mehr funktionieren.
Dafür haben wir nun einen Workaround gefunden, der etwas Linderung schafft.

Es ist die Auswahlmöglichkeit per @Prompt.

Eine @Formel darf intern wesentlich mehr Speicher nutzen als 32K. Sie darf es halt nur nicht in ein Feld oder ComputedValue zurück liefern. Folgendes Beispiel demonstriert die Lösung.
mehr...

Archiv

TechInfo

Berechtigungen bei News, Events und Items

By Dirk Bergles

Grundsätzlich kann im CMS ja die Berechtigung für SLE Dokumente, also News, Items, Events über eine Kategorie eingeschränkt, bzw. Rechte vergeben werden,
Dies gilt sowohl für die Access Rights, also die Autoren Zugriffe, als auch Approval Rights, also ContentMaster Zugriffe..
Nun, im Kundenprojekt, drängten sich zwei Probleme auf.
mehr...

Feb

01

Das ist einfach lächerlich....

By Dirk Bergles

Das kann alles nur ein Scherz sein. Kaum hat man einen Workaround für den IE gefunden kommt er mit der nächsten Hürde.
Hat irgendwer eine Idee was dieser Rahmen bedeutet? Und vor allem wie er wieder verschwindet?

Der Inhalt ist dennoch editierbar, aber das ist einfach kacke. Der Rahmen hat trotz der lustigen Markierungen keinerlei Funktion.
Werden die CSS Files aus dem Dokument nicht übernommen, gibt es auch keinen Rahmen. Also wird die Ursachenforschung dort beginnen.
Soll ich es nochmal erwähnen? Der Firefox läuft wie immer problemlos und fehlerfrei....und ohne Rahmen.

Archiv

TechInfo

Datenquellen mit RichText

By Andreas Löw

Insbesondere für den BLOG werden wir nun die neu gefundene C-Funktion zum Konvertieren von RichText in HTML nutzen um in Datenquellen auch RichText aus RemoteDokumenten auszulesen.
Dazu liegt bereits die Library RTF2HTML im DEV-Template. (Der Name wird auf jeden Fall noch geändert.)

Tests, insbesondere für exotische System, 64bit System und dergleichen stehen noch aus, so dass wir auf jeden Fall einen zentralen Schalter für diese Funktion einbauen werden, der im Zweifelsfall lediglich den Text eines RichText ausliefert um einen Crash des Servers zu verhindern.

Feb

01

Der Bremser IE

By Dirk Bergles

Wieder mal bremst der IE alles aus.
Im WebUI und dem InlineEditing konnten wir eine Lösung finden, wie im Editor das identische Layout angezeigt werden kann.
Es werden einfach alle Parentelement des Body-divs und im HTML Header alle CSS Files in den IFrame kopiert.
Es stand schon im Dezember hier im Blog. Der Inhalt im Body Bereich konnte problemlos kopiert werden.
Dann war der Header dran. Einfach alle <link ...> von einem Dokument ins andere kopieren.
mehr...

Archiv

TechInfo

Designelemente in Notesansichten und Imageresource

By Dirk Bergles

Auf dem letzten CMS Meeting wurde es ja schon vorgestellt. Es gibt eine einfache Möglichkeit auch Designelemente in Notesansichten darzustellen.
Das eröffnet einige Möglichkeiten, z.B. die Picklist auf Subforms. Es kann natürlich auch Gefahren mit sich bringen, wenn auf diesem Wege z.B. Designelemente gelöscht werden können, etc.
Recht spannend ist immer noch die Möglichkeiten Imageresourcen mehr zu nutzen.
Es wurde ja von einer Ansicht berichtet die die Imageresourcen als Bilder darstellen kann.

Kein Problem:

mehr...

Archiv

TechInfo

Dokument Löschen ohne Löschrechte

By Dirk Bergles

Zum wiederholten mal kam es nun vor das Prozesse scheiterten, weil User kein Recht haben Dokumente zu löschen. Für Autoren eine durchaus legitime Einstellung in der ACL.
Zuletzt in einem Kundenprojekt beim Tagging, wo einfach TagRelation nicht wieder entfernt werden konnten, weil der User kein Recht zum Löschen von Dokumenten hatte. Gleiches passiert auch im WebUI mit den Temp Dokumenten für FileUploads.
Um nun den ganzen Aufwand mit Löschflag, zeitgesteuertem Löschen durch einen Agenten, u.s.w zu vermeiden, gibt es nun ein Funktion zum Löschen von Dokumenten.

Die geht letztendlich hin, prüft in der ACL ob der User löschen darf, wenn ja, Dokument auf herkömmlichen Weg löschen, wenn nein wird ein Agent gestartet, gesigned mit ausreichenden Rechten, welcher dann das Dokument entfernt.

Ganz wichtig. Niemals vergessen vor dem Löschen zu prüfen ob der User das darf.

In der SWM_Error gibt es nun die Funktion
Sub removeDocument(doc as NotesDocument)
Welche nun entweder herkömmlich sas Dokument mit doc.remove(true) löscht, oder aber den Agenten "SWM_RemoveDocument" startet, welcher mit der UniversalID das Dokument sucht und dann entfernt.
Der Agent wird in der parentDatabase des doc gesucht. Wenn also die Dokumente nicht im CMS liegen, so muß auch der Agent in der anderen Datenbank liegen.

Die Änderung gibt es ab 7.70 0, kann aber leicht integriert werden.
mehr...

Archiv

TechInfo

Fehler in DQ mit Kategorien zum Aufklappen

By Dirk Bergles

Eigentlich sollte der Fehler, daß Kategorien mit einem \ nicht korrekt in einen Link eingebaut werden, bereits seit 7.60 2 behoben sein.
Hier ist der Blogbeitrag dazu.

Aber irgendwie scheint der Bugfix nicht vollständig in die 6.20 eingeflosssen zu sein.
Es fehlen gleich an mehreren Stellen Änderungen in Scriptlibraries.

Der Weg die Änderung rückgängig zu machen und damit den Fehler, der durch die Fehlerbehebung erst entstanden ist, wieder zu beheben ist recht einfach.

In der Script-Library "XTT_BuildPageHandler" finden sich folgende Zeilen (588):
' $CATEGORYEXPANDLINK and $CATEGORYCOLLAPSELINK
' DBE 18.01.2009 Bugfix #2377
expandLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.catPath)
collapseLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.parentCatUnEsc)
' expandLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.catPathEsc)
' collapseLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.parentCat)

Sinngemäß müßte daraus gemacht werden
' $CATEGORYEXPANDLINK and $CATEGORYCOLLAPSELINK
' DBE 18.01.2009 Bugfix #2377
' DBE 03.04.2009 remove the changes, because the bugfix was not fully implemented (some methods in SWM_Error and changes in XTT_DataSourceEntries are lost)
' expandLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.catPath)
' collapseLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.parentCatUnEsc)
expandLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.catPathEsc)
collapseLink = urlPar.getLinkReplaceParam(paramCategory,dsEntry.parentCat)

Dadurch werden die Expand. und Collapselinks wieder mit dem \\, bzw. %5c ersetzt.
In der 7.60 4 ist diese Änderung drin. Davor müßte sie kundenspezifisch eingebaut werden. Im timetoweb.de ist es ebenfalls eingebaut, weil es mit dem nächsten Update sowieso reinkommt.
Ab 7.70 0 ist der Bugfix komplett und dort funktioniert die Fehlerbehebung.

Archiv

TechInfo

Fehler in RTags Variant does not contain a container

By Dirk Bergles

Eine kleine Hilfe bei der Fehlersuche.

Ein Fehler wie dieser:
XTT_DataSourceEntry/ADDREPLACERNODE, called by: ADDREPLACERNODELIST Error in line 2578: Variant does not contain a container :: ADDREPLACERDOCDATALIST():2545 (184)
deutet in aller Regel einfach auf eine fehlerhafte Formel hin.
Die Ursache ist recht simpel.
Eine Formel, mit Evaluate ausgeführt, liefert immer ein Array zurück. Es sei denn sie führt zu einem Fehler. Dann liefert sie kein Array zurück und der Versuch mit trans(0) auf das 1. Element des Arrays zuzugreifen führt zum Fehler "Variant does not contain a container".

Eventuell wierden hier mal eine geeignetere Fehlermeldung eingesetzt und ein eigener Fehler geworfen.

Archiv

TechInfo

getDocumentByUnid - Invalid universal id

By Dirk Bergles


Es kommt hier und da im CMS zu einem Fehler. "Invalid universal id (4091)".
Es ist leider ein normales Verhalten der Methode getDocumentByUNID der Klasse NotesDatabase, sobald er das entsprechende Dokument nicht finden kann.
Bei Datenquellen werden so Dokumente aus der Datenbank geladen.
Daher gibt es nun in der SWM_Error eine einfache Funktion die diesen Fehler einfach ignoriert und Nothing zurück liefert im Fehlerfall.

Function getDocumentByUNID(db As NotesDatabase, unid As String) As NotesDocument
Set getDocumentByUNID = Nothing
On Error Goto ignoreError
Set getDocumentByUNID = db.GetDocumentByUNID(unid)
ignoreError:
Exit Function
End Function

Dez

22

HTML Editor tiny MCE

By Dirk Bergles

Alles deutet darauf hin das wir uns für den Tiny MCE als HTML Editor entscheiden werden.
Er deckt 90% des gefordeten Funktionsumfanges ab. Darüber hinaus ist er ein Open Source Produkt und gut dokumentiert.
Die beiden einzigen Anforderungen die er nicht abdeckt lassen sich nach den ersten Experimenten vermutlich recht leicht integrieren.
Das wäre zum einen eine Toolbar die fest am oberen Bildschirmrand plaziert werden kann und zum zweiten sollte die Größe des Eingabefeldes (also der IFrame) mitwachsen.

Hier ist die Doku des TinyMCEs zu finden.
http://wiki.moxiecode.com/index.php/TinyMCE:Index
Er ist bereits in der DEV-DB voll integriert. Also die Quellen stehen als Resourcen zur Verfügung.

In den nächsten Tagen sollte das Experiment irgendwann Vorzeigestatus erreichen.

Archiv

TechInfo

Klasse Fehler in den Datenquellen

By Dirk Bergles

Es gibt einfach Fehler mit Stil, die "Spass" machen.

Es begann mit einem Fehlverhalten von Datenquellen, sobald diese auf Kategorien mit ( ) trafen.

Diese Klammern wurden HTML safe codiert, da sie als Parameter übergeben werden.
z.B. die Kategorie DE\Allgemein (Test) endet als Parameter r0=DE%5CAllgemein%20&#40Test&#41
Weil irgendwann mal irgendwer das CrossSiteScripting bis aufs Messer verfolgt und ausgebrannt hat. So wurden dann rigeros einfach alle Parameter "sicher" gemacht, damit sie, sofern im HTML landen, keinen Unfug anrichten können.
Nun wird diese Kategorie dummerweise auch intern benutz, zum Vergleich und zur Suche von Kategorien. Der Wert wird zwar URLDecodiert, aber nicht HTML unsicher gemacht, damit verbleiben die bösen Klammern als Codes im String und jeglicher Vergleich schlägt fehl.
Dies ist nun geändert, so daß die Kategorie nicht mehr als HTML safe ausgelesen wird. Sollte sie nun irgendwo im HTML Code enden; das kann leicht per RTags geschehen, dann muß einfach der schlaue WebMaster oder Entwickler daran denken.
Geändert wurde der Aufruf zum Auslesen der Kategorie. Bisher über getParam() der URL Klasse. Nun einfach getParamUnsafe()

Das war dann aber noch nicht alles...
mehr...

Archiv

TechInfo

Neue berechnete Subform in der Hauptmaske

By Dirk Bergles

Nach reichlicher Überlegung werden wir wohl eine weitere berechnete Subform auf die Hauptmaske, also XTT_Notes_Content, bringen.
Neben der Subform für den ContentBereich und einer CustomSubform, besteht im konkreten Fall bei Cola die Notwendigkeit eine weitere Subform an prominenter Stelle oberhalb des Contents zu plazieren.
Lösbar wäre all dies mit den existierenden Möglichkeiten und verschachtelten Subform.
Aber erstens wäre dies sehr fehleranfällig bei der Planung und Gestaltung der Subforms und zweitens hat die Vergangenheit gezeigt, dass verschachtelte Subforms einfach Probleme bringen.

Folgende Lösung ist angedacht. Um es einfach zu halten, den Recompile in der Kundendatenbank zu vermeiden und nur wenig Erweiterungen einbauen zu müssen.
Das Feld für die zusätzliche ContentSubform im Template beschreibt auch die neue ControlSubform.

Getrennt mit einer | wird hinter der Custom Subform die neue Subform eingetragen. Keine Pipe, keine neue Subform, Leer vor der Pipe, keine CustomSubform, aber eine ControlSubform.
Dadurch kann die gesamte Erweiterung quasi ausschließlich in der Maske XTT_Notes_Content beschränkt werden.

Die Subform wird berechnet mit

Die bestehenden Subforms werden erweitert um:

Fertig !

Die Änderung sollte dann auch bald in den Standard gelangen.

Kommentare erwünscht....

Archiv

TechInfo

New Feature in 7.70 0 Einstellbarer DocType

By Dirk Bergles

Der DocType einer HTMLSeite (die erste Zeile) kann nun flexibel in jedem Template eingestellt werden. Es bestand bisher die Möglichkeit ihn global für alle Seiten in der LayoutDefinition einzutragen. Nun kann er im Template eingetragen werden.
Der Inhalt der entsprechenden Felder werden 1:1 an den Browser weitergegeben.
Also der Inhalt des DocType Definition wird einfach vor das <HTML> gesetzt.

Archiv

TechInfo

Probleme mit WebDAV

By Dirk Bergles

Da man es so selten nutzt, kann der, auf einmal so dringende, Einsatz von WebDAV (Web-based Distributed Authoring and Versioning) auch mal gründlich in die Hose gehen.
So kann es trotz korrekter Einstellung und allen richtigen ACL Einträgen passieren, das keine Dateien kopiert oder angelegt werden dürfen. Ordner dagegenm schon.
Die Fehlermeldung kommt vom Explorer.

Sie ist sowohl nervig als auch wenig hilfreich....

Die Lösung...
mehr...

Archiv

TechInfo

Schnittstelle für Customized Features

By Dirk Bergles

Es ergab sich in einem laufenden Projekt das das Löschen von Dokumenten unterbunden werden mußte. Es sollten Custom Dokumente nur noch per Aktion gelöscht werden können.
Um dies zu erreichen muß natürlich in das Datanbank Script " QueryDoumentDelete" eingegriffen werden.

Um aber eine derart wichtige und elementare Bestandteile des Systems nicht vom Designrefresh auszuschließen, gibt es nun eine leichter zu handhanbende Schnittstelle.
Eine Library "CUS_Features"
Auch diese Schnittstelle verhindert leider nicht das ggf. Designelemente manuell upgedated werden müssen.
mehr...

Archiv

TechInfo

Textersetzungen in CSS und JS

By Dirk Bergles

Es wurde der Wunsch geäussert auch im CSS und JS Textersetzungen zu ermöglichen. Daher ist es als Featurerequest für die 7.70 0 aufgenommen

Einfaches Beispiel:
In den CSS-Feldern sind an diversen Stellen Farben definiert. Ändern sich diese Farben müssen alle CSS Felder kontrolliert und ggf. geändert werden.
Gäbe es nun eine Textersetzung wie z.B. {%TTACOLOR_DARKBLUE%}, dann könnte die Farbe an zentraler Stelle gesetzt werden, die Änderungen ziehen sich dann durch alle CSS Klassen.
mehr...

Mai

18

Tiny gegen den Rest der Welt

By Dirk Bergles

Und wieder gibt es neue Hürden vom Tiny. Ausserdem benötigen wir dringend Feedback bezüglich der Usability.

TinyMCE
Die Event Steuerung und Event Handhabung des tinys erscheint auf den ersten Blick in die API Dokumentation ziemlich ausgefeilt.
Nun passiert aber folgendes. Wie bereits berichet, feuert der tiny beim Initialisieren bereits einmal alle onActivate und onDeactivate. Danach sind wir nun in der Lage Code auszuführen.
ABER
Beim ersten Klick in das letzte Feld das initialisert wurde, wird kein onActivate mehr gefeuert, denn diese Editorinstanz ist bereits active. Das heißt, nachdem wir nun das lästige Label entfernen konnte, können wir es nicht wieder über den onActivate darstellen.
Active heißt aber nicht das die Toolbar angezeigt wird. Die wird tatsächlich erst nach Klick in das Feld angezeigt.
Es ist auch nicht möglich den Focus direkt in diesen activierten Editor zu legen. Also möglich schon, es gibt eine Methode focus(), nur wird dabei nicht die Toolbar angezeigt. Man kann zwar munter lostippen, aber die Toolbar fehlt.

Also wird hier noch ein Weg gesucht der passt und eine einigermaßen userfreundliche Bearbeitung zuläßt.

Benutzerfreundlichkeit
Bitte folgenden Vorschlag ansehen und gerne auch diskutieren

Es gibt nun eine zentrale Toolbar mit save und Close (Es könnten auch alle Buttons aus dem Editor Dialog nach und nach eingebunden werden).
Darunter gibt es eine ausklappbare Titelzeile, die zumindest mal verrät welches Dokument wir denn überhaupt vor uns haben.
Und ín dem ausgeklappten Teil könnte dann ein verkürzter Header enthalten sein für die absolut wesentlichen Daten. Denn z.B. bei den Blogbeiträgen ist sonst die Titeleingabe gar nicht möglch, weil sie aus dem Subject entnommen wird.


Daher dann auch logischerweise ein zentraler Speicher button nötig.

Feedback wirklich erwünscht und benötigt.

Dez

30

TinyMCE Probleme

By Dirk Bergles

Nach diversen Versuchen gebe ich erstmal auf, dem TinyMCE beibringen zu wollen, das er sich nach der Eingabe vergrößert und dem eingegebenen Text oder sonstwas anpaßt.
Was der NICEdit problemlos hinbekommt scheitert beim tinyMCE kläglich.
Hier einfach mal ein paar Zeilen eintippen... http://www.nicedit.com/
Das Eingabefeld wächst mit der Eingabe.

Gelöst ist dies einfach durch eine Funktion im event onKeyUp wo letztendlich der Frame eine neue Höhe erhält. Die Höhe zieht er sich aus der aktuellen Höhe des Dokumentes im IFrame.
Voll easy.
Genauso ist es nun auch beim TinyMCE eingebaut...
mehr...

Mai

17

TinyMCE und Ext-JS im WebUI

By Dirk Bergles

Der Javascript-Code für das WebUI, der sich inzwischen auf gefühlte 5 Millionen Zeilen Code vergrößert hat, bedarf sicher einer Erklärung.
Das letzte CMS Meeting machte ja bereits deutlich, dass es mit einem "einfachen" WebUI und einem InlineEditing so seine Probleme geben wird.

Inzwischen ist nun das Inline Editing ein paar Stufen weiter. Das funktionierte aber nicht ohne Schwierigkeiten. Ein paar davon gehören wirklich verboten.
(Kommentare und Verbesserungsvorschläge sind herzlich Willkommen)

Zum Beispiel:
mehr...

Archiv

TechInfo

urlDecode/urlEncode

By Dirk Bergles

Es gibt nun zwei zentrale Funktionen für die URL Kodierung in der Library SWM_Error.
Bisher wurden Strings einfach, leider an mehreren Stellen, per Evaluate und @URLEncode/@URLDecode kodiert. Nun existieren zwei reine Script-Funktionen, so daß erstens der teure Evaluate wegfällt und zweitens auch Strings erlaubt sind, welche größer 2K sind. in einem Evaluate würde ja der String als Konstante eingebaut werden und die sie ja bekanntlich auf 2K Größe beschränkt.

Da vermutlich jeder seine "eigenen" Funktionen gleich benannt hat, urlDecode() und urlEncode(), kann es wahrscheinlich hier und da zu einer doppelten Deklaration und Fehler beim Kompilieren kommen.

mehr...

Archiv

TechInfo

Umlaute, UTF-8, Javascript und Domino

By Dirk Bergles

Wieder mal schlug ein Umlaute-Fehler auf. Beim WebUI wurden Umlaute im RichTextEditor nicht korrekt gepspeichert und landeten als komische Sonderzeichen wieder im ContentFeld.
Seltsamerweise funktionierte das Schreiben von Umlauten in normalen Textfeldern.
Der Kunde war gezwungen UTF-8 einzuschalten, danach funktionierte es nicht mehr.

Erstmal die Lösung...
mehr...

Archiv

TechInfo

Und wieder ein 32K @~*ä!#&? Error

By Dirk Bergles

Notes geht bereits in Runde 8 und noch immer müssen uns mit dem Steinzeitfehler 32K rumärgern. Erwischt hat es diesmal die Kategorieauswahl der Items.
Nach einem Import von tausenden Items mit langen verschachtelten Kategorien in dem Unternehmenshandbuch der BVB erscheint bei jedem Öffnen und Refresh von Items die Fehlermeldung

Die Ursache ist einfach. In einem Feld "AvailbaleSLECategories" werden die Kategorien per DBLookUp ausgelesen, welche dann in einer DialogList auswählbar sind. Und das sind einfach mehr als 32K.

Da der Fehler nicht mit @IsError abzufangen ist, denn innerhalb der Formel darf man sehr wohl mit Werten >32K arbeiten ist nun ein Workaround implementiert.
mehr...

Archiv

TechInfo

Variable Parameter in Lotus Script

By Dirk Bergles

Bei der Entwicklung einer recht simplen Funktion innerhalb der Marker wollte ich eine vielseitig einsetzbare Funktion zum Löschen schaffen.
Um hier eigentlich jegliche Art von Listen von Dokumenten zu übergeben wird der Typename des Variant Parameters ausgewertet.
Vielleicht kann dies der ein oder andere gebrauchen. Auf diesem Weg erspart man sich mehrere Funktionen.
Leider sind flexible Listen von Parametern nicht möglich durch Weglassen beim Aufruf. Hier müßte im Aufruf mit Nothing oder Leerstring gearbeitet werden.
(Das wäre allerdings auch sonst zu schön gewesen.)

Hier ist beispielhaft der Code:
mehr...

Archiv

TechInfo

Wer benutzt .css Endungen?

By Dirk Bergles

Alle Dokumente in der Ansicht css werden zusätzlich auch mit .css ausgegeben. Benutzt dies irgendwer?
Ich warte bis Mittwoch auf eine Antwort und würde diese Variante dann wieder entfernen.

Gleiches gilt auch für .js in der Ansicht js.

Archiv

TechInfo

Zugriffsrechte für ContentMaster

By Dirk Bergles

Wir sind dazu übergegangen dem ContentMaster generell nur noch Autorenrechten zu geben. Damit ist die tatsächliche Steuerung der Zugriffsrechte einfacher und auch sicherer.
Durch diese Umstellung trat aber nun ein Fehler auf.
Da "früher" das Autorenfeld nach der Freigabe gelöscht wurde, der ContentMaster war ja Editor, wurde beim Schreibzugriff einfach geprüft ob der User ein Autor ist. Ist er ein Autor, wurde abgebrochen und einfach Domino die Prüfung überlassen, denn das Autorenfeld war für freigegebene Dokumente ja leer.

Nun aber muß der ContentMaster zwingend als Autor eingetragen sein, denn er hat das Dokument freigegeben, muß es auch wieder archivieren können und auch editieren dürfen.

Damit darf aber ein ContentMaster automatisch alle freigegebenen Dokumente bearbeiten. Denn er ist Autor und steht in jedem freigegebenen Dokument in AuthorRights.

Die sofortige Änderung für diesen Fehler sieht nun vor, das die erste Prüfung einmal auf Autor und keine Rolle [ContentMaster] prüft.
Anschließend wird wieder nach Standard verfahren und die ApprovalRights analysiert und entsprechend reagiert.

Dabei gab es einen weiteren Fehler, denn im weiteren Verlauf wurde einem Autor, sofern er denn, durch welche Gründe auch immer, im Autorenfeld "AuthorRights" steht, erlaubt zu speichern.
Das Feld AuthorRights wird aber berechnet. Eine sinnvolle Nutzung könnte eigentlich nur durch das Feld AddAuthorRights erfolgen.
Daher wurde bei dieser Prüfung das Feld AuthorRights durch AddAuthorRights ersetzt. Damit kann nun auch der Editmode verhindert werden, wenn der ContentMaster in allen Dokumenten steht, er aber bei bestimmten Dokumenten keine ApprovalRights besitzt.

! Achtung ! bei alten Dokumenten fehlt der Eintrag [ContentMaster] im Feld AuthorRights, so daß dieser die Dokumente nicht mehr bearbeiten kann. Ein vielleicht nicht unwichtiger Punkt beim Updateprozess.

Tags:
Alle Tags