MyBB.de Forum

Normale Version: Export-Möglichkeit von (einzelnen) User-Profilen bzw Stamm-Daten?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7
Ich habe mir eine kleine Möglichkeit zusammengebaut und möchte es hiermit Teilen.

./admin/modules/user/users.php

Suchen nach

PHP-Code:
if($mybb->input['action'] == "activate_user"

darüber dies einfügen

PHP-Code:
// user-export
if($mybb->input['action'] == "export_user")
{
    
$page->add_breadcrumb_item("Benuter-Export Vorschau");
    
$page->output_header("Benuter-Export");

    
$sub_tabs['export_user'] = array(
        
'title' => "Benuter-Export",
        
'link' => "index.php?module=user-users&action=export_user&uid={$mybb->input['uid']}",
        
'description' => "Hier eine Zusammenstellung aller erforderlichen Benutzerdaten für den Export."
    
);

    
$page->output_nav_tabs($sub_tabs'export_user');

    
$query $db->simple_select("users""*""uid='{$mybb->input['uid']}'", array('limit' => 1));
    
$user $db->fetch_array($query);
    
    
$user['username'] = htmlspecialchars_uni($user['username']);
    
$username htmlspecialchars_uni($user['username']);
    
// Log admin action
    
log_admin_action($user['uid'], htmlspecialchars_uni($user['username']));

    
$table = new Table;

    
$table->construct_header("Benutzer-Daten", array('colspan' => '2'));
    
    
$table->construct_cell("<strong>Benutzername:</strong> ", array('width' =>'200'));
    
$table->construct_cell($user['username']);
    
$table->construct_row();
    
    if(empty(
$user['website']))
    {
        
$user['website'] = $lang->unknown;
    }
    else
    {
        
$user['website'] = htmlspecialchars_uni($user['website']);

    }
    
$table->construct_cell("<strong>Webseite:</strong> ", array('width' =>'200'));
    
$table->construct_cell($user['website']);
    
$table->construct_row();
    
    if(empty(
$user['email']))
    {
        
$user['email'] = $lang->unknown;
    }
    else
    {
        
$user['email'] = htmlspecialchars_uni($user['email']);

    }
    
$table->construct_cell("<strong>E-Mail:</strong> ", array('width' =>'200'));
    
$table->construct_cell($user['email']);
    
$table->construct_row();
    
    if(empty(
$user['icq']))
    {
        
$user['icq'] = $lang->unknown;
    }
    else
    {
        
$user['icq'] = htmlspecialchars_uni($user['icq']);

    }
    
$table->construct_cell("<strong>ICQ-Nummer:</strong> ", array('width' =>'200'));
    
$table->construct_cell($user['icq']);
    
$table->construct_row();
    
    if(empty(
$user['aim']))
    {
        
$user['aim'] = $lang->unknown;
    }
    else
    {
        
$user['aim'] = htmlspecialchars_uni($user['aim']);

    }
    
$table->construct_cell("<strong>AIM-ID:</strong> ", array('width' =>'200'));
    
$table->construct_cell($user['aim']);
    
$table->construct_row();
    
    if(empty(
$user['yahoo']))
    {
        
$user['yahoo'] = $lang->unknown;
    }
    else
    {
        
$user['yahoo'] = htmlspecialchars_uni($user['yahoo']);

    }
    
$table->construct_cell("<strong>Yahoo-ID:</strong> ", array('width' =>'200'));
    
$table->construct_cell($user['yahoo']);
    
$table->construct_row();
    
    if(empty(
$user['skype']))
    {
        
$user['skype'] = $lang->unknown;
    }
    else
    {
        
$user['skype'] = htmlspecialchars_uni($user['skype']);

    }
    
$table->construct_cell("<strong>Skype-ID:</strong> ", array('width' =>'200'));
    
$table->construct_cell($user['skype']);
    
$table->construct_row();
    
    if(empty(
$user['google']))
    {
        
$user['google'] = $lang->unknown;
    }
    else
    {
        
$user['google'] = htmlspecialchars_uni($user['google']);

    }
    
$table->construct_cell("<strong>Google-Hangouts-ID:</strong> ", array('width' =>'200'));
    
$table->construct_cell($user['google']);
    
$table->construct_row();

    
$user['lastip'] = my_inet_ntop($db->unescape_binary($user['lastip']));

    
    
$table->construct_cell("<strong>{$lang->last_known_ip}:</strong> ", array('width' =>'200'));
    
$table->construct_cell($user['lastip']);
    
$table->construct_row();

    if(empty(
$user['regip']))
    {
        
$user['regip'] = $lang->unknown;
    }
    else
    {
        
$user['regip'] = my_inet_ntop($db->unescape_binary($user['regip']));

    }
    
$table->construct_cell("<strong>{$lang->registration_ip}:</strong> ", array('width' =>'200'));
    
$table->construct_cell($user['regip']);
    
$table->construct_row();
    
    
$table->construct_cell("<strong>Diese Daten als txt downloaden:</strong><br />(Rechtsklick->Speichern unter)", array('width' =>'200'));
    
$filename $user['username'].".txt";
    
$user = array(
        
"Benutzername: ".$user['username'],
        
"Webseite: ".$user['website'],
        
"Email: ".$user['email'],
        
"ICQ-ID: ".$user['icq'],
        
"AIM-ID: ".$user['aim'],
        
"Yahoo-ID: ".$user['yahoo'],
        
"Skype-ID: ".$user['skype'],
        
"Google-Hangouts-ID: ".$user['google'],
        
"Registrierungs-IP: ".$user['regip'],
        
"Letzte bekannte IP: ".$user['lastip']
    );

    
$fp fopen("userdaten/".$filename,"w+");
    
// mit "w+" wird die datei immer wieder überschrieben
    
foreach($user as $valuesfputs($fp$values."\n");
    
#fwrite($fp,"$user");
    
fclose($fp);
    
$table->construct_cell("<a href=\"userdaten/{$filename}\" title=\"\">Datei downloaden</a>");
    
$table->construct_row();

    
$table->output("Benutzer-Daten von ".$username);

    
$page->output_footer();
}
// user-export ende 

weiterhin Suchen nach

PHP-Code:
$popup->add_item($lang->show_attachments"index.php?module=forum-attachments&amp;results=1&amp;username=".urlencode($user['username'])); 

darunter dies einfügen

PHP-Code:
$popup->add_item("Benutzer in einer Datei exportieren""index.php?module=user-users&amp;action=export_user&amp;uid={$user['uid']}&amp;my_post_key={$mybb->post_code}"); 


Einen neuen Ordner erstellen unter ./admin/

mit dem Namen userdaten

Zu finden wird ab hier ein Link im Popup, bei den "Benutzer & Gruppen->Benutzer", wenn man auf den Optionen Button klickt.

Testet es bitte erst auf einer Testumgebung, nicht das evtl. Fehler etwas zerhauen bei euch. Ich habe es zwar nun eine Weile Local getestet, aber man weis ja nie.
Hallo sjfm und Erkan,
es ist ganz simpel: weil der Betreiber das Forum auf dessen Server mit dessen persönlichen und natürlich geheimen ID bzw PW installierte sowie "die Juristin" und mich zu Admins machte, die nur ins APC gelangen können, nicht aber auf den Server direkt zugreifen können (Ausnahme bin ich mit FTP-Zugriff bezüglich Plug-In- und Theme-Betreuung).

Da der Betreiber "verdeckte" Admins ernannt hat die sich um das Forum in dessen Sinne kümmern sollen (wir sind im Forum lediglich als Super-Moderatoren zu erkennen), hat das alles sehr wohl Sinn. Der Betreiber hat relativ wenig Zeit um im Tagesgeschäft zu agieren, deshalb auch meine eingehende Frage.


Zum Thema EU-Datenschutz & nationale Gesetze:

Die Auswirkungen (zB bezüglich Haftung etc pp) sind sehr schwerwiegend, der Betreiber denkt ernsthaft darüber nach, das ganze Selbsthilfe-Projekt aus diesem Grund aufzugeben bzw "zu verschenken", zB einem Rechtsträger mit Gemeinnützigkeitsstatus (da gibts ein paar Erleichertungen so weit mir bekannt), wobei die Verpflichtung diese Daten "mit ein paar Klicks" bereitszustellen auch dort dann bewerkstelligt werden muss.

Oder das Projekt wird offiziell eingestellt und es gibt ein paar Link-Vorschläge mit anderen Projekten bzw einem "neuen", das aber nicht in der EU registriert und gehostet wird (und erheblich teurer werden würde)...  Undecided 

Lt österreichischem Gesetz fallen auch kleine und private Info-Anbieter, was ein Forum jedenfalls ist, unter das neue Datenschutzgesetz, nicht nur die kommerziellen bzw "die ganz großen".

Lt unserer Juristin ist das sehr wohl durchführbar und wird wohl auch exekutiert werden; Meine Gedanken noch dazu: die Staatstöpfe sind ja eh immer leer, da lässt man sich diese Gelegenheit wohl - ähnlich Knöllchen schreiben - nicht entgehen.

Wie es in Deutschland genau ist, kann ich nicht sagen, denke aber, dass die sich ähnlich wie die Österreicher daran halten werden (oder auch nicht, da sind deutsche Juristen wohl gefragt)...

https://www.pcwelt.de/a/5-mythen-ueber-d...ng,3449029
Zitat:5 Mythen über die EU-Datenschutz-Grundverordnung
Um die DSGVO ranken sich unzählige Mythen. Das und gefährliches Halbwissen behindern eine ernsthafte Auseinandersetzung mit dem Thema. Im folgenden Artikel möchten wir auf die fünf größten Mythen eingehen, die wir immer wieder zu hören bekommen.

Mythos Nr. 1: Ich bin nicht betroffen, denn ich habe ja kein großes Unternehmen

Die EU-Datenschutz-Grundverordnung (im Folgenden DSGVO ) unterscheidet bis auf wenige Ausnahmen nicht nach der Unternehmensgröße, sondern es gelten alle Regeln unmittelbar für Unternehmen jeglicher Größe. Gerade kleinere Unternehmen, die weniger als zehn Angestellte haben, oder Einzelunternehmer glauben häufig, dass das Thema Datenschutz-Grundverordnung sie gar nicht betrifft.

Als weiteres Argument wird häufig angeführt, dass man gar keine personenbezogenen Daten verarbeitet, wobei es heutzutage schwer vorstellbar ist, dass es überhaupt noch eine Tätigkeit geben könnte, bei der keine solche Daten anfallen. Spätestens wenn der Handwerker eine Kundenrechnung schreibt und dies nicht mehr auf einer guten alten Schreibmaschine mit Durchschlagspapier vornimmt, verarbeitet und speichert er oder speichern eben Sie personenbezogene Daten.

So können grundsätzlich alle Unternehmen und Unternehmer von der DSGVO betroffen sein insofern, dass künftig jeder Kunde oder Geschäftspartner seine (Datenschutz-) Rechte geltend machen und auf sein Recht auf Auskunft pochen kann, um zu erfahren, welche Daten von ihm gespeichert sind. In dieser Situation müssen alle Unternehmen innerhalb von vier Wochen reagieren.
Machen Sie sich also von dem Gedanken frei, dass Sie nicht betroffen sind. Praktisch jedes Unternehmen ist betroffen.

Informieren Sie sich deshalb lieber umfassend und schauen Sie sich konkret an: Wo liegen meine Daten im Unternehmen? Wie habe ich diese gespeichert? Wie sicher sind diese, und welche Daten erfasse ich überhaupt und warum?

...
(08.12.2017, 20:37)MrBrechreiz schrieb: [ -> ]Ich habe mir eine kleine Möglichkeit zusammengebaut und möchte es hiermit Teilen.
...
Testet es bitte erst auf einer Testumgebung, nicht das evtl. Fehler etwas zerhauen bei euch. Ich habe es zwar nun eine Weile Local getestet, aber man weis ja nie.

Hallo Mr.Br.,
vielen Dank dafür!  Love

Wenn ich eine Kopie der users.php als Original anlege und Dein Script ausprobiere wenn mal sehr wenige bzw gar keine eingeloggten Userinnen online sind, es aber nicht funktioniert, sollte das Zurückspielen der originalen users.php ja eh wieder alles in Ordnung bringen?!
Klar, Du kannst natürlich mit der Originalen users.php dies wieder rückgängig machen.

Noch als Zusatz-Info zu meinem Script:
Es wird NUR dann eine txt angelegt vom User, wenn Du diesen über den Klick via Button "Benutzer in einer Datei exportieren" anklickst. Diese wird auch immer wieder überschrieben und keine doppelten angelegt. Das heißt, wenn der User seine Daten ändert, wird auch diese txt auf dessen Stand überschrieben.
hi!
DeGato, ok, jetzt versteh ich das halbwegs.
tropsdem seh ich keinen grund zur panik. MrB hat ja mal eine möglichkeit gezeigt wies funzen könnte. bin ja selber aus ösi-land und betreibe mit einem 2. ösi ein forum allerdings auf smf. als coadmin hab ich allerdings vollen zugriff. nachdem ich nebenbei ein mybb testforum auf meinem server habe. daher weis ich sehr genau das ich als betreiber des servers dir nur zugriff auf genau das verzeichniss über ftp und nur die eine datenbank geben kann.
hat der betreiber kein vertrauen zu euch?
Im Fall der Fälle könnte das Zugriffsrecht sogar ausgeweitet werden, aber wenn es ein Tool @ MyBB gäbe, wär das dennoch ganz gut so und würde zumindest dieses eine kleine Problem aufgrund neuem DSG lösen;

Vertrauen ist sicherlich da, sonst hätt ich zB ja nicht mal den FTP-Zugriff - aber Datenbank, ui, da könnt ja was schief gehen (bei zB meiner Experimentierfreude)  Wink

Mr.Br.s Script könnte ich es erst morgen früh ausprobieren; Beim drüber schauen hab ich jetzt bemerkt, dass da nur die Profilfelder von MyBB drin abgefragt/ausgegeben werden - logisch; Wir haben ein paar "eigene Profilfelder", die müssten dann ja aber auch da rein; Hoffe das gibt kein Problem beim Ausprobieren (denke aber nicht)?! Falls es klappt, könnt ich Dir ja noch die zusätzlichen Felder per PN durchgeben?! *ganzLiebSchau*
Oder einfach hier Posten.
hi!
Zitat:(bei zB meiner Experimentierfreude)
Big Grin  tja, dann immer vorm experimentieren ein backup machen!
ich operiere auch immer am liebsten am offen herzen. da weis ich wenigstens obs dann auch wirklich funzt.
notfalls back zurück und gut ist. aber nicht vergessen, bei experimenten sicherheitshalber board deaktivieren!
Ich bereite alles vor um morgen Früh das Script auszuprobieren; Dabei ist mir nun das untergekommen:

(08.12.2017, 20:37)MrBrechreiz schrieb: [ -> ]... weiterhin Suchen nach

PHP-Code:
$popup->add_item($lang->show_attachments"index.php?module=forum-attachments&amp;results=1&amp;username=".urlencode($user['username'])); 

...

Diese Zeile sieht bei mir so aus (siehe am Ende extra Klammer):

PHP-Code:
$popup->add_item($lang->show_attachments"index.php?module=forum-attachments&amp;results=1&amp;username=".urlencode(htmlspecialchars_uni($user['username']))); 

Sollte aber kein Problem sein, oder?
Nein.
Seiten: 1 2 3 4 5 6 7