Kann ich im Plugin die Anmelde-Mailadresse abfragen?

19.02.2016 17:54
avatar  HLueken
#1 Kann ich im Plugin die Anmelde-Mailadresse abfragen?
avatar
Mitglied

Hallo,
ich möchte basierend auf der Anmelde-Mailadresse Prüfungen ausführen (nur wenn ich als Admin angemeldet bin, entweder in der Mitgliederliste oder auf der Profil-Anzeige).
Gibt es irgendeine Möglichkeit, dass ich auf zu einem Benutzer im Plugin/Javascript die Anmelde-Mailadresse ermittle?
Danke und Gruß
Heinz


 Antworten

 Beitrag melden
23.02.2016 10:56
#2 RE: Kann ich im Plugin die Anmelde-Mailadresse abfragen?
avatar
Techniker

Diese wird bzgl. Sicherheit über die API nicht ausgeliefert.

1
 
xobor.plugin('anwesenheit').getDeep({target_id: [156428], target_type: "3"},function(res){console.log(res)})
 



hier kannst du sehen was an userdaten herausgegeben werden.


 Antworten

 Beitrag melden
23.02.2016 12:23
avatar  Ingmar
#3 RE: Kann ich im Plugin die Anmelde-Mailadresse abfragen?
avatar
Technik

Da du ja ein bischen Anhung von Jquery hast noch folgender Tipp:

Die Notlösung für solche Dinge ist es, per $.get() einfach Teile der Administartion per Ajax zu laden und dann dort gewünschten Werte zu suchen.




Hier mal ein Beispiel, wie ich das meine. Generell ist das natürlich keine saubere Lösung und wir werden im Store keine Plugins annehmen, die solche $.get-calls verwenden - aber für deine privaten Plugins kannst du das so machen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
function getUserMail(userid){

//url bauen
var userurl = "/admin/index.php?page=benutzer&option=edituser&page=benutzer&editid="+userid;
 
//HTMl-Code der Admin-Seite holen:
$.get(userurl, function(res){
//Da das ganze SEHR unsauber ist entfernen wir wenigstens die Script Tags,
// sonst werden alle Scripts im nächsten Schritt noch erstmal geladen
res = res.replace(/\n/gmi," ");
res = res.replace(/\r/gmi," ");
res = res.replace(/<script.*?<\/script>/gmi," ");
 
//Aus dem Rest erstellen wir uns ein Jquery-Objekt
$temp = $("<div>").html(res);

//jetzt müssen wir nur noch den richtigen input finden:
$mail = $temp.find("input[name='mail']").val();
 
alert("mail:"+ $mail);
 
});
}
 

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
24.02.2016 17:42
avatar  HLueken
#4 RE: Kann ich im Plugin die Anmelde-Mailadresse abfragen?
avatar
Mitglied

Vielen Dank schon mal, das werde ich am Wochenende als Projekt starten :-)

Falls es interessiert: das ist, was ich verbessern will:
- ich habe in meinem Forum verschiedene Gruppen, die dann in jeweils in einer Benutzergruppe mit entsprechenden Berechtigungen abgebildet werden
- jede Gruppe gibt mir eine Liste mit validen Mail-Adressen, die ich jetzt bei einer Neuanmeldung schnell prüfen will
- wenn Mailadresse drin, hänge ich neuen Benutzer in die entsprechede Benutzergruppe um
- wenn nicht, muss ich beim Gruppenverantwortlichen nachfragen

Wenn ich also automatisch gegen die Liste der Mailadressen prüfen kann, spare ich einiges an Zeit. Das versuche ich jetzt mal mit deinem Tipp (entweder als Plugin oder als eigene HTML Seite, da muss ich rumspielen), Performance spielt nicht wirklich eine große Rolle, da ich das ja nur mit angemeldeten Admin machen will und das auch nur auf der Benutzerliste.

Ich werde berichten ob ich es hinbekommen habe...


 Antworten

 Beitrag melden
24.02.2016 18:58
avatar  .BiL.
#5 RE: Kann ich im Plugin die Anmelde-Mailadresse abfragen?
avatar
Mitglied

Klingt sehr durchdacht und ich freue mich schon auf deinen Bericht.
Was mich interessiert, warum dir die Anmeldevariante mit e-Mail-Bestätigung und Freigabe durch den Admin nicht genügt?
Geht es darum, dass andere für dich die Adressen validieren sollen?

.
Viele Grüße .BiL.
Friends of Xobor

Fragen zu Plugins und Pluginideen bitte nicht per PN, sondern öffentlich oder im FoXum stellen.

 Antworten

 Beitrag melden
24.02.2016 21:41
avatar  HLueken
#6 RE: Kann ich im Plugin die Anmelde-Mailadresse abfragen?
avatar
Mitglied

Genau, jede Gruppe bekommt einen gruppenspezifischen Bereich und entscheidet selber, wen sie da reinlassen. Schnell geht das, wenn ich gegen eine Liste bekannter Mailadressen prüfe. Und das möchte ich so automatisch wie möglich haben. Noch besser wäre natürlich, wenn das automatisch gehen würde (bei Registrierung wird für solche Mailadressen direkt die richtige Benutzergruppe zugeordnet).


 Antworten

 Beitrag melden
27.02.2016 07:15 (zuletzt bearbeitet: 27.02.2016 07:17)
avatar  HLueken
#7 RE: Kann ich im Plugin die Anmelde-Mailadresse abfragen?
avatar
Mitglied

Ich hatte gestern ein paar Stunden und habe den Tipp von Ingmar umgesetzt. Klappt wirklich:
- Ausgangspunkt ist die Admin-Seite, auf der die Mitglieder der Gruppe angezeigt werden, in die neue Registrierungen landen
- Die Liste der bekannten Benutzer und der Zuordnung zur Gruppe liegen bei mir auf meinem Homeserver
- Auf dem Homeserver gibt es ein php-Script, welches eine Liste von Mailadressen entgegennimmt, die Liste prüft und dann gefundene zurückgibt

Ergebnis: auf einer neuen eigenen html-Seite im Forum (nur für Admin zugänglich) werden die neuen Benutzer angezeigt, mit dem Status ob sie bekannt sind und zu welcher Gruppe sie in diesem Fall gehören. Von der Liste kann ich direkt in das Profile springen und die Gruppe zuordnen.
Das beschleunigt die Freigabe in meinem Fall ganz erheblich, da ich jetzt schnell erkenne, ob ich ohne Rückfrage freischalten kann; und zwar von überall, auch mit dem mobilen Gerät...

Jetzt fehlt mir eigenlich nur noch, dass ich das Zuordnen zur Gruppe auch noch automatisch machen kann...

Wen es interessiert, hier der Code der neuen Seite

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
<div id="newUsers"></div>
 
<style>
.tableNewUsers {
margin-left: auto;
margin-right: auto;
border: 2px solid;
}
.tableNewUsers td {border: 1px solid;}
.headerline {background-color: lightgrey; font-weight:bold;}
.checkResult {background-color: lightyellow;}
.tableline {}
</style>
 
<script>
//get HTML forum page with user group of new users
$.get("http://www.asyl-forum.de/admin/?page=benutzer&option=userlist&groupid=12345", function(res){
var members = $("<div>").html(res).find("#resultsTable").find("tr");
var mails = [];
 
//build html for table with new users
var html = "<table class='tableNewUsers'>";
html += "<tr class='headerline'>";
html += "<td></td><td>Prüfung</td><td>Name</td><td>Mail</td><td>Gruppe</td><td>Registriert</td><td>Letzte Aktivität</td></tr>";
for (var i=1;i<members.length;i++){
var cells = $(members[i]).find("td");
var mail = $(cells[2]).html();
mails.push(mail);
html += "<tr class='tableline'>";
html += "<td>"+$(cells[0]).html().replace("?page","http://www.asyl-forum.de/admin/?page").replace(">edit<"," target=\"_blank\">edit<")+"</td>";
html += "<td class='checkResult' id='checkResult"+(i-1)+"'>... läuft ...</td>";
html += "<td>"+$(cells[1]).html()+"</td>";
html += "<td>"+mail+"</td>";
html += "<td>"+$(cells[4]).html()+"</td>";
html += "<td>"+$(cells[5]).html()+"</td>";
html += "<td>"+$(cells[6]).html()+"</td>";
html += "</tr>";
}
html += "</table>";
$("#newUsers").html(html);
 
//check mail addresses on home server
$.getJSON('http://xxxx/forumCheckUser.php?callback=?',
{mail:mails},
function(data){
var resulttext;
for (var j=0;j<mails.length;j++){
resulttext = "?";
for (var i=0;i<data.length;i++){
if (mails[j]==data[i][0]) resulttext=data[i][1];
}
$("#checkResult"+j).html(resulttext);
}
});
});
 
</script>
 


 Antworten

 Beitrag melden
Bereits Mitglied?
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!