SideBarMenu

Damit Stud.IP auf Nutzeranfrage hin die im System gespeicherten nutzerbezogenen Daten aus Plugins mit ausliefern kann, ist es notwendig dass das Plugin das Interface PrivacyPlugin implementiert und die Funktion exportUserData(StoredUserData $storage) besitzt. Diese Funktion erhält eine Instanz der StoredUserData Klasse und kann darin die gespeicherten personenbezogenen Daten (sowohl tabellarische Daten als auch Dateien) ablegen.

Beim Löschen von Personen wird das Event UserDidDelete gesendet, woraufhin ein Plugin auch seine nutzerbezogenen Daten zu dieser Person aus dem System löschen sollte.

TODO: Was passiert beim Anonymisieren?

Ein Plugin könnte folgendermaßen aussehen:

class MyPlugin extends StudIPPlugin implements StandardPlugin, PrivacyPlugin
{
    ...

    /**
     * Export available data of a given user into a storage object
     * (an instance of the StoredUserData class) for that user.
     *
     * @param StoredUserData $store object to store data into
     */

    public function exportUserData(StoredUserData $storage)
    {
        $db = DBManager::get();

        $table_data = $db->fetchAll('SELECT * FROM my_table WHERE user_id = ?', [$storage->user_id]);
        $storage->addTabularData('Anzeigetitel', 'my_table', $table_data);

        $file_data = $db->fetchAll('SELECT * FROM my_files WHERE user_id = ?', [$storage->user_id]);
        foreach ($file_data as $file) {
            $storage->addFileAtPath($file['name'], $file['path']);
        }
    }
}

Letzte Änderung am 10.12.2018 13:57 Uhr von eludwig.