Seite 1 von 1

Status abfrage eines Mitgliedes..ob Admin, moderator etc

Verfasst: Dienstag 26. September 2006, 15:12
von mitch
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

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

Verfasst: Dienstag 26. September 2006, 20:17
von gerold
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
:-)

Verfasst: Mittwoch 27. September 2006, 08:50
von mitch
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:

Verfasst: Mittwoch 27. September 2006, 15:28
von mitch
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

Verfasst: Mittwoch 27. September 2006, 18:12
von gerold
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
:-)

Verfasst: Donnerstag 28. September 2006, 13:22
von mitch
Danke gerold so hats geklappt!

mfg mitch :)