示例#1
0
    def handleGetToken(self, action):
        data, errors = self.extractData()
        credentials = dict(login=data.get('max_app_username'),
                           password=data.get('max_app_password'))
        from upc.maxui.max import getToken
        logger = logging.getLogger('upc.maxui')

        #Authenticat to max as operations user
        maxcli = MaxClient(data.get('max_server'), auth_method="basic")
        maxcli.setBasicAuth(data.get('max_ops_username'), data.get('max_ops_password'))

        #Add App user to max
        result = maxcli.addUser(credentials['login'], displayName=data.get('max_app_displayname'))
        if not result:
            logger.info('Error creating MAX user for user: %s' % credentials['login'])
            IStatusMessage(self.request).addStatusMessage(_(u"An error occurred during creation of max user"), "info")
        else:
            logger.info('MAX Agent user %s created' % credentials['login'])
            # Request token for app user
            oauth_token = getToken(credentials)
            registry = queryUtility(IRegistry)
            settings = registry.forInterface(IMAXUISettings, check=False)
            settings.max_app_token = str(oauth_token)

            #Subscribe app user to max
            club_url = getToolByName(self.context, "portal_url").getPortalObject().absolute_url()
            maxcli.setActor(credentials['login'])
            maxcli.subscribe(club_url)

            logger.info('MAX user %s subscribed to %s' % (credentials['login'], club_url))
            IStatusMessage(self.request).addStatusMessage(_(u"Token for MAX application user saved"), "info")
示例#2
0
 def handleSave(self, action):
     data, errors = self.extractData()
     if errors:
         self.status = self.formErrorsMessage
         return
     changes = self.applyChanges(data)
     IStatusMessage(self.request).addStatusMessage(_(u"Changes saved"),
                                                   "info")
     self.context.REQUEST.RESPONSE.redirect("@@maxui-settings")
示例#3
0
 def handleCancel(self, action):
     IStatusMessage(self.request).addStatusMessage(_(u"Edit cancelled"),
                                                   "info")
     self.request.response.redirect("%s/%s" % (self.context.absolute_url(),
                                               self.control_panel_view))