# -*- coding: utf8 -*-
# $Id: prvPseudonym_signon.py 568 2007-05-01 18:02:20Z ahatzis $
# pyswarm - Model-driven development of Python applications
# -------------------------------------------------------------------------
#
# Copyright (C) 2006-2007 Free Software Foundation Europe e.V.
#
# The main author of pyswarm is Anastasios Hatzis, though contributions
# are welcome from others. An author list can be found in the file AUTHORS.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# The licensor of pyswarm is the Free Software Foundation Europe
# (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zrich,
# Switzerland, email:ftf@fsfeurope.org.
#
# -------------------------------------------------------------------------
# http://pyswarm.sourceforge.net/
# =========================================================================
# import mod_python specific modules:
from mod_python import psp
from serve.Exceptions import *
# import the container base-class:
from webUI.wuiContainer import *
from webUI.wuiFeedbackOK import *
from webUI.wuiFeedbackError import *
from webUI.wuiFeedbackWarning import *
from webUI.wuiFeedbackNotice import *
from webUI.wuiHidden import *
from webUI.wuiFieldset import *
from webUI.wuiSubmit import *
from webUI.wuiButton import *
from webUI.wuiEntry import *
from webUI.wuiPassword import *
class PrvPseudonym_signon(WuiContainer):
"""TODO: doc string"""
def __init__(self, envoy, parent, uid, entity, oOp):
"""TODO: doc string"""
super(PrvPseudonym_signon, self).__init__(envoy, parent, uid)
# And add hidden form fields to the child
#self.addChild(wuiHidden(self.envoy(), self, uid='sso', value=self.envoy().strSSO()))
self.addChild(WuiHidden(self.envoy(), self, uid=self.parent().shortParamName, value=entity.strEID(oOp)))
self.addChild(WuiHidden(self.envoy(), self, uid='action', value='execute'))
dictMemberValue = {}
if self.envoy().storage().firstParamValueByName('action')=='execute':
# editable members only are readable from HTTP parameter field storage!
# non-editable members are always read from business logic.
dictMemberValue[0] = self.envoy().storage().firstParamValueByName('login')
dictMemberValue[1] = self.envoy().storage().firstParamValueByName('password')
# eTicket = entity.signOnPseudonym(oOp, dictMemberValue[0], dictMemberValue[1], self.envoy().req().connection.remote_ip, self.envoy().existingCookieIdentifier())
#
# self.envoy().successPseudoSignOn(eTicket, oOp)
# oOp.commit()
# self.escalateFeedback(wuiFeedbackOK(envoy, 'feedback', 'OK. Daten wurden gendert.'), 'http://localhost/pageInetAddress.html/show?inetEID=2')
try:
eTicket = entity.signOnPseudonym(oOp, dictMemberValue[0], dictMemberValue[1], self.envoy().req().connection.remote_ip, self.envoy().existingCookieIdentifier())
self.envoy().successPseudoSignOn(eTicket, oOp)
oOp.commit()
self.escalateFeedback(WuiFeedbackOK(envoy, 'feedback', 'Data has been changed.'), 'http://localhost/pageInetAddress.html/show?inetEID=2')
except EntityLogicError, strError:
self.addChild(WuiFeedbackError(envoy, 'feedback', strError.errorMessage()))
#self.escalateFeedback(wuiFeedbackError(envoy, 'feedback', 'FEHLER. Anmeldung gescheitert'), 'http://localhost/pagePseudonym.html/signon?zoneEID=1&login='+dictMemberValue[0] )
self.addChild(WuiEntry(self.envoy(), self, uid='login', label='email address', bubble='More information on login email address', style=None, link=None, value=dictMemberValue[0], visible=True, editable=True, required=False))
self.addChild(WuiPassword(self.envoy(), self, uid='password', label='Password', bubble='More information on password', style=None, link=None, value=dictMemberValue[1], visible=True, editable=True, required=False))
self.addChild(WuiSubmit(self.envoy(), self, uid='save', label='Sign on securely', bubble='Sign on securely', style=None, link='../pageInetAddress.html/change'))
self.addChild(WuiButton(self.envoy(), self, uid='password_forgotten', label='Password forgotten?', bubble='Password forgotten?', style=None, link='../pageInetAddress.html/show'))
self.addChild(WuiButton(self.envoy(), self, uid='EmailAddress_changed', label='eMail address changed?', bubble='eMail address changed?', style=None, link='../pageInetAddress.html/show'))
self.addChild(WuiButton(self.envoy(), self, uid='more_help', label='Weitere Hilfe', bubble='Weitere Hilfe', style=None, link='../pageInetAddress.html/show'))
except ServiceNotAvailableError, strError:
self.addChild(WuiFeedbackError(envoy, 'feedback', 'Fehler: '+strError.errorMessage()))
#self.escalateFeedback(wuiFeedbackError(envoy, 'feedback', 'FEHLER. Anmeldung gescheitert'), 'http://localhost/pagePseudonym.html/signon?zoneEID=1&login='+dictMemberValue[0] )
self.addChild(WuiEntry(self.envoy(), self, uid='login', label='eMail-Adresse', bubble='More information on login email address', style=None, link=None, value=dictMemberValue[0], visible=True, editable=True, required=False))
self.addChild(WuiPassword(self.envoy(), self, uid='password', label='Password', bubble='More information on password', style=None, link=None, value=dictMemberValue[1], visible=True, editable=True, required=False))
self.addChild(WuiSubmit(self.envoy(), self, uid='save', label='Sign on securely', bubble='Sign on securely', style=None, link='../pageInetAddress.html/change'))
self.addChild(WuiButton(self.envoy(), self, uid='password_forgotten', label='Password forgotten?', bubble='Password forgotten?', style=None, link='../pageInetAddress.html/show'))
self.addChild(WuiButton(self.envoy(), self, uid='EmailAddress_changed', label='eMail address changed?', bubble='eMail address changed?', style=None, link='../pageInetAddress.html/show'))
self.addChild(WuiButton(self.envoy(), self, uid='more_help', label='More help', bubble='More help', style=None, link='../pageInetAddress.html/show'))
else:
# # user has to put in values for the desired action, thus member values have to be read from business logic.
# dictMemberValue[0] = entity.strEID(oOp)
# dictMemberValue[1] = entity.getUrl(oOp)
# #self.escalateFeedback(wuiFeedbackWarning(envoy, 'feedback', 'Warnung. Daten knnten wirklich gendert werden.'), 'http://localhost/pageInetAddress.html/change?sso=xxx&inetEID=2')
self.addChild(WuiFeedbackNotice(envoy, 'feedback', 'Nothing happened yet'))
self.addChild(WuiEntry(self.envoy(), self, uid='login', label='email address', bubble='More information on login email address', style=None, link=None, value='', visible=True, editable=True, required=False))
self.addChild(WuiPassword(self.envoy(), self, uid='password', label='Password', bubble='More information on password', style=None, link=None, value='', visible=True, editable=True, required=False))
self.addChild(WuiSubmit(self.envoy(), self, uid='save', label='Sign on securely', bubble='Sign on securely', style=None, link='../pageInetAddress.html/change'))
self.addChild(WuiButton(self.envoy(), self, uid='password_forgotten', label='Password forgotten?', bubble='Password forgotten?', style=None, link='../pageInetAddress.html/show'))
self.addChild(WuiButton(self.envoy(), self, uid='EmailAddress_changed', label='eMail address changed?', bubble='eMail address changed?', style=None, link='../pageInetAddress.html/show'))
self.addChild(WuiButton(self.envoy(), self, uid='more_help', label='More help', bubble='More help', style=None, link='../pageInetAddress.html/show'))
def run(self):
for wid in self.getChildren():
wid.run()
dictVars = {'eid':self.getChild(self.parent().shortParamName).getOutput(),
'action':self.getChild('action').getOutput(),
'login':self.getChild('login').getOutput(),
'password':self.getChild('password').getOutput(),
'save':self.getChild('save').getOutput(),
'password_forgotten':self.getChild('password_forgotten').getOutput(),
'EmailAddress_changed':self.getChild('EmailAddress_changed').getOutput(),
'more_help':self.getChild('more_help').getOutput(),
'feedback':self.getChild('feedback').getOutput(),
}
self.setOutput(psp.PSP(self.envoy().req(), filename='../psp/signon_form.psp', vars=dictVars))
|