Commit 670ca852 authored by Stefan Busemann's avatar Stefan Busemann
Browse files

Merge branch 'develop' into 6-add-t3omy-extension

* develop:
  [TASK] Update email templates
  [Add] second confirmation mail
  [TASK] Add message page
  [TASK] include constants
  [TASK] Add TS Konfiguration
  [TASK] Add text for email templates
  [TASK] Add local templates
  [TASK] Add Base configuration
  Changes deployment to right server
  Adds .gitignore and configuration for local development
  Adds configuration for deployment
  Changes femanager to use branch develop
  Use 8.7.x as TYPO3 CMS core
  Removes certification git repo from composer.json

# Conflicts:
#	html/typo3conf/ext/t3omy/Configuration/TypoScript/femanager.txt
#	html/typo3conf/ext/t3omy/Resources/Private/Templates/Femanager/New/New.html
parents f7f606cd 1df4d23c
Pipeline #1442 passed with stages
in 4 minutes and 13 seconds
bin
vendor
typo3_src
composer.lock
html/index.php
html/typo3
html/fileadmin/
html/typo3conf/ext/*
!html/typo3conf/ext/t3omy/
html/typo3conf/AdditionalConfiguration.php
html/typo3conf/deprecation_*
html/typo3conf/ENABLE_INSTALL_TOOL
html/typo3conf/PackageStates.php
html/typo3conf/l10n
html/typo3temp/
html/uploads/
variables:
GIT_STRATEGY: "none"
GIT_SSL_NO_VERIFY: "true"
before_script:
- apk add bash --no-cache
stages:
- dump
- build
- layout
- deploy
build:
stage: build
image: composer
variables:
GIT_STRATEGY: "clone"
GIT_SUBMODULE_STRATEGY: "recursive"
script:
- composer config store-auths false
- composer config http-basic.git-t3o.typo3.org gitlab-ci-token ${CI_BUILD_TOKEN}
- composer install
artifacts:
paths:
- ./
expire_in: '1h'
except:
- assets
layout:
stage: layout
image: node:7
before_script:
- cd html/typo3conf/ext/t3olayout/Build
script:
- npm install
- npm run build
artifacts:
paths:
- ./
expire_in: '7d'
dependencies:
- build
except:
- assets
.deploy-template: &deploy_template
stage: deploy
before_script:
- apk add openssh-client bash --no-cache
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY_STAGE" | ssh-add -
- echo "$SSH_PRIVATE_KEY_PRODUCTION" | ssh-add -
- ssh-keyscan -p 22191 my-stage.typo3.org >> /root/.ssh/known_hosts
- ssh-keyscan -p 22193 my.typo3.org >> /root/.ssh/known_hosts
script:
- VERSION=4.0.0-alpine ./.gitlab-ci/scripts/deployer.sh -f/src/.gitlab-ci/deployer/deploy.php deploy ${CI_BUILD_REF_NAME}
when: manual
dependencies:
- layout
except:
- assets
deploy-master:
<<: *deploy_template
environment:
name: master
url: https://my.typo3.org/
only:
- master
deploy-develop:
<<: *deploy_template
environment:
name: develop
url: https://my-stage.typo3.org/
only:
- develop
dump-assets:
<<: *deploy_template
stage: dump
image: alpine:3.5
artifacts:
paths:
- ./assets/
expire_in: '3d'
script:
- apk add rsync --no-cache
- rsync -ah -e "ssh -p 22191" my@my-stage.typo3.org:ci/shared/ ./assets/
- ssh -p22191 my@my-stage.typo3.org "mysqldump -u${STAGE_DATABASE_USER} -p${STAGE_DATABASE_PASSWORD} -h127.0.0.1 ${STAGE_DATABASE_DB} | gzip -9 -c" > ./assets/db.sql.gz
dependencies:
when:
tags:
- proxy
only:
- assets
except:
<?php
namespace Deployer;
require_once '/composer/vendor/deployer/deployer/recipe/common.php';
require_once '/composer/vendor/deployer/recipes/rsync.php';
$sharedDirectories = [
'html/fileadmin',
'html/uploads',
'html/.well-known'
];
set('shared_dirs', $sharedDirectories);
$sharedFiles = [
'html/typo3conf/AdditionalConfiguration.php',
];
set('shared_files', $sharedFiles);
$writeableDirectories = [
'html/typo3temp',
'html/fileadmin',
'html/uploads'
];
set('writable_dirs', $writeableDirectories);
$exclude = [
'.gitignore',
'.htaccess',
'.git',
'Readme.rst',
'Readme.txt',
'Upgrading.rst',
'Upgrading.txt',
'README',
'*.example',
'AdditionalConfiguration.sample.php'
];
set('rsync', [
'exclude' => array_merge($sharedDirectories, $sharedFiles, $exclude),
'exclude-file' => false,
'include' => [],
'include-file' => false,
'filter' => [],
'filter-file' => false,
'filter-perdir' => false,
'flags' => 'avz',
'options' => ['delete'],
'timeout' => 300
]);
set('rsync_src', '/src/');
set('keep_releases', 10);
serverList('/src/.gitlab-ci/deployer/servers.yml');
task('typo3', function () {
run('cd {{release_path}} && /opt/php/php70/bin/php bin/typo3cms install:generatepackagestates 0 1');
run('cd {{release_path}} && /opt/php/php70/bin/php bin/typo3cms database:updateschema');
run('cd {{release_path}} && /opt/php/php70/bin/php bin/typo3cms language:update');
run('cd {{release_path}} && /opt/php/php70/bin/php bin/typo3cms install:fixfolderstructure');
run('cd {{release_path}} && /opt/php/php70/bin/php bin/typo3cms cache:flush');
});
task('deploy', [
'deploy:prepare',
'deploy:release',
'rsync:warmup',
'rsync',
'deploy:shared',
'deploy:writable',
'deploy:symlink',
'cleanup',
'typo3'
]);
master:
host: my.typo3.org
port: 22193
user: my
forward_agent: true
deploy_path: ~/ci
develop:
host: my-stage.typo3.org
port: 22191
user: mystage
forward_agent: true
deploy_path: ~/ci/
Subproject commit 57323530b0771c5575efb38d64d1bf117716ebf5
[submodule ".gitlab-ci/scripts"]
path = .gitlab-ci/scripts
url = https://github.com/torvitas/docker-scripts.git
......@@ -21,10 +21,6 @@
"type": "vcs",
"url": "https://git-t3o.typo3.org/t3o/t3olayout.git"
},
{
"type": "vcs",
"url": "https://git-t3o.typo3.org/t3o/t3org-certifications.git"
},
{
"type": "vcs",
"url": "https://git-t3o.typo3.org/t3o/t3o_slack.git"
......@@ -35,13 +31,13 @@
}
],
"require": {
"typo3/cms": "8.7.1",
"typo3/cms": "^8.7",
"helhum/typo3-console": "^4.2",
"dmitryd/typo3-realurl": "^2.1",
"t3o/t3o_slack": "dev-master",
"t3o/t3olayout": "dev-develop",
"t3o/t3o_ldap":"dev-master",
"in2code/femanager": "dev-feature/compat8"
"in2code/femanager": "dev-develop"
},
"config": {
"bin-dir": "bin"
......
......@@ -3,29 +3,46 @@ return [
'BE' => [
'debug' => true,
'explicitADmode' => 'explicitAllow',
'installToolPassword' => '$pbkdf2-sha256$25000$/UpVUbDeE0Og9QSw6VYOAA$BFRJJlIe8zv9q2D0P/tXavimnAyvvqUiwvMpBJWgjZA',
'loginSecurityLevel' => 'rsa',
'installToolPassword' => '$pbkdf2-sha256$25000$oRS5QrY6LY0VQWgAxx5hcQ$mM7JqvMgnEfY1FtIW6Ngcj7mJqUNto4kBNJmRv0gUFk',
'loginSecurityLevel' => 'normal',
],
'DB' => [
'Connections' => [
'Default' => [
'charset' => 'utf8',
'dbname' => 'dev_my_t3o',
'dbname' => 't3o',
'driver' => 'mysqli',
'host' => '127.0.0.1',
'password' => 'root',
'host' => 'my-db',
'password' => 'k6mdcMp0MATlzKAE1RW6qFmmilqt2HNkQhbVgztu',
'port' => 3306,
'user' => 'root',
'user' => 't3o',
],
],
],
'EXT' => [
'extConf' => [
'backend' => 'a:5:{s:9:"loginLogo";s:0:"";s:19:"loginHighlightColor";s:0:"";s:20:"loginBackgroundImage";s:0:"";s:11:"backendLogo";s:0:"";s:14:"backendFavicon";s:0:"";}',
'belog' => 'a:0:{}',
'beuser' => 'a:0:{}',
'documentation' => 'a:0:{}',
'extensionmanager' => 'a:2:{s:21:"automaticInstallation";s:1:"1";s:11:"offlineMode";s:1:"0";}',
'felogin' => 'a:0:{}',
'femanager' => 'a:2:{s:13:"disableModule";s:1:"0";s:10:"disableLog";s:1:"0";}',
'fluid_styled_content' => 'a:0:{}',
'ig_ldap_sso_auth' => 'a:18:{s:18:"checkConfiguration";s:1:"0";s:21:"throwExceptionAtLogin";s:1:"1";s:22:"forceLowerCaseUsername";s:1:"0";s:26:"enableBELDAPAuthentication";s:1:"0";s:17:"TYPO3BEGroupExist";s:1:"0";s:16:"TYPO3BEUserExist";s:1:"0";s:10:"BEfailsafe";s:1:"0";s:27:"TYPO3BEGroupsNotSynchronize";s:1:"0";s:12:"keepBEGroups";s:1:"0";s:11:"enableBESSO";s:1:"0";s:26:"enableFELDAPAuthentication";s:1:"0";s:31:"TYPO3FEDeleteUserIfNoLDAPGroups";s:1:"0";s:32:"TYPO3FEDeleteUserIfNoTYPO3Groups";s:1:"0";s:17:"TYPO3FEGroupExist";s:1:"0";s:16:"TYPO3FEUserExist";s:1:"0";s:27:"TYPO3FEGroupsNotSynchronize";s:1:"0";s:12:"keepFEGroups";s:1:"0";s:11:"enableFESSO";s:1:"0";}',
'info' => 'a:0:{}',
'info_pagetsconfig' => 'a:0:{}',
'recycler' => 'a:0:{}',
'rsaauth' => 'a:1:{s:18:"temporaryDirectory";s:0:"";}',
'rte_ckeditor' => 'a:0:{}',
'saltedpasswords' => 'a:2:{s:3:"BE.";a:4:{s:21:"saltedPWHashingMethod";s:41:"TYPO3\\CMS\\Saltedpasswords\\Salt\\Pbkdf2Salt";s:11:"forceSalted";i:0;s:15:"onlyAuthService";i:0;s:12:"updatePasswd";i:1;}s:3:"FE.";a:5:{s:7:"enabled";i:1;s:21:"saltedPWHashingMethod";s:41:"TYPO3\\CMS\\Saltedpasswords\\Salt\\Pbkdf2Salt";s:11:"forceSalted";i:0;s:15:"onlyAuthService";i:0;s:12:"updatePasswd";i:1;}}',
'scheduler' => 'a:4:{s:11:"maxLifetime";s:4:"1440";s:11:"enableBELog";s:1:"1";s:15:"showSampleTasks";s:1:"1";s:11:"useAtdaemon";s:1:"0";}',
'setup' => 'a:0:{}',
't3o_ldap' => 'a:8:{s:29:"enableExternalPasswordUpdates";s:1:"0";s:25:"enableLdapPasswordUpdates";s:1:"0";s:10:"ldapServer";s:9:"127.0.0.1";s:14:"ldapServerPort";s:3:"389";s:19:"ldapProtocolVersion";s:1:"3";s:10:"ldapBindDn";s:0:"";s:16:"ldapBindPassword";s:0:"";s:28:"ldapBaseDnForPasswordChanges";s:0:"";}',
't3o_slack' => 'a:0:{}',
't3olayout' => 'a:0:{}',
't3omy' => 'a:0:{}',
'tstemplate' => 'a:0:{}',
],
],
'FE' => [
......@@ -34,13 +51,13 @@ return [
],
'GFX' => [
'jpg_quality' => '80',
'processor' => 'GraphicsMagick',
'processor' => 'ImageMagick',
'processor_allowTemporaryMasksAsPng' => false,
'processor_colorspace' => 'RGB',
'processor_effects' => -1,
'processor_colorspace' => 'sRGB',
'processor_effects' => 1,
'processor_enabled' => true,
'processor_path' => '/usr/local/bin/',
'processor_path_lzw' => '/usr/local/bin/',
'processor_path' => '/usr/bin/',
'processor_path_lzw' => '/usr/bin/',
],
'MAIL' => [
'transport' => 'sendmail',
......@@ -68,7 +85,7 @@ return [
'devIPmask' => '*',
'displayErrors' => 1,
'enableDeprecationLog' => 'file',
'encryptionKey' => '4acad5ab533e1e8a3abc8806d321dc26bc1840e676eb2d8c7069578cde9fd93eb9714fb55f951a8ffe02a6192c0fe430',
'encryptionKey' => 'db379ac7cd9a141040b6b9eca3fd574c0513c1200bdf1af600794d434a682b7ff170107496d1f0445d432d0e7d2a74f5',
'exceptionalErrors' => 28674,
'isInitialDatabaseImportDone' => true,
'isInitialInstallationInProgress' => false,
......
plugin.tx_femanager {
view {
layoutRootPaths.2 = EXT:t3omy/Resources/Private/Layouts/Femanager/
templateRootPaths.3 = EXT:t3omy/Resources/Private/Templates/Femanager/
layoutRootPaths.3 = EXT:t3omy/Resources/Private/Templates/Femanager/
}
settings {
new {
......@@ -8,7 +9,14 @@ plugin.tx_femanager {
terms.required = 1
name.required = 1
}
requestRedirect = TEXT
requestRedirect {
parameter = {$plugin.tx_t3omy.page.createMessage}
returnLast = url
}
}
}
}
page.includeJSFooter.femanagerValidation >
<f:layout name="Email" />
Email / CreateUserConfirmation
This mail will be send to the user, to confirm his new profile.
It's only activated, if the user-confirm-checkbox in the flexform setting was checked.
Available variables:
{user} User Object
{hash} Hash to ensure authentication of link
<f:section name="main">
Hi {user.username},
thank you for signing up! Use the link below activate your account.
By activating your account you will accept our terms and conditions:
### Personal data protection ###
The TYPO3 Association is committed to user privacy. For statistical reasons we collect the following technical data:
* type of browser
* type of operating system
* referrer Url
* time and date of the use of the website
* your IP address
This data is collected anonymously and will be kept separately from private user data, you might have to give us at
this website.
### Private user data ###
In some cases we need to collect your private user data, to process certain information on this website This data will
not be give to any other third party without your explicit written notice. In some cases we might be forced to give the
data to official government agencies.
### Exposure of your profile and online activities ###
Please be aware that by using our mailinglists, forums and services your profile and activities will be availabe to the
general public thru search engines and archives. As we also require you to use your real name while using the ressources
we will not accept any deletion requests for content created by you.
All terms & conditions: https://my.typo3.org?id={settings.page.termsAndConditions}
##################################################################
Confirm your account
##################################################################
<f:link.action action="confirmCreateRequest" controller="New" absolute="1" arguments="{user:user, hash:hash, status:'userConfirmation'}">
<f:translate key="emailCreateUserConfirmationLinkConfirm" />
</f:link.action>
Kind regards,
The TYPO3.org Team
------------------------------------------------------------------
TYPO3 Association, Sihlbruggstrasse 105, CH-6340 Baar, Switzerland
In case that you did not request a user account, you can delete your account:
<f:link.action action="confirmCreateRequest" controller="New" absolute="1" arguments="{user:user, hash:hash, status:'userConfirmationRefused'}">
<f:translate key="emailCreateUserConfirmationLinkConfirmRefused" />
</f:link.action>
</f:section>
<f:layout name="Email" />
Email / CreateUserNotify
This mail will be send to the user, to inform him about his new profile.
It's always activated, even if the admin confirmation and/or the double-opt-in is activated.
Available variables:
{user} User Object
<f:section name="main">
Dear {user.name}
thank you for being a part of the TYPO3 community. Your account is now activated.
Please read our code of conduct: https://www.typo3.org/index.php?id=66
Get started with using TYPO3: https://www.typo3.org/index.php?id=23
Contribute and Get Involved in TYPO3: https://www.typo3.org/index.php?id=70
The TYPO3.org Team
------------------------------------------------------------------
TYPO3 Association, Sihlbruggstrasse 105, CH-6340 Baar, Switzerland
------------------------------------------------------------------
</f:section>
<f:layout name="Email" />
Email / CreateUserNotify
This mail will be send to the user, to inform him about his new profile.
It's always activated, even if the admin confirmation and/or the double-opt-in is activated.
Available variables:
{user} User Object
<f:section name="main">
Dear typo3.org user,
we have received your request for a typo3.org login account.
Due to an immensive amount of spam subscriptions, we are currently approving new accounts after manual verification.
!!! Respond to this e-mail within the next 3 days and confirm that this account will be used with best intentions. !!!
You confirm that the account will not be used for spamming any of our services with unrelated or advertising content.
Thanks for your reply.Kind regards,
The TYPO3.org Team
------------------------------------------------------------------
TYPO3 Association, Sihlbruggstrasse 105, CH-6340 Baar, Switzerland
------------------------------------------------------------------
Given data:
Username: {user.username}
E-Mail: {user.email}
</f:section>
{namespace femanager=In2code\Femanager\ViewHelpers}
<f:layout name="Default"/>
User / New
Available variables:
{user}
{allUserGroups}
<f:section name="main">
<section class="container">
<f:render partial="Misc/FlashMessages" arguments="{_all}"/>
<f:render partial="Misc/FormErrors" arguments="{object:User}"/>
<div class="femanager_new">
<f:form name="user" object="{user}" action="create"
class="form-horizontal {f:if(condition:'{settings.new.validation._enable.client}',then:'feManagerValidation',else:'')}">
<fieldset>
<legend>
<f:translate key="titleCreateProfile"/>
</legend>
<f:if condition="{settings.new.fields}">
<f:then>
<f:comment>
If some fields are selected in the flexform
</f:comment>
<f:for each="{femanager:misc.explode(string:'{settings.new.fields}')}" as="field">
<f:render partial="Fields/{femanager:misc.upper(string:'{field}')}" arguments="{_all}"/>
</f:for>
<f:render partial="Fields/SubmitCreate" arguments="{_all}"/>
</f:then>
<f:else>
<f:comment>
If no fields are selected in the flexform => show all
</f:comment>
<f:render partial="Fields/Username" arguments="{_all}"/>
<f:render partial="Fields/Password" arguments="{_all}"/>
<f:render partial="Fields/Title" arguments="{_all}"/>
<f:render partial="Fields/Name" arguments="{_all}"/>
<f:render partial="Fields/FirstName" arguments="{_all}"/>
<f:render partial="Fields/MiddleName" arguments="{_all}"/>
<f:render partial="Fields/LastName" arguments="{_all}"/>
<f:render partial="Fields/Gender" arguments="{_all}"/>
<f:render partial="Fields/DateOfBirth" arguments="{_all}"/>
<f:render partial="Fields/Company" arguments="{_all}"/>
<f:render partial="Fields/Www" arguments="{_all}"/>
<f:render partial="Fields/Email" arguments="{_all}"/>
<f:render partial="Fields/Telephone" arguments="{_all}"/>
<f:render partial="Fields/Fax" arguments="{_all}"/>
<f:render partial="Fields/Address" arguments="{_all}"/>
<f:render partial="Fields/Zip" arguments="{_all}"/>
<f:render partial="Fields/City" arguments="{_all}"/>
<f:render partial="Fields/Country" arguments="{_all}"/>
<f:render partial="Fields/Image" arguments="{_all}"/>
<f:render partial="Fields/Usergroup" arguments="{_all}"/>
<f:render partial="Fields/Terms" arguments="{_all}"/>
<f:if condition="{femanager:Misc.CaptchaEnabled(settings:'{settings}')}">
<f:render partial="Fields/Captcha" arguments="{_all}"/>
</f:if>
<f:render partial="Fields/SubmitCreate" arguments="{_all}"/>
</f:else>
</f:if>
</fieldset>
</f:form>
</div>
</section>
</f:section>
......@@ -2,3 +2,22 @@
#### DEPENDENCIES ####
######################
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:femanager/Configuration/TypoScript/Main/constants.txt">
#########################
#### local constants ####
#########################
plugin.tx_femanager.settings.adminName = TYPO3 Association / typo3.org Administration
plugin.tx_femanager.settings.adminEmail = info@typo3.org
plugin.tx_femanager.persistence.storagePid = 7
###############
### PageIds ###
###############
# cat=T3Omy Page-Settings/page/001; type=string; label = Page with message, after create a profile
tx_t3omy.page.createMessage = 1
# cat=T3Omy Page-Settings/page/002; type=string; label = Page with message, after confirmed his email and Admin approvement is needed
tx_t3omy.page.adminConfirmMessage =
# cat=T3Omy Page-Settings/page/003; type=string; label = Page with message, after profile was activated
tx_t3omy.page.activateMessage =
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment