IMP_Basic_Smime::_init PHP Method

_init() protected method

protected _init ( )
    protected function _init()
    {
        global $injector, $notification;
        $this->_smime = $injector->getInstance('IMP_Smime');
        /* Run through the action handlers */
        switch ($this->vars->actionID) {
            case 'import_public_key':
                $this->_importKeyDialog('public');
                break;
            case 'process_import_public_key':
                try {
                    $publicKey = $this->_getImportKey('upload_key', $this->vars->import_key);
                    /* Add the public key to the storage system. */
                    $this->_smime->addPublicKey($publicKey);
                    $notification->push(_("S/MIME public key successfully added."), 'horde.success');
                    $this->_reloadWindow();
                } catch (Horde_Browser_Exception $e) {
                    $notification->push(_("No S/MIME public key imported."), 'horde.error');
                } catch (Horde_Exception $e) {
                    $notification->push($e);
                }
                $this->vars->actionID = 'import_public_key';
                $this->_importKeyDialog('public');
                break;
            case 'view_public_key':
            case 'info_public_key':
                try {
                    $key = $this->_smime->getPublicKey($this->vars->email);
                } catch (Horde_Exception $e) {
                    $key = $e->getMessage();
                }
                if ($this->vars->actionID == 'view_public_key') {
                    $this->_textWindowOutput('S/MIME Public Key', $key);
                }
                $this->_printCertInfo($key);
                break;
            case 'view_personal_public_key':
            case 'view_personal_public_sign_key':
                $this->_textWindowOutput('S/MIME Personal Public Key', $this->_smime->getPersonalPublicKey($this->vars->actionID == 'view_personal_public_sign_key'));
                break;
            case 'info_personal_public_key':
            case 'info_personal_public_sign_key':
                $this->_printCertInfo($this->_smime->getPersonalPublicKey($this->vars->actionID == 'info_personal_public_sign_key'));
                break;
            case 'view_personal_private_key':
            case 'view_personal_private_sign_key':
                $this->_textWindowOutput('S/MIME Personal Private Key', $this->_smime->getPersonalPrivateKey($this->vars->actionID == 'view_personal_private_sign_key'));
                break;
            case 'import_personal_certs':
                $this->_importKeyDialog('personal');
                break;
            case 'process_import_personal_certs':
                $reload = false;
                $pkcs12_2nd = false;
                try {
                    $pkcs12 = $this->_getImportKey('upload_key');
                    $this->_smime->addFromPKCS12($pkcs12, $this->vars->upload_key_pass, $this->vars->upload_key_pk_pass);
                    $notification->push(_("S/MIME Public/Private Keypair successfully added."), 'horde.success');
                    if ($pkcs12_2nd = $this->_getSecondaryKey()) {
                        $this->_smime->addFromPKCS12($pkcs12, $this->vars->upload_key_pass2, $this->vars->upload_key_pk_pass2, true);
                        $notification->push(_("Secondary S/MIME Public/Private Keypair successfully added."), 'horde.success');
                    }
                    $reload = true;
                } catch (Horde_Browser_Exception $e) {
                    if ($e->getCode() != UPLOAD_ERR_NO_FILE || !($pkcs12_2nd = $this->_getSecondaryKey())) {
                        $notification->push(_("Personal S/MIME certificates NOT imported."), 'horde.error');
                    }
                } catch (Horde_Exception $e) {
                    $notification->push(_("Personal S/MIME certificates NOT imported: ") . $e->getMessage(), 'horde.error');
                }
                if (!$reload && ($pkcs12_2nd || ($pkcs12_2nd = $this->_getSecondaryKey()))) {
                    if (!$this->_smime->getPersonalPublicKey()) {
                        $notification->push(_("Cannot import secondary personal S/MIME certificates without primary certificates."), 'horde.error');
                    } else {
                        try {
                            $this->_smime->addFromPKCS12($pkcs12_2nd, $this->vars->upload_key_pass2, $this->vars->upload_key_pk_pass2, true);
                            $notification->push(_("Secondary S/MIME Public/Private Keypair successfully added."), 'horde.success');
                            $reload = true;
                        } catch (Horde_Exception $e) {
                            $notification->push(_("Personal S/MIME certificates NOT imported: ") . $e->getMessage(), 'horde.error');
                        }
                    }
                }
                if ($reload) {
                    $this->_reloadWindow();
                }
                $this->vars->actionID = 'import_personal_certs';
                $this->_importKeyDialog('personal');
                break;
        }
    }