Status abfrage eines Mitgliedes..ob Admin, moderator etc

Django, Flask, Bottle, WSGI, CGI…
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Status abfrage eines Mitgliedes..ob Admin, moderator etc

Beitragvon mitch » Dienstag 26. September 2006, 15:12

Hi,

also ich mein Resultat meiner suche so eingerichtet, dass man sich die persönlichen Eigenschaften des gesuchten Benutzers ansehen kann...
Dafür hab ich einfach ein 2. Formular gemacht das sich da nennt "prefs_user_details2" so, wenn aber jetzt der Benutzer x auf die daten von Benutzer y zugreift soll erstmal ausgelesen werden ob x ein Admin, moderator oder redakteur ist. Falls er eines von den drein ist, dann darf er auch die Daten ändern von dem Benutzer. Wenn x aber nur ein stink normaler Benutzer ist, dann sollte er nur lesenden zugirff haben!

Der Quelltext der dafür angepasst werden sollt ist der gleiche wie bei prefs_user_details!

Am Ende brauch ich eigentlich nur die abfrage ob der x eines von den drein ist und wenn nicht, soll einfach der "speichern" button verschwinden! Ist das möglich?

mfg mitch
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Status abfrage eines Mitgliedes..ob Admin, moderator etc

Beitragvon gerold » Dienstag 26. September 2006, 20:17

mitch hat geschrieben:Am Ende brauch ich eigentlich nur die abfrage ob der x eines von den drein ist

Hi mitch!

Die Gruppen eines Benutzers und sonst noch ein paar Daten, bekommst du so raus:

Code: Alles auswählen

member = context.portal_membership.getAuthenticatedMember()

groups = context.portal_groups.getGroupsByUserId(member)
user_roles = context.portal_membership.get_local_roles_for_userid(member)
add_portal_member = context.portal_membership.checkPermission(
    "Add portal member", container
)


print "member:", member
print "(plone)groups:", groups
print "(plone)user_roles", user_roles
print "Add portal member:", add_portal_member

return printed


Sonstiges: http://www.python-forum.de/topic-3786.html

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Beitragvon mitch » Mittwoch 27. September 2006, 08:50

hi,

danke für deine Antwort gerold.

Hab allerdings noch ein Problem. Mit den Befehlen die du mir geschrieben hast kommt bei bsp. das:
mitch --> der user
[] --> group
() --> user_roles --> was soll mir das eigentlich wieder geben
1 --> add_portal_member --> und hier bin ich mir auch nicht sicher hehe

Also ich möchte jetzt wissen ob der mitch Moderator, Redakteur oder nur Benutzer ist... und er ist alles dreis.. wie mach ich das? Bzw. was mach ich falsch?

mfg mitch :oops:
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Beitragvon mitch » Mittwoch 27. September 2006, 15:28

also ich hab das jetzt mal so versucht mit:

Code: Alles auswählen

memberAut python:here.portal_membership.getAuthenticatedMember();
user_roles python:memberAut.getRoles();


Das gibt mir als Beispiel ['Member','Manager'] zurück und jetzt hab ich das:

Code: Alles auswählen

<div class="formControls">
                      <input class="context"
                        tabindex=""
                        type="submit"
                        value="Save"
                        name="prefs_user_edit:method"
                        i18n:attributes="value label_save;"
                        tal:attributes="tabindex tabindex/next;"
                        />
            </div>


jetzt will ich das so einbauen, dass wenn einer Manager ist, dieser Button nicht erscheint. Wie kann ich denn jetzt aus diesem "user_roles" raus lesen ob "Manager" drin steht?

mfg mitch
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Mittwoch 27. September 2006, 18:12

mitch hat geschrieben:

Code: Alles auswählen

memberAut python:here.portal_membership.getAuthenticatedMember();
user_roles python:memberAut.getRoles();

Hi mitch!

Das finde ich super, dass du ``getRoles`` gefunden hast.

Das mit dem Ausblenden funktioniert vielleich so:

Code: Alles auswählen

<div class="formControls">
  <input
    tal:condition="python: 'Manager' in user_roles"
    class="context"
    tabindex=""
    type="submit"
    value="Save"
    name="prefs_user_edit:method"
    i18n:attributes="value label_save;"
    tal:attributes="tabindex tabindex/next;"
  />
</div>

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
mitch
User
Beiträge: 78
Registriert: Dienstag 1. August 2006, 09:07
Kontaktdaten:

Beitragvon mitch » Donnerstag 28. September 2006, 13:22

Danke gerold so hats geklappt!

mfg mitch :)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder