status im anwesenheits-widget erst nach zwei-maligem laden korrekt
in der webapp wird der korrekte status im widget „anwesenheit“ erst nach erneutem laden der webapp (also manuellen reload der webapp) korrekt angezeigt.

beispiel:

webapp ist geschlossen/beendet.

der anwesenheitsstatus beliebiger benutzer ändert sich nun (egal von von „zuhause“ zu „abwesend“ oder …
sollte schon seit 2.32.0 behoben sein.
<p>diese benutzeroberfläche muss folgendes unterstützen:</p><ol> <li>jetzt aktualisieren.</li> <li>countdown bis zur nächsten aktualisierung (falls automatisch).</li> <li>manuell/auto umschalten.</li> <li>intervall für auto einstellen.</li> </ol><p>ich denke, sie möchten die schaltfläche "aktualisieren" in ruhe lassen und ihre funktionalität nicht überlasten. aktualisieren bedeutet aktualisieren. benutzer bekommen das.</p><p>die anderen funktionen könnten in einer einzigen benutzeroberfläche zusammengefasst werden. der countdown-bereich zeigt entweder eine dekrementierungszeit (wenn automatisch) oder nichts (oder "aus"), wenn im manuellen modus. eine dropdown-steuerung oder gangsteuerung kann intervalloptionen bieten (wie bereits von patrick vorgeschlagen), wobei "keine" oder "manuell" eine option ist. wenn der benutzer "manuell" wählt, ist die automatische aktualisierung deaktiviert. wenn er einen numerischen wert wählt, ist die automatische aktualisierung in diesem intervall aktiviert.</p> die google app beinhaltet den assi, discovery (früher google now), wetter, erinnerung (gibt's ortsbezogen), hat verbindung zu maps und den dort gespeicherten orten/favoriten usw.  

darüber kannst du deine google home geräte steuern usw. es ist schon ein zentraler teil von android mit google diensten.  

  

wichtiger wäre deine verläufe für standort, youtube etc in deinem google konto zu deaktivieren.  

der zugriff auf den standort über die google app ist entsprechend den dingen welche google für dich erledigen.  

  

aber letzten endes ist die devise "versuch macht klug", daher deaktiviere die komplett app und schau ob dir persönlich dann etwas fehlt. musst nur im hinterkopf behalten, dass wenn es zu irgendwelchen einschränkungen oder problemen kommt, eventuell die deaktivierte google app der grund dafür sein kann. du warst mit einem anderen browser aber mit deinem account auf deiner seite!
geh zu einem freund und lass den deine seite aufrufen, und du wirst sehen sie sieht so aus wie du sie eingerichtet hast.
beruhigen und entspannen, alles halb so schlimm. <p>der grund, warum sie denselben inhalt erhalten, liegt in der eigenschaft <code>#cache</code> des render-arrays, die sie beim aufrufen der methode <code>render()</code> erhalten.</p><p>insbesondere setzen sie durch aufrufen von <code>setoffset()</code> früher in ihrem code implizit einen cache-schlüssel für das render-array (siehe <a href="https://api.drupal.org/api/drupal/core%21modules%21views%21src%21viewexecutable.php/function/viewexecutable%3a%3asetoffset/8.2.x">hier</a> ):</p><blockquote> <pre><code>$this-&gt;element['#cache']['keys'][] = 'offset:' . $offset; </code></pre></blockquote><p>diese cache-schlüsseleinstellung in kombination mit der eigenschaft <code>#theme</code> des render-arrays (<code>views\_view</code>), die für beide ansichten gleich ist, führt beim einschließen zu einer zwischengespeicherten version der ersten die zweite, da die kombination [<code>#theme</code>] + [<code>#cache</code>] [schlüssel] für beide ansichten identisch ist.</p><p>um das zu umgehen, könnten sie:</p><ol> <li>entfernen sie das caching für diese ansichten vollständig, oder</li> <li>vermeiden sie die verwendung von <code>setoffset()</code> oder</li> <li> <p>fügen sie dem cache spezifischere schlüssel hinzu, sodass sie für jede ansicht einen anderen cache haben. z.b.</p> <pre><code>$variables['viewcalls']['#cache']['keys'] = array\_merge( $variables['viewcalls']['#cache']['keys'], array('viewcalls') ); ... $variables['viewappointments']['#cache']['keys'] = array\_merge( $variables['viewappointments']['#cache']['keys'], array('viewappointments') ); </code></pre></li> </ol><p>ich habe ihren fall mit der option 3. getestet und es hat wie erwartet funktioniert. bevor sie sich für die verwendung eines anderen moduls entschieden haben, können sie versuchen, an ihrem ursprünglichen code festzuhalten und die eigenschaft <code>#cache</code> beide render-arrays entsprechend zu ändern.</p><p>viel glück!</p> Das mal eine neue Batterie kaputt ist, kommt vor. Aber zwei hintereinander ist fast wie ein mittlerer Lottogewinn. Was es aber nicht gibt, ist, das ein Bleiakku in wenigen Minuten voll geladen ist. Eher wird die nie voll. Mit Sicherheit ist Dein Ladegerät kaputt. Der Händler wird die "Batterie" überprüft haben und hat festgestellt, dass sie nicht geladen, bzw. nur "angeladen" ist. Er tippt auf einen Zellenschluss und tauscht sie um. Dein Lagegerät wird den Akku anladen und das war es. Dann reicht die Kapazität natürlich nicht aus um mehrer Startversuche zu "überleben". Lade die "Batterie" mal mit einem anderen Ladegerät. 


Es gibt mehrer Arten bei digitalen Ladegeräten die die "Ladespannung" und den "Ladezustand" des Akkus ermitteln/schätzen und dann danach regeln. Aber das hier zu erklären würde zu umfangreich werden, interessiert sicher auch nur wenige. Das Ergebnis ist ausschlaggebend. Die "Ermittlung" des Ladezustandes ist bei Deinem Ladegerät sicher defekt. Daher schaltet es ab und lädt nicht mehr. Gruß Bonny <blockquote> <p><strong> tl/dr </strong>: obwohl sie das guthaben in ihrem jwt speichern könnten und es vor manipulationen geschützt wäre, gibt es viele möglichkeiten, wie das guthaben im jwt erstellt werden kann möglicherweise technisch gültig, aber immer noch falsch. daher ist es wahrscheinlich am besten, jedes mal den kontostand in der datenbank zu überprüfen, und sie müssen ihn auf jeden fall überprüfen, bevor sie transaktionen durchführen</p> </blockquote><p>es gibt zwei arten von zeugen jehovas:</p><ol> <li>jws: payload ist im "klartext" und hat eine signatur, um den inhalt zu bestätigen</li> <li>jwe: die nutzdaten sind vollständig verschlüsselt.</li> </ol><p>diese haben leicht unterschiedliche anwendungsfälle. wenn sie lediglich überprüfen müssen, ob die im jwt gespeicherten daten korrekt sind und nicht manipuliert wurden, ist ein jws in ordnung (vorausgesetzt, sie implementieren es ordnungsgemäß und überprüfen die signatur bei allen anforderungen). daher können sie den kontostand in einem jws speichern und später bestätigen, dass der gemeldete kontostand dem entspricht, den sie ursprünglich gespeichert haben.</p><p>wenn sie die daten auch privat halten möchten, können sie einen jwe verwenden. die verschlüsselung garantiert auch, dass die daten nicht geändert werden (vorausgesetzt, sie implementieren das jwe ordnungsgemäß). beachten sie, dass die einzige person, die normalerweise zugriff auf das jwt hat, der endbenutzer ist. wir sprechen daher davon, es für sie privat zu halten - wahrscheinlich nicht erforderlich für ihren anwendungsfall (h/t <a href="https://security.stackexchange.com/questions/221827/storing-info-in-jwt-payload/221828?noredirect=1#comment451909\_221828">edc</a> ).</p><p><strong> daher ist die waage vor manipulationen geschützt. </strong></p><p>in beiden fällen sollten sie den kontostand mit der datenbank überprüfen, bevor sie eine tatsächliche transaktion durchführen, da:</p><p><strong> der kontostand ist möglicherweise immer noch falsch. </strong> wenn eine andere transaktion ohne aktualisierung eines jwt durchgeführt wurde oder wenn ein alter jwt angezeigt wird (auch bekannt als wiederholungsangriff), dann sie können eine gültige jwt haben, die das falsche guthaben hat. dies ist sehr wahrscheinlich auch ohne aktive angreifer. stellen sie sich einen benutzer vor, der mehr als eine app verwendet. was passiert in ihrem hypothetischen szenario, wenn ein kontostand in einem jwt auf einem gerät gespeichert ist und sich der benutzer dann bei einem anderen gerät anmeldet und eine transaktion durchführt? die daten im jwt für das erste gerät sind jetzt falsch, obwohl das jwt selbst gültig ist und nicht abgelaufen ist. dies ist nur eine von vielen möglichkeiten, wie gültige, aber falsche jwts auftreten können.</p><p>es gibt viele möglichkeiten, probleme mit veralteten daten in einem jwt zu beheben, aber am ende sind diese korrekturen möglicherweise mehr arbeit als jedes mal die datenbank zu überprüfen. dies ist jedoch ein balanceakt, der letztendlich bei ihnen liegt! da gibt es keine richtige antwort.</p> <p>dies kann eine paginierung sein oder auch nicht, aber hier ist, wie ich paginierung in meiner web-app mache:</p><pre><code>|&lt; first, &lt;&lt; previous, page [5] of 12, next &gt;&gt;, last &gt;| </code></pre><p>die äußeren vier optionen sind links, während die <code>page [5] of 12</code> ist ein formular mit dem [5] als eingabefeld. für benutzer mit aktiviertem javascript verstecke ich die schaltfläche "senden" und sende das formular beim ereignis "unfokus" oder drücke den tastendruck. der benutzer hat die option, wie viele zeilen er anzeigen möchte, die er aus einem dropdown-menü auswählen kann: 10, 20, 50, 100, alle. zusätzlich zur paginierung biete ich auch das sortieren und filtern der ergebnisse an, obwohl dies möglicherweise nicht in jeder situation sinnvoll ist.</p><p><strong>bearbeiten</strong>:</p><p>hier ist ein ausschnitt aus einem modell unserer web-app, um ihnen eine bessere vorstellung zu geben. in dieser version wurden die wörter in den schaltflächen weggelassen, werden jedoch nach einer leichten verzögerung als tooltip beim hover angezeigt. möglicherweise stellen sie jedoch fest, dass das beibehalten der wörter zu einer höheren benutzerfreundlichkeit führt.</p><p><img src="https://i.stack.imgur.com/vzbu0.png" alt="virtuosi media&#39;s pagination example"></p><p>ein paar andere dinge, auf die sie hinweisen sollten:</p><ul> <li>die schaltflächen "erste" und "vorherige" wurden deaktiviert, da es sich um die erste seite handelt.</li> <li>das blau zeigt aktive schaltflächen an (ich muss dieses spezielle thema durch eine farbprüfung ausführen, um sicherzustellen, dass farbenblinde benutzer einen unterschied feststellen können).</li> <li>die tasten bleiben immer erhalten, auch wenn sie deaktiviert sind. dies gibt der schnittstelle konsistenz.</li> <li>aufgrund der skalierung habe ich ein eingabefeld anstelle eines dropdown-auswahlfelds ausgewählt. wenn sie 3000 seiten haben, möchten sie nicht nach unten scrollen, um eine seite zu finden</li> <li>die paginierung ist in einer singulären visuellen komponente gruppiert, um ähnlichkeit im zweck anzuzeigen.</li> </ul> hi@statia,herzlich willkommen in unserer community.tut mir leid, dass es bei dir einen zugriff durch dritte gibt. bitte wundere dich nicht, dass ich deinen post verschoben habe. wir haben das thema bereits vorliegen, daher habe ich ihn hierher verschoben.bitte ändere zuerst direkt deine zugangsdaten, indem du das passwort zurücksetzt. im nachfolgenden link findest du eine anleitung dafür, wie das passwort neu vergeben werden kann:ferne bitte ich dich, wobei dies vom gerät abhängt, alle automatischen logins zu entfernen. logge dich also einmal bewusst aus allen joyn apps aus, in denen du eingeloggt bist. ein schließen der app führt nicht automatisch zum logout aus der app, wodurch andere, wenn sie zugriff auf das gerät haben, beim Öffnen der app inhalte sehen können. <p>ihr code ist korrekt, aber dieser filter gilt nur für die funktion <code>wp\_login\_form()</code>, die nicht von <code>wp-login.php</code> verwendet wird. sie werden ihren text dort also nicht sehen, wenn sie dies erwarten! versuchen sie, <code>wp\_login\_form()</code> in einer vorlage aufzurufen, um zu sehen, was der filter bewirkt.</p> <pre><code>@override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.dialog\_test, container, true); getdialog().requestwindowfeature(style\_no\_title); getdialog().setcancelable(false); return view; } </code></pre><p>anstelle von <code>getdialog().setcancelable(false);</code> musst du direkt <code>setcancelable(false);</code> verwenden</p><p>die aktualisierte antwort wird also so aussehen</p><pre><code>@override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.dialog\_test, container, true); getdialog().requestwindowfeature(style\_no\_title); setcancelable(false); return view; } </code></pre>