OAuth integration
This commit is contained in:
parent
7a98daf886
commit
10bf90bd93
11
Gruntfile.js
11
Gruntfile.js
|
@ -52,7 +52,14 @@ module.exports = function (grunt) {
|
|||
src: ['*.css', '!*.min.css'],
|
||||
dest: 'build/dist/css',
|
||||
ext: '.min.css'
|
||||
}]
|
||||
},
|
||||
{
|
||||
expand: true,
|
||||
cwd: 'build/css',
|
||||
src: ['*.css', '!*.min.css'],
|
||||
dest: 'build/dist/css',
|
||||
ext: '.min.css'
|
||||
}]
|
||||
}
|
||||
},
|
||||
jshint: {
|
||||
|
@ -134,7 +141,7 @@ module.exports = function (grunt) {
|
|||
'build/dist',
|
||||
'web/js/*.js',
|
||||
'web/css/*.css',
|
||||
'web/images/*.svg'
|
||||
'web/images/*'
|
||||
]
|
||||
});
|
||||
|
||||
|
|
|
@ -1,5 +1,23 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;
|
||||
|
||||
class AppCache extends HttpCache
|
||||
|
|
|
@ -1,13 +1,30 @@
|
|||
<?php
|
||||
|
||||
use Symfony\Component\HttpKernel\Kernel;
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
||||
use Symfony\Component\HttpKernel\Kernel;
|
||||
|
||||
class AppKernel extends Kernel
|
||||
{
|
||||
public function registerBundles()
|
||||
{
|
||||
|
||||
$bundles = [
|
||||
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
|
||||
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "@FOSUser/layout.html.twig" %}
|
||||
{% extends "base.html.twig" %}
|
||||
|
||||
{% block fos_user_content %}
|
||||
{% block body %}
|
||||
{% include "@FOSUser/Profile/edit_content.html.twig" %}
|
||||
{% endblock fos_user_content %}
|
||||
{% endblock body %}
|
||||
|
|
|
@ -1,8 +1,29 @@
|
|||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
{% if form.vars.errors is not empty %}
|
||||
<div class="uk-alert uk-alert-danger">
|
||||
{{ form_errors(form) }}
|
||||
|
||||
{{ form_start(form, { 'action': path('fos_user_profile_edit'), 'attr': { 'class': 'fos_user_profile_edit' } }) }}
|
||||
{{ form_widget(form) }}
|
||||
<div>
|
||||
<input type="submit" value="{{ 'profile.edit.submit'|trans }}" />
|
||||
</div>
|
||||
{% endif %}
|
||||
{{ form_start(form, { 'action': path('fos_user_profile_edit'), 'attr': { 'class': 'uk-form-horizontal fos_user_profile_edit' } }) }}
|
||||
{{ form_label(form.email) }}
|
||||
<div class="uk-form-controls uk-form-controls-text">
|
||||
{{ form_widget(form.email) }}
|
||||
</div>
|
||||
{{ form_label(form.name) }}
|
||||
<div class="uk-form-controls uk-form-controls-text">
|
||||
{{ form_widget(form.name) }}
|
||||
</div>
|
||||
{{ form_label(form.rsvp) }}
|
||||
<div class="uk-form-controls uk-form-controls-text">
|
||||
{{ form_widget(form.rsvp) }}
|
||||
</div>
|
||||
|
||||
<div class="uk-form-controls uk-margin-medium-top">
|
||||
<input type="submit" class="uk-button uk-button-large uk-width-1-1@s uk-width-1-3@m uk-align-right uk-button-primary" value="{{ 'profile.edit.submit'|trans }}" />
|
||||
</div>
|
||||
<div class="uk-form-controls">
|
||||
<a href="{{ url('fos_user_profile_show') }}" title="Cancel" class="uk-width-1-1@s uk-width-1-3@m uk-button uk-button-large uk-button-danger uk-align-right">Cancel</a>
|
||||
</div>
|
||||
{{ form_rest(form) }}
|
||||
{{ form_end(form) }}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "@FOSUser/layout.html.twig" %}
|
||||
{% extends "base.html.twig" %}
|
||||
|
||||
{% block fos_user_content %}
|
||||
{% block body %}
|
||||
{% include "@FOSUser/Profile/show_content.html.twig" %}
|
||||
{% endblock fos_user_content %}
|
||||
{% endblock body %}
|
||||
|
|
|
@ -1,6 +1,31 @@
|
|||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
{% trans_default_domain 'SikofittDoughnutweddingBundle' %}
|
||||
<h2 class="uk-width-1-1 uk-margin-medium-bottom uk-text-center">User Information</h2>
|
||||
|
||||
<div class="fos_user_user_show">
|
||||
<p>{{ 'profile.show.username'|trans }}: {{ user.username }}</p>
|
||||
<p>{{ 'profile.show.email'|trans }}: {{ user.email }}</p>
|
||||
</div>
|
||||
<div class="uk-width-1-1 uk-text-center uk-grid-divider uk-child-width-1-2" uk-grid>
|
||||
|
||||
<div><p class="uk-padding-small uk-text-right">{{ 'profile.name'|trans }}</p></div>
|
||||
<div><p class="uk-padding-small uk-text-left">{{ user.name }}</p></div>
|
||||
|
||||
<div><p class="uk-padding-small uk-text-right">{{ 'profile.email'|trans }}</p></div>
|
||||
<div><p class="uk-padding-small uk-text-left">{{ user.email }}</p></div>
|
||||
|
||||
<div><p class="uk-padding-small uk-text-right">{{ 'profile.rsvp'|trans }}</p></div>
|
||||
<div><p class="uk-padding-small uk-text-left">{% if user.rsvp is not null %}{{ user.rsvp.guests }}{% else %}0{% endif %}</p></div>
|
||||
<div class="uk-width-1-2@m uk-width-1-1@s uk-align-center uk-margin-small uk-grid-margin uk-first-column">
|
||||
<a href="{{ url('fos_user_profile_edit') }}" title="Edit profile" class="uk-button-large uk-button uk-button-primary uk-width-1-1">Edit Information</a></div>
|
||||
</div>
|
||||
<div class="uk-width-1-6@m uk-visible@m uk-margin-large-top uk-position-center-right">
|
||||
|
||||
<ul class="uk-iconnav uk-iconnav-vertical">
|
||||
<li>
|
||||
<a {% if user.facebookid is not null %} style="color:#0b97c4;" {% endif %}class="uk-align-left uk-text-center uk-login uk-login-facebook" href="{{ url("hwi_oauth_service_redirect", {service: "facebook"}) }}" uk-icon="icon: facebook; ratio:1.5"></a>
|
||||
</li>
|
||||
<li><a class="uk-align-left uk-text-center uk-login uk-login-google" href="{{ url("hwi_oauth_service_redirect", {service: "google"}) }}" uk-icon="icon: google; ratio:1.5"></a></li>
|
||||
<li><a class="uk-align-left uk-text-center uk-login uk-login-twitter" href="{{ url("hwi_oauth_service_redirect", {service: "twitter"}) }}" uk-icon="icon: twitter; ratio:1.5"></a></li>
|
||||
<li><a href="{{ url("hwi_oauth_service_redirect", {service: "yahoo"}) }}" class="uk-align-left uk-icon-image uk-align-center uk-login uk-login-yahoo"><img height="30" width="30" src="{{ asset('images/yahoo.svg') }}" uk-svg></a></li>
|
||||
<li><a href="{{ url("hwi_oauth_service_redirect", {service: "amazon"}) }}" class="uk-align-left uk-icon-image uk-align-center uk-login uk-login-amazon"><img height="30" width="30" src="{{ asset('images/amazon.svg') }}" uk-svg></a></li>
|
||||
|
||||
<li><a class="uk-align-left uk-text-center uk-login uk-login-instagram" href="{{ url("hwi_oauth_service_redirect", {service: "instagram"}) }}" uk-icon="icon: instagram; ratio:1.5"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="uk-margin-medium uk-width-1-1 uk-text-center">{{ 'profile.member_since'|trans({'%date%':user.created|date('l F jS, Y (h:i a)')}) }}</div>
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
{% extends "@FOSUser/layout.html.twig" %}
|
||||
{% extends "base.html.twig" %}
|
||||
|
||||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
|
||||
{% block fos_user_content %}
|
||||
<p>{{ 'registration.confirmed'|trans({'%username%': user.username}) }}</p>
|
||||
{% block body %}
|
||||
<p class="uk-text-lead uk-text-center">{{ 'registration.confirmed'|trans({'%username%': user.firstname }) }}</p>
|
||||
<p class="uk-text-large uk-text-center"><a href="{{ url('sikofitt_doughnutwedding_default_index') }}" title="Home page">Continue to the home page.</a></p>
|
||||
{% if targetUrl %}
|
||||
<p><a href="{{ targetUrl }}">{{ 'registration.back'|trans }}</a></p>
|
||||
<p class="uk-text-center"><a href="{{ targetUrl }}">{{ 'registration.back'|trans }}</a></p>
|
||||
{% endif %}
|
||||
{% endblock fos_user_content %}
|
||||
{% endblock body %}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<div class="uk-width-1-1">
|
||||
{{ form_errors(form) }}
|
||||
</div>
|
||||
{{ dump(app.session) }}
|
||||
{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register uk-form'}}) }}
|
||||
<fieldset class="uk-fieldset">
|
||||
<legend class="uk-legend">
|
||||
|
@ -14,43 +15,12 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="uk-margin">
|
||||
<div hidden>{{ form_label(form.username, 'Username', { 'label_attr':{'class':'uk-form-label'}}) }}</div>
|
||||
<div hidden>{{ form_label(form.name, 'Name', { 'label_attr':{'class':'uk-form-label'}}) }}</div>
|
||||
<div class="uk-form-controls uk-form-controls-text">
|
||||
{{ form_widget(form.username, { 'attr': {'placeholder':'Username', 'class':'uk-input uk-form-large uk-padding-small'} }) }}
|
||||
{{ form_widget(form.name, { 'attr': {'placeholder':'Name', 'class':'uk-input uk-form-large uk-padding-small'} }) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-margin">
|
||||
<div hidden>{{ form_label(form.first_name, 'First name', { 'label_attr':{'class':'uk-form-label'}}) }}</div>
|
||||
<div class="uk-form-controls uk-form-controls-text">
|
||||
{{ form_widget(form.first_name, { 'attr': {'placeholder':'First name', 'class':'uk-input uk-form-large uk-padding-small'} }) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-margin">
|
||||
<div hidden>{{ form_label(form.last_name, 'Last name', { 'label_attr':{'class':'uk-form-label'}}) }}</div>
|
||||
<div class="uk-form-controls uk-form-controls-text">
|
||||
{{ form_widget(form.last_name, { 'attr': {'placeholder':'Last name', 'class':'uk-input uk-input uk-form-large uk-padding-small'} }) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-grid" uk-grid>
|
||||
<div class="uk-width-2-3">
|
||||
{{ form_label(form.familyside) }}
|
||||
</div>
|
||||
<div class="uk-width-1-3">
|
||||
<div class="uk-form-controls uk-form-controls-text">
|
||||
{{ form_widget(form.familyside) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-margin uk-grid" uk-grid>
|
||||
<div class="uk-width-3-4 uk-width-2-3@m">
|
||||
{{ form_label(form.family) }}
|
||||
</div>
|
||||
<div class="uk-width-1-4@s uk-width-1-4 uk-width-1-3@m uk-form-controls">
|
||||
|
||||
{{ form_widget(form.family, { 'attr': {'class':'uk-checkbox'} }) }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-margin">
|
||||
<div hidden>{{ form_label(form.rsvp) }}</div>
|
||||
<div class="uk-form-controls uk-form-controls-text">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "@FOSUser/layout.html.twig" %}
|
||||
{% extends "base.html.twig" %}
|
||||
|
||||
{% block fos_user_content %}
|
||||
{% block body %}
|
||||
{% include "@FOSUser/Resetting/request_content.html.twig" %}
|
||||
{% endblock fos_user_content %}
|
||||
{% endblock body %}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "@FOSUser/layout.html.twig" %}
|
||||
{% extends "base.html.twig" %}
|
||||
|
||||
{% block fos_user_content %}
|
||||
{% block body %}
|
||||
{{ include('@FOSUser/Security/login_content.html.twig') }}
|
||||
{% endblock fos_user_content %}
|
||||
{% endblock body %}
|
||||
|
|
|
@ -4,19 +4,32 @@
|
|||
<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
|
||||
{% endif %}
|
||||
|
||||
<form action="{{ path("fos_user_security_check") }}" method="post">
|
||||
<form action="{{ path("fos_user_security_check") }}" method="post" class="uk-login-form uk-form uk-form-stacked">
|
||||
{% if csrf_token %}
|
||||
<input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
|
||||
{% endif %}
|
||||
<div class="uk-child-width-1-1@s uk-width-1-2@m uk-align-center uk-grid-collapse uk-grid uk-grid-stack" uk-grid>
|
||||
<div>
|
||||
<label class="uk-form-label uk-hidden" for="username">{{ 'security.login.username'|trans }}</label>
|
||||
<div class="uk-inline uk-width-1-1 uk-form-controls uk-form-controls-text">
|
||||
<span class="uk-form-icon" uk-icon="icon: user"></span>
|
||||
<input type="text" placeholder="Username or Email" class="uk-input uk-form-large" id="username" name="_username" value="{{ last_username }}" required="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label class="uk-form-label uk-hidden" for="password">{{ 'security.login.password'|trans }}</label>
|
||||
<div class="uk-inline uk-width-1-1 uk-form-controls uk-form-controls-text">
|
||||
<span class="uk-form-icon" uk-icon="icon: lock"></span>
|
||||
|
||||
<label for="username">{{ 'security.login.username'|trans }}</label>
|
||||
<input type="text" id="username" name="_username" value="{{ last_username }}" required="required" />
|
||||
<input class="uk-input uk-form-large" placeholder="Password" type="password" id="password" name="_password" required="required" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-form-controls uk-child-width-1-2@m uk-child-width-1-1@s uk-padding-remove-horizontal uk-padding-small uk-grid-collapse" uk-grid>
|
||||
<div><input type="submit" class="uk-button uk-button-large uk-button-primary uk-width-1-1@s uk-align-left@m" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans }}" /></div>
|
||||
<div class="uk-text-right uk-margin-small-top uk-form-controls">
|
||||
<label for="remember_me">{{ 'security.login.remember_me'|trans }}</label>
|
||||
<input type="checkbox" class="uk-checkbox uk-margin-medium-left" id="remember_me" name="_remember_me" value="on" /></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label for="password">{{ 'security.login.password'|trans }}</label>
|
||||
<input type="password" id="password" name="_password" required="required" />
|
||||
|
||||
<input type="checkbox" id="remember_me" name="_remember_me" value="on" />
|
||||
<label for="remember_me">{{ 'security.login.remember_me'|trans }}</label>
|
||||
|
||||
<input type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans }}" />
|
||||
</form>
|
||||
|
|
|
@ -1,24 +1,27 @@
|
|||
{% extends 'HWIOAuthBundle::layout.html.twig' %}
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block hwi_oauth_content %}
|
||||
{% block body %}
|
||||
<h3>{{ 'header.connecting' | trans({}, 'HWIOAuthBundle')}}</h3>
|
||||
<div class="row">
|
||||
<div class="span6">
|
||||
<p>{{ 'connect.confirm.text' | trans({'%service%': service | trans({}, 'HWIOAuthBundle'), '%name%': userInformation.realName}, 'HWIOAuthBundle') }}</p>
|
||||
<div class="uk-width-1-1">
|
||||
|
||||
<p>{{ 'connect.confirm.text' | trans({'%service%': service | trans({}, 'HWIOAuthBundle'), '%name%': userInformation.email}, 'HWIOAuthBundle') }}</p>
|
||||
<p>
|
||||
{{ form_start(form, {'action': path('hwi_oauth_connect_service', {'service': service, 'key': key}), 'attr': {'class': 'fos_user_registration_register'}}) }}
|
||||
{{ form_widget(form) }}
|
||||
<div>
|
||||
<button type="submit" class="btn btn-primary">{{ 'connect.confirm.submit' | trans({}, 'HWIOAuthBundle') }}</button>
|
||||
<a href="{{ path('hwi_oauth_connect') }}" class="btn">{{ 'connect.confirm.cancel' | trans({}, 'HWIOAuthBundle') }}</a>
|
||||
</div>
|
||||
<div class="uk-grid uk-child-width-1-2@m uk-child-width-1-1@s uk-grid-margin-medium" uk-grid>
|
||||
<div>
|
||||
<button type="submit" class="uk-width-1-1 uk-button uk-button-large uk-button-primary">{{ 'connect.confirm.submit' | trans({}, 'HWIOAuthBundle') }}</button>
|
||||
</div>
|
||||
<div>
|
||||
<a href="{{ path('fos_user_profile_show') }}" class="uk-width-1-1 uk-button uk-button-large uk-button-danger">{{ 'connect.confirm.cancel' | trans({}, 'HWIOAuthBundle') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ form_end(form) }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="span6">
|
||||
{% if userInformation.profilePicture is defined and userInformation.profilePicture is not empty %}
|
||||
<img src="{{ userInformation.profilePicture }}" />
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock hwi_oauth_content %}
|
||||
{% endblock body %}
|
||||
|
|
|
@ -1,22 +1,30 @@
|
|||
{% extends 'HWIOAuthBundle::layout.html.twig' %}
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block hwi_oauth_content %}
|
||||
<h3>{{ 'header.register' | trans({'%name%': userInformation.realName}, 'HWIOAuthBundle') }}</h3>
|
||||
<div class="row">
|
||||
<div class="span6">
|
||||
{{ form_start(form, {'action': path('hwi_oauth_connect_registration', {'key': key}), 'attr': {'class': 'hwi_oauth_registration_register'}}) }}
|
||||
{% block body %}
|
||||
<div class="uk-width-1-1">
|
||||
{{ dump(userInformation) }}
|
||||
</div>
|
||||
{% if userInformation.resourceOwner.name == 'yahoo' %}
|
||||
{% set name = userInformation.nickname %}
|
||||
{% else %}
|
||||
{% set name = userInformation.email %}
|
||||
{% endif %}
|
||||
<h3>{{ 'header.register' | trans({'%name%': name }, 'HWIOAuthBundle') }}</h3>
|
||||
|
||||
|
||||
{{ form_start(form, {'action': path('hwi_oauth_connect_registration', {'key': key}), 'attr': {'class': 'hwi_oauth_registration_register uk-form uk-form-horizontal'}}) }}
|
||||
{{ form_widget(form) }}
|
||||
<div>
|
||||
<button type="submit" class="btn btn-primary">{{ 'connect.registration.submit'|trans({}, 'HWIOAuthBundle') }}</button>
|
||||
<a href="{{ path('hwi_oauth_connect') }}" class="btn">{{ 'connect.registration.cancel' | trans({}, 'HWIOAuthBundle') }}</a>
|
||||
</div>
|
||||
{{ form_end(form) }}
|
||||
</div>
|
||||
<div class="span6">
|
||||
|
||||
|
||||
{% if userInformation.profilePicture is not empty %}
|
||||
<img src="{{ userInformation.profilePicture }}" />
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock hwi_oauth_content %}
|
||||
{% endblock body %}
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
profile.yes: Yep!
|
||||
profile.no: Nope!
|
||||
profile.name: Name
|
||||
profile.email: Email address
|
||||
profile.family: Immediate Family Member
|
||||
profile.family_side: Family Side
|
||||
profile.family_side_data: You're here for %family_side%!
|
||||
profile.rsvp: Current guests including yourself.
|
||||
profile.member_since: You've been a user since %date%!
|
|
@ -0,0 +1 @@
|
|||
profile.name: Name
|
|
@ -0,0 +1 @@
|
|||
profile.name: Name
|
|
@ -8,6 +8,7 @@
|
|||
<title>Title</title>
|
||||
<meta name="viewport" id="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=10.0,initial-scale=1.0">
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('css/doughnutwedding.min.css') }}" />
|
||||
<link href="https://fonts.googleapis.com/css?family=Raleway:200,300" rel="stylesheet">
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('css/select2.min.css') }}" />
|
||||
<script src="{{ asset('js/vendor.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ asset('js/doughnutwedding.min.js') }}" type="text/javascript"></script>
|
||||
|
@ -16,8 +17,17 @@
|
|||
{% block debug %}{% endblock %}
|
||||
|
||||
<div class="uk-container-small uk-container uk-margin-large-top uk-margin-large-bottom">
|
||||
<div class="uk-responsive-width uk-width-3-4 uk-align-center">
|
||||
<div class="uk-logo uk-animation-scale-up uk-transform-origin-top-center">
|
||||
<a href="{{ path('sikofitt_doughnutwedding_default_index') }}"><img src="{{ asset('images/logo.png') }}" /></a>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'flash_messages.html.twig' %}
|
||||
{% block body %}{% endblock %}
|
||||
<a href="{{ path('fos_user_registration_check_email') }}">check</a>
|
||||
<a href="{{ path('fos_user_change_password') }}">check</a>
|
||||
<a href="{{ path('fos_user_resetting_check_email') }}">check</a>
|
||||
|
||||
{% include "social_login.html.twig" %}
|
||||
{% block footer %}{% endblock %}
|
||||
</div>
|
||||
|
|
|
@ -4,16 +4,26 @@
|
|||
{% block body %}
|
||||
<div class="uk-child-width-1-3@s uk-grid-small" uk-grid>
|
||||
<div>
|
||||
<div class="uk-background-cover uk-margin-small-bottom uk-height-small uk-card uk-card-default uk-card-body uk-flex uk-flex-center uk-flex-middle" style="background-image:url(http://placekitten.com/g/500/500);">
|
||||
<div class="uk-inline uk-transition-toggle uk-cover-container uk-height-large uk-card uk-card-default uk-card-body uk-flex uk-flex-center uk-flex-middle">
|
||||
|
||||
<img src="http://placekitten.com/g/305/450" class="uk-position-cover uk-width-1-1 uk-height-large" />
|
||||
<div class="uk-dark uk-overlay uk-overlay-primary uk-width-responsive uk-margin-large-top uk-position-center">
|
||||
<h2>About Us</h2>
|
||||
</div>
|
||||
|
||||
<div class="uk-transition-fade uk-background-cover uk-position-cover" style="background-image:url(http://placekitten.com/g/305/451)">
|
||||
<a href="#" class="uk-display-inline-block uk-position-cover"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="uk-background-cover uk-margin-small-bottom uk-height-small uk-card uk-card-default uk-card-body uk-flex uk-flex-center uk-flex-middle" style="background-image:url(http://placekitten.com/g/500/500);"></div>
|
||||
<div class="uk-height-small uk-card uk-card-default uk-card-body uk-flex uk-flex-center uk-flex-middle">Small2</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="uk-height-medium uk-card uk-card-default uk-card-body uk-flex uk-flex-center uk-flex-middle">Medium</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="uk-height-large uk-card uk-card-default uk-card-body uk-flex uk-flex-center uk-flex-middle">Large</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
|
||||
{% if(is_granted('IS_AUTHENTICATED_ANONYMOUSLY') and hide_social is not defined ) %}
|
||||
{% if(not is_granted('IS_AUTHENTICATED_FULLY')) %}
|
||||
<div class="uk-width-1-1 uk-padding-small uk-align-center">
|
||||
<h4 class="uk-heading-line uk-text-center"><span><a href="{{ url('fos_user_security_login') }}" title="Login">Login</a></span></h4>
|
||||
<h4 class="uk-heading-line uk-text-center">
|
||||
<span>
|
||||
<a href="{{ url('fos_user_security_login') }}" title="Login">Login</a> <span class="uk-margin-small-left uk-margin-small-right" uk-icon="icon: social"></span> <a href="{{ url('fos_user_registration_register') }}" title="Register">Register</a>
|
||||
</span>
|
||||
</h4>
|
||||
<ul class="uk-iconnav uk-grid uk-child-width-1-6" uk-grid>
|
||||
<li>
|
||||
<a class="uk-text-center uk-login uk-login-facebook" href="{{ url("hwi_oauth_service_redirect", {service: "facebook"}) }}" uk-icon="icon: facebook; ratio:1.5"></a>
|
||||
|
|
|
@ -1,7 +1,25 @@
|
|||
<?php
|
||||
|
||||
use Doctrine\Common\Annotations\AnnotationRegistry;
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Doctrine\Common\Annotations\AnnotationRegistry;
|
||||
|
||||
/** @var ClassLoader $loader */
|
||||
$loader = require __DIR__.'/../vendor/autoload.php';
|
||||
|
|
|
@ -149,15 +149,11 @@ hwi_oauth:
|
|||
type: twitter
|
||||
client_id: 'YmXGQN2Az0eTlkwJrnaO2wR9r'
|
||||
client_secret: 'c73cBI7uj562BU4bBSHfNDcKHgM5aVo8sousjgUdDNBZFXxFHI'
|
||||
windows:
|
||||
type: windows_live
|
||||
client_id: 'f9dc3dd7-1b1c-4b8c-acdf-f40611ab550d'
|
||||
client_secret: 'fy5prOcKeLKNTB616WinrPt'
|
||||
scope: wl.signin
|
||||
yahoo:
|
||||
type: yahoo
|
||||
client_id: 'dj0yJmk9SndXWm05Tk5yME9MJmQ9WVdrOVRYTkVUVWRHTjJjbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD1lMw--'
|
||||
client_secret: '4f837f738d6c4df38eaedc7babe4d8f405f8cc0f'
|
||||
scope: 'sdps-r'
|
||||
fosub:
|
||||
# try 30 times to check if a username is available (foo, foo1, foo2 etc)
|
||||
username_iterations: 30
|
||||
|
@ -169,21 +165,33 @@ hwi_oauth:
|
|||
amazon: amazonId
|
||||
instagram: instagramId
|
||||
twitter: twitterId
|
||||
windows_live: windowsId
|
||||
yahoo: yahooId
|
||||
|
||||
# if you want to use 'connect' and do not use the FOSUB integration, configure these separately
|
||||
connect: ~
|
||||
connect:
|
||||
confirmation: false
|
||||
fos_user:
|
||||
db_driver: orm # other valid values are 'mongodb' and 'couchdb'
|
||||
firewall_name: secured_area
|
||||
user_class: Sikofitt\DoughnutWeddingBundle\Entity\User
|
||||
from_email:
|
||||
address: noreply@doughnutwedding.com
|
||||
sender_name: "No Reply"
|
||||
address: 'noreply@doughnutwedding.com'
|
||||
sender_name: "[Doughnut Wedding] No Reply"
|
||||
profile:
|
||||
form:
|
||||
type: Sikofitt\DoughnutWeddingBundle\Form\ProfileEditType
|
||||
registration:
|
||||
form:
|
||||
type: Sikofitt\DoughnutWeddingBundle\Form\RegistrationType
|
||||
swiftmailer:
|
||||
#disable_delivery: true
|
||||
transport: null #'%mailer_transport%'
|
||||
host: '%mailer_host%'
|
||||
username: '%mailer_user%'
|
||||
password: '%mailer_password%'
|
||||
spool: { type: memory }
|
||||
delivery_addresses: ['info@doughnutwedding.com']
|
||||
sender_address: 'noreply@doughnutwedding.com'
|
||||
|
||||
sikofitt_doughnut_wedding:
|
||||
max_rsvps: ~
|
|
@ -38,4 +38,7 @@ monolog:
|
|||
# level: info
|
||||
|
||||
#swiftmailer:
|
||||
# delivery_addresses: ['me@example.com']
|
||||
# disable_delivery: true
|
||||
# transport: smtp
|
||||
# delivery_addresses: ['info@doughnutwedding.com']
|
||||
# sender_address: 'noreply@doughnutwedding.com'
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"type": "service_account",
|
||||
"project_id": "doughnut-wedding",
|
||||
"private_key_id": "097ae8333fdb2ba046efe522e25cffda1163547a",
|
||||
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpiZ7fjrZIBxIJ\nprUQdKA7ODlF698aOkJNBPr2tgV2X1Xb2SYObs3p3/nhR+4SijXU4yrQSfOdUBPS\nlyM+vbT1uEniRMNUqQWcJyZN4sT0MmG85wGh3zCGa6FbakKGC6nhH1DuT6o7T1v7\nxqR/Byp7/6rAUxy0Yhm2CmlWmrt0Oe1wx42N4m1t9865SrNzUNloRp0a9jUQWpew\nssoG3pYlbzv+KHE4BSTGJEu2ErpA5kOp+loIOlmveyb8ac+tHUHqozkzMQ5+Esyf\nnNCpzurq6hL/9piVhkd1Hyr947Vb3kz6dpDoeBZqCzXK/1n3d/VJjYpBvCVqq5xr\n34U7Bfa9AgMBAAECggEAdIY2QAlil5bkeuWtxSWji5BVLQ21Rd2M/ErUAwWQM4/K\n/1P8qCbYOErNAF3j77I21Z9dKdPqMNF9Dlz6yICzA8AqZ+5DIskZJf5ygU2/eOe3\n7ZIIuS0huQH44U/jcSZLGIPhqCnxItqkqiQZo4VVWeybe5ykOgbDDS+SvweSl4qq\ngILLaMsEzDSJZhwLnmAeRnd1REq1afrQtIF/aNo5vZj0WvcLIEkwkAHqcZAUy/ox\n5huswc3SiUA4ruJkEKTtHwUDqlQhQVGGrHV0tuFHCYfxUMu1/Zp5G6e4jUeAq7t6\nKCx4tFi6U1ETiZ8w18mhO/uWkDAa0A9qquo7v+xagQKBgQDV/1Zrzv1P09XztFaV\nmhueNLJ570Fy2MNa/gHIjWJFjJlknpfCXn4q0jFBfiKs2iReRTEni33mPtzdcONF\njps/zeGch+6Exp7I+zTji2JMtXs8CiAJfR388QLzDETg6jwSL4hLWadizlJzsVA8\n4PliLv7P1kJMhMswKrUazaaetQKBgQDK0FLOVuYhLPWP2RHu0nr5MSLneXRG+dKx\nNc4Dk00ms1O6NPdhWwmHcDfocJMmi0usDvs9XjxwCQHB4KrITODRpSq3M9fI3I+W\n/QUNZfRqf0bQFzRuiKOh5BAZub3Zil3h7htkcqP4TuLvXqoHs5z2mS1wFUdcukLv\nAN7nOI/06QKBgGY9Ur25K98Kt0py23coJI/GX4rQGzXSiCsd9h4qJkxSKysediT/\n3kl5GN1QdSKeKgf8CMr64xCw8fa+K2cdBeFK7MJLU1KOTmh5VEBuZG1/uzvpHntK\nEpy5TQ5vyyyl3ENYAEb3s3gKWOw7R7l+Rsd46nbDx/Mk8qq1jMccf8GNAoGAXhe6\nYxpz1+5o2tzlcfxaqyO9wtBZPtiGhEqnEoeTYqIN9TS/lH5M9HX+qisYSeiUKfYl\nX3pJ5dx34T/fW+A26WyMXcSClyCkyXMHlgi4FXSJIN+zJpjj+aa6RYUj7DpChiAW\nu0pogjnvFQjBL6OH7exw5TAqFH4hsYqg33shZokCgYBvYMEUN+ZtNlVkgMd6lPoG\noVxq/JwJZ8d48yQ8XP3N/8qmPiuMtD9JJi6ZV4S/qvlMt63KkmtRAACQFQyJSfYj\n9U4H3sJ13vzW2tuZ87d58fACnzgElpwxifKz9X/h9+9rrD8UHvdmzSHISh2E3I3T\nsOO36Is9YoCwwjNsN9BacA==\n-----END PRIVATE KEY-----\n",
|
||||
"client_email": "doughnut-wedding-images@doughnut-wedding.iam.gserviceaccount.com",
|
||||
"client_id": "108682906131804711525",
|
||||
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
||||
"token_uri": "https://accounts.google.com/o/oauth2/token",
|
||||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
||||
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/doughnut-wedding-images%40doughnut-wedding.iam.gserviceaccount.com"
|
||||
}
|
|
@ -8,7 +8,7 @@ hwi_oauth_connect:
|
|||
|
||||
hwi_oauth_login:
|
||||
resource: "@HWIOAuthBundle/Resources/config/routing/login.xml"
|
||||
prefix: /login/oauth
|
||||
prefix: /connect
|
||||
|
||||
facebook_login:
|
||||
path: /login/callback/facebook
|
||||
|
@ -16,8 +16,6 @@ google_login:
|
|||
path: /login/callback/google
|
||||
twitter_login:
|
||||
path: /login/callback/twitter
|
||||
windows_login:
|
||||
path: /login/callback/windows
|
||||
instagram_login:
|
||||
path: /login/callback/instagram
|
||||
amazon_login:
|
||||
|
@ -25,7 +23,7 @@ amazon_login:
|
|||
yahoo_login:
|
||||
path: /login/callback/yahoo
|
||||
|
||||
os_user_security:
|
||||
fos_user_security:
|
||||
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
|
||||
#paths
|
||||
# /login
|
||||
|
|
|
@ -7,7 +7,7 @@ security:
|
|||
cost: 14
|
||||
providers:
|
||||
fos_userbundle:
|
||||
id: fos_user.user_provider.username_email
|
||||
id: fos_user.user_provider.username
|
||||
firewalls:
|
||||
# disables authentication for assets and the profiler, adapt it according to your needs
|
||||
dev:
|
||||
|
@ -28,20 +28,20 @@ security:
|
|||
facebook: /login/callback/facebook
|
||||
google: /login/callback/google
|
||||
twitter: /login/callback/twitter
|
||||
windows: /login/callback/windows
|
||||
instagram: /login/callback/instagram
|
||||
amazon: /login/callback/amazon
|
||||
yahoo: /login/callback/yahoo
|
||||
login_path: /login
|
||||
login_path: /connect
|
||||
use_forward: false
|
||||
failure_path: /login
|
||||
failure_path: /connect
|
||||
oauth_user_provider:
|
||||
service: hwi_oauth.user.provider.fosub_bridge
|
||||
access_control:
|
||||
|
||||
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/user, role: ROLE_USER }
|
||||
- { path: ^/user$, role: ROLE_USER }
|
||||
- { path: ^/gallery/upload, role: ROLE_USER }
|
||||
- { path: ^/gallery, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||
- { path: ^/admin/, role: ROLE_ADMIN }
|
||||
- { path: ^/admin$, role: ROLE_ADMIN }
|
|
@ -10,5 +10,17 @@ services:
|
|||
|
||||
doughnutwedding.form.registration:
|
||||
class: Sikofitt\DoughnutWeddingBundle\Form\RegistrationType
|
||||
arguments: ['@fos_user.user_manager']
|
||||
tags:
|
||||
- { name: form.type, alias: app_user_registration }
|
||||
doughnutwedding.event.redirect_user_logged_in_event:
|
||||
class: Sikofitt\DoughnutWeddingBundle\EventListener\UserRedirectOnLoggedInListener
|
||||
arguments: ['@security.token_storage', '@router']
|
||||
tags:
|
||||
- { name: kernel.event_listener, event: kernel.request }
|
||||
doughnutwedding.event.redirect_user_after_register_event:
|
||||
class: Sikofitt\DoughnutWeddingBundle\EventListener\RedirectOnUserRegisterListener
|
||||
arguments: ['@router']
|
||||
tags:
|
||||
- { name: kernel.event_listener, event: fos_user.registration.confirmed }
|
||||
- { name: kernel.event_listener, event: fos_user.registration.completed }
|
Binary file not shown.
After Width: | Height: | Size: 81 KiB |
|
@ -1,5 +1,5 @@
|
|||
jQuery(document).ready(function($) {
|
||||
if(null !== document.querySelector('select') && document.querySelector('select').length > 0) {
|
||||
if(null === document.querySelector('select') && document.querySelector('select').length > 0) {
|
||||
var selectPlaceholder = 'Choose an option.';
|
||||
if(document.querySelector('select').hasAttribute('placeholder')) {
|
||||
selectPlaceholder = document.querySelector('select').getAttribute('placeholder');
|
||||
|
@ -9,5 +9,6 @@ jQuery(document).ready(function($) {
|
|||
minimumResultsForSearch: Infinity,
|
||||
theme: 'default'
|
||||
});
|
||||
|
||||
}
|
||||
});
|
|
@ -3,7 +3,10 @@
|
|||
|
||||
//@global-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
//@global-font-size: 16px;
|
||||
|
||||
@base-body-font-family: 'Raleway', sans-serif;
|
||||
@base-heading-font-family: 'Raleway', sans-serif;
|
||||
@base-body-font-weight: 200;
|
||||
@base-heading-font-weight: 300;
|
||||
@form-background: #ffffff;
|
||||
|
||||
.uk-input,
|
||||
|
@ -19,3 +22,9 @@
|
|||
border:1px solid #99baca;
|
||||
color: #666;
|
||||
}
|
||||
.uk-login-form #password {
|
||||
border-top:0 !important;
|
||||
}
|
||||
.uk-login-form #password:focus {
|
||||
border-top: 1px solid #99baca !important;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
"doctrine/orm": "^2.5",
|
||||
"egulias/email-validator": "^2.1",
|
||||
"friendsofsymfony/user-bundle": "^2.0",
|
||||
"google/apiclient": "^2.1",
|
||||
"google/recaptcha": "^1.1",
|
||||
"hwi/oauth-bundle": "^0.5.3",
|
||||
"incenteev/composer-parameter-handler": "^2.0",
|
||||
|
@ -26,6 +27,7 @@
|
|||
"ircmaxell/security-lib": "^1.1",
|
||||
"j-ben87/parsley-bundle": "^1.4",
|
||||
"javiereguiluz/easyadmin-bundle": "^1.16",
|
||||
"knplabs/knp-gaufrette-bundle": "^0.4.0",
|
||||
"lexik/translation-bundle": "^4.0",
|
||||
"lightsaml/sp-bundle": "^1.1",
|
||||
"moontoast/math": "^1.1",
|
||||
|
@ -34,7 +36,7 @@
|
|||
"paragonie/sodium_compat": "^0.6.0",
|
||||
"predis/predis": "^1.1",
|
||||
"psr/http-message": "^1.0",
|
||||
"ramsey/uuid": "^3.5",
|
||||
"ramsey/uuid": "^3.6",
|
||||
"ramsey/uuid-doctrine": "^1.2",
|
||||
"ravenberg/uikit-bundle": "^1.0",
|
||||
"sensio/distribution-bundle": "^5.0",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#FROM php:7.1-fpm-alpine
|
||||
FROM php-7.1.4-fpm-alpine
|
||||
FROM php:7.1-fpm-alpine
|
||||
#FROM php-7.1.4-fpm-alpine
|
||||
|
||||
ENV PHPIZE_DEPS \
|
||||
autoconf \
|
||||
|
|
|
@ -1,33 +1,49 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
/**
|
||||
* Class DefaultController
|
||||
* Class DefaultController.
|
||||
*/
|
||||
class DefaultController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
/**
|
||||
* @Route("/")
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function indexAction(Request $request)
|
||||
{
|
||||
$parameters = [];
|
||||
if(null !== $this->getUser()) {
|
||||
$parameters['hide_social'] = true;
|
||||
}
|
||||
return $this->render('default/index.html.twig', $parameters);
|
||||
}
|
||||
$parameters = [];
|
||||
if (null !== $this->getUser()) {
|
||||
$parameters['hide_social'] = true;
|
||||
}
|
||||
|
||||
return $this->render('default/index.html.twig', $parameters);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,14 +1,31 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
|
||||
/**
|
||||
* Class ImageController
|
||||
* Class ImageController.
|
||||
*
|
||||
* @package Sikofitt\DoughnutWeddingBundle\Controller
|
||||
* @Route("/gallery")
|
||||
*/
|
||||
class ImageController extends Controller
|
||||
|
@ -18,9 +35,9 @@ class ImageController extends Controller
|
|||
*/
|
||||
public function indexAction()
|
||||
{
|
||||
return $this->render('SikofittDoughnutWeddingBundle:Image:index.html.twig', array(
|
||||
return $this->render('SikofittDoughnutWeddingBundle:Image:index.html.twig', [
|
||||
// ...
|
||||
));
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -28,9 +45,9 @@ class ImageController extends Controller
|
|||
*/
|
||||
public function uploadAction()
|
||||
{
|
||||
return $this->render('SikofittDoughnutWeddingBundle:Image:upload.html.twig', array(
|
||||
return $this->render('SikofittDoughnutWeddingBundle:Image:upload.html.twig', [
|
||||
// ...
|
||||
));
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -38,9 +55,9 @@ class ImageController extends Controller
|
|||
*/
|
||||
public function tagAction()
|
||||
{
|
||||
return $this->render('SikofittDoughnutWeddingBundle:Image:tag.html.twig', array(
|
||||
return $this->render('SikofittDoughnutWeddingBundle:Image:tag.html.twig', [
|
||||
// ...
|
||||
));
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -48,9 +65,8 @@ class ImageController extends Controller
|
|||
*/
|
||||
public function categoryAction()
|
||||
{
|
||||
return $this->render('SikofittDoughnutWeddingBundle:Image:category.html.twig', array(
|
||||
return $this->render('SikofittDoughnutWeddingBundle:Image:category.html.twig', [
|
||||
// ...
|
||||
));
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ use Doctrine\ORM\EntityManager;
|
|||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\Form\FormFactory;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Component\Validator\ConstraintViolationList;
|
||||
|
||||
|
@ -33,6 +32,7 @@ class RsvpController extends Controller
|
|||
{
|
||||
/**
|
||||
* @Route("/rsvp")
|
||||
*
|
||||
* @param \Symfony\Component\HttpFoundation\Request $request
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
|
||||
|
|
|
@ -1,215 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle\Controller;
|
||||
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Sikofitt\App\Form\UserLoginType;
|
||||
use Sikofitt\App\Form\UserTokenType;
|
||||
use Sikofitt\DoughnutWeddingBundle\Security\TokenGenerator;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
|
||||
/**
|
||||
* Class UserController.
|
||||
|
||||
*/
|
||||
class UserController extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* @Route("/logout", name="logout")
|
||||
* @param \Symfony\Component\HttpFoundation\Request $request
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*/
|
||||
public function logoutAction(Request $request)
|
||||
{
|
||||
if(null !== $request->getUser()) {
|
||||
$request->getSession()->remove('user');
|
||||
}
|
||||
return $this->render('user/logout.html.twig');
|
||||
}
|
||||
|
||||
public function tokenLoginAction(Request $request, string $token = null)
|
||||
{
|
||||
if (null === $token) {
|
||||
$tokenForm = $this->get('form.factory')->create(UserTokenType::class);
|
||||
if ($request->isMethod('POST')) {
|
||||
$tokenForm->handleRequest($request);
|
||||
if ($tokenForm->isValid() && $tokenForm->isSubmitted()) {
|
||||
if ($tokenForm->get('update_token')->isClicked()) {
|
||||
if (null !== $tokenForm->get('email')->getData()) {
|
||||
return $this->updateAndSendTokenLoginLink($this,
|
||||
$tokenForm);
|
||||
} else {
|
||||
$tokenForm->get('email')
|
||||
->addError(new FormError('Email address is a required field to send a new login link.'));
|
||||
|
||||
return $this->render('form/token.html.twig',
|
||||
['form' => $tokenForm->createView()]);
|
||||
}
|
||||
} else {
|
||||
$userToken = $tokenForm->get('user_token')->getData();
|
||||
|
||||
$user = $this->getDoctrine()
|
||||
->getRepository('SikofittDoughnutWeddingBundle:User')
|
||||
->getUserByUserToken($userToken);
|
||||
|
||||
if (null === $user) {
|
||||
$tokenForm->get('user_token')
|
||||
->addError(new FormError('Token is invalid.'));
|
||||
} else {
|
||||
$request->getSession()->set('user', $user);
|
||||
}
|
||||
|
||||
return $this->render('form/token.html.twig',
|
||||
['form' => $tokenForm->createView()]);
|
||||
}
|
||||
} else {
|
||||
return $this->render('form/token.html.twig',
|
||||
['form' => $tokenForm->createView()]);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->render('form/token.html.twig', ['form' => $tokenForm->createView()]);
|
||||
} else {
|
||||
// Token has been included.
|
||||
$request->getSession()->remove('user');
|
||||
$tokenForm = $this->get('form.factory')->create(UserTokenType::class);
|
||||
//$user = $app->getEntityManager()->getRepository('Sikofitt:User')->getUserByUserToken($token);
|
||||
$user = $this->getDoctrine()->getRepository('SikofittDoughnutWeddingBundle:User')->findOneBy(['userToken' => $token]);
|
||||
if (null !== $user) {
|
||||
$request->getSession()->set('user', $user);
|
||||
|
||||
return $this->render('user/index.html.twig');
|
||||
} else {
|
||||
return new StreamedResponse(function () use ($tokenForm, $token) {
|
||||
$tokenForm->get('user_token')->setData($token);
|
||||
$tokenForm->get('user_token')->addError(new FormError('Invalid token.'));
|
||||
print $this->renderView('form/token.html.twig', ['form' => $tokenForm->createView()]);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/user", name="user_index")
|
||||
* @param \Symfony\Component\HttpFoundation\Request $request
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\JsonResponse
|
||||
*/
|
||||
public function indexAction(Request $request)
|
||||
{
|
||||
|
||||
//if ($request->getSession()->has('user')) {
|
||||
return new JsonResponse(
|
||||
[
|
||||
'request' => $request->request->all(),
|
||||
'server' => $request->server->all(),
|
||||
'headers' => $request->headers->all(),
|
||||
'session' => $request->getSession()->all(),
|
||||
'token' => (string) new TokenGenerator(),
|
||||
]
|
||||
);
|
||||
// }
|
||||
}
|
||||
|
||||
public function loginAction(Request $request)
|
||||
{
|
||||
if ($app->session()->has('user')) {
|
||||
//return $app->redirect($app->url('rsvp_edit'));
|
||||
}
|
||||
$loginForm = $app->getFormFactory()->create(UserLoginType::class);
|
||||
if ($request->isMethod('POST')) {
|
||||
$loginForm->handleRequest($request);
|
||||
if ($loginForm->isValid() && $loginForm->isSubmitted()) {
|
||||
$user = $app->getEntityManager()->getRepository(User::class)->findByEmail($loginForm->get('email_username')->getData());
|
||||
if (null !== $user && true === password_verify($loginForm->get('password')->getData(), $user[0]->getPassword())) {
|
||||
$userSession = [
|
||||
'firstName' => $user[0]->getFirstName(),
|
||||
'lastName' => $user[0]->getLastName(),
|
||||
'fullName' => sprintf('%s %s', $user[0]->getFirstName(), $user[0]->getLastName()),
|
||||
'familySide' => $user[0]->getFamilySide(),
|
||||
'email' => $user[0]->getEmail(),
|
||||
'family' => $user[0]->getFamily(),
|
||||
'created' => $user[0]->getCreated()->format('U'),
|
||||
'updated' => $user[0]->getUpdated()->format('U'),
|
||||
'guests' => $user[0]->getRsvp()->getGuests(),
|
||||
];
|
||||
$app->getSession()->set('user', $userSession);
|
||||
$app->redirect($app->url('rsvp'));
|
||||
} else {
|
||||
$error = new FormError('Your password or email is incorrect.');
|
||||
$error->setOrigin($loginForm);
|
||||
$loginForm->get('password')->addError($error);
|
||||
|
||||
return $app->render('login.html.twig', ['form' => $loginForm->createView()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $app->render('login.html.twig', ['form' => $loginForm->createView()]);
|
||||
}
|
||||
|
||||
public function resetAction(Request $request, \Kernel $app)
|
||||
{
|
||||
}
|
||||
|
||||
public function tokenAction(Request $request, \Kernel $app)
|
||||
{
|
||||
}
|
||||
|
||||
public function editAction(Request $request, \Kernel $app)
|
||||
{
|
||||
}
|
||||
|
||||
private function tokenFormGenerator(\Kernel $app)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
private function updateAndSendTokenLoginLink(\Kernel $app, \Symfony\Component\Form\FormInterface $tokenForm)
|
||||
{
|
||||
$email = $tokenForm->get('email')->getData();
|
||||
$user = $app->getEntityManager()
|
||||
->getRepository('Sikofitt:User')
|
||||
->findByEmail($email);
|
||||
if (null === $user) {
|
||||
$tokenForm->get('email')->addError(new FormError('Sorry we couldn\'t find your email address.'));
|
||||
|
||||
return $app->render('form/token.html.twig', ['form' => $tokenForm->createView()]);
|
||||
}
|
||||
$newToken = $app->getEntityManager()
|
||||
->getRepository('Sikofitt:User')
|
||||
->setUserToken($email);
|
||||
if (false !== $newToken) {
|
||||
$user->setUserToken($newToken);
|
||||
$app->session()->set('user', $user);
|
||||
|
||||
return $app->render('form/token.html.twig', ['form' => $tokenForm->createView()]);
|
||||
}
|
||||
$tokenForm->get('email')->addError(new FormError('An Unknown error occured. Please try again.'));
|
||||
|
||||
return $app->render('form/token.html.twig', ['form' => $tokenForm->createView()]);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,23 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle\DependencyInjection;
|
||||
|
||||
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
||||
|
@ -14,6 +32,7 @@ class Configuration implements ConfigurationInterface
|
|||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @throws \RuntimeException
|
||||
*/
|
||||
public function getConfigTreeBuilder()
|
||||
|
@ -25,8 +44,8 @@ class Configuration implements ConfigurationInterface
|
|||
->scalarNode('max_rsvps')
|
||||
->isRequired()
|
||||
->validate()
|
||||
->ifEmpty()->then(function() {return 40;})
|
||||
->ifNull()->then(function() { return 40;})
|
||||
->ifEmpty()->then(function () {return 40; })
|
||||
->ifNull()->then(function () { return 40; })
|
||||
->end()
|
||||
->end();
|
||||
// Here you should define the parameters that are allowed to
|
||||
|
|
|
@ -1,16 +1,34 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle\DependencyInjection;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Loader;
|
||||
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
|
||||
|
||||
/**
|
||||
* This is the class that loads and manages your bundle configuration.
|
||||
*
|
||||
* @link http://symfony.com/doc/current/cookbook/bundles/extension.html
|
||||
* @see http://symfony.com/doc/current/cookbook/bundles/extension.html
|
||||
*/
|
||||
class SikofittDoughnutWeddingExtension extends Extension
|
||||
{
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
namespace Sikofitt\DoughnutWeddingBundle\Entity;
|
||||
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use FOS\UserBundle\Model\UserInterface;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
/**
|
||||
|
@ -46,50 +45,12 @@ class User extends \FOS\UserBundle\Model\User
|
|||
protected $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="first_name", type="string", length=255, nullable=false)
|
||||
* @ORM\Column(name="fullname", type="string", length=255, nullable=false)
|
||||
* @Assert\NotBlank()
|
||||
* @Assert\Regex(pattern="/\w+/")
|
||||
*/
|
||||
private $firstName;
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="last_name", type="string", length=255, nullable=false)
|
||||
* @Assert\NotBlank()
|
||||
* @Assert\Regex(pattern="/\w+/")
|
||||
*/
|
||||
private $lastName;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="boolean", name="is_family", nullable=false)
|
||||
* @Assert\Type(type="bool")
|
||||
*/
|
||||
private $family = false;
|
||||
|
||||
//* @Assert\Choice(choices="{self::KATRINA_SIDE, self::ERIC_SIDE}", multiple=false)
|
||||
/**
|
||||
* @ORM\Column(type="string", name="family_side", nullable=true)
|
||||
*
|
||||
* @var null|string
|
||||
*/
|
||||
private $familySide = null;
|
||||
|
||||
/*
|
||||
* @ORM\Column(name="email", type="string", length=255)
|
||||
* @Assert\Email(strict=true, checkHost=true, checkMX=true)
|
||||
|
||||
protected $email;
|
||||
*/
|
||||
/*
|
||||
* @var string
|
||||
* @ORM\Column(name="password", type="string", length=255))
|
||||
*
|
||||
protected $password;
|
||||
*/
|
||||
/*
|
||||
* @var string
|
||||
*
|
||||
protected $plainPassword;
|
||||
*/
|
||||
/**
|
||||
* @var string
|
||||
* @ORM\Column(name="reset_token", type="string", length=255, nullable=true)
|
||||
|
@ -123,269 +84,38 @@ class User extends \FOS\UserBundle\Model\User
|
|||
*/
|
||||
private $facebookId;
|
||||
|
||||
private $facebookAccessToken;
|
||||
private $facebookAccessToken;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="google_id", type="string", length=255, nullable=true)
|
||||
*/
|
||||
private $googleId;
|
||||
|
||||
private $googleAccessToken;
|
||||
private $googleAccessToken;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="amazon_id", type="string", length=255, nullable=true)
|
||||
*/
|
||||
private $amazonId;
|
||||
|
||||
private $amazonAccessToken;
|
||||
private $amazonAccessToken;
|
||||
/**
|
||||
* @ORM\Column(name="instagram_id", type="string", length=255, nullable=true)
|
||||
*/
|
||||
private $instagramId;
|
||||
private $instagramAccessToken;
|
||||
private $instagramAccessToken;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="twitter_id", type="string", length=255, nullable=true)
|
||||
*/
|
||||
private $twitterId;
|
||||
private $twitterAccessToken;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="windows_id", type="string", length=255, nullable=true)
|
||||
*/
|
||||
private $windowsId;
|
||||
private $windowsAccessToken;
|
||||
private $twitterAccessToken;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="yahoo_id", type="string", length=255, nullable=true)
|
||||
*/
|
||||
private $yahooId;
|
||||
private $yahooAccessToken;
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getAmazonId() {
|
||||
return $this->amazonId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $amazonId
|
||||
* @return User
|
||||
*/
|
||||
public function setAmazonId($amazonId) {
|
||||
$this->amazonId = $amazonId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getAmazonAccessToken() {
|
||||
return $this->amazonAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $amazonAccessToken
|
||||
* @return User
|
||||
*/
|
||||
public function setAmazonAccessToken($amazonAccessToken) {
|
||||
$this->amazonAccessToken = $amazonAccessToken;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getFacebookId() {
|
||||
return $this->facebookId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $facebookId
|
||||
* @return User
|
||||
*/
|
||||
public function setFacebookId($facebookId) {
|
||||
$this->facebookId = $facebookId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getFacebookAccessToken() {
|
||||
return $this->facebookAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $facebookAccessToken
|
||||
* @return User
|
||||
*/
|
||||
public function setFacebookAccessToken($facebookAccessToken) {
|
||||
$this->facebookAccessToken = $facebookAccessToken;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getGoogleId() {
|
||||
return $this->googleId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $googleId
|
||||
* @return User
|
||||
*/
|
||||
public function setGoogleId($googleId) {
|
||||
$this->googleId = $googleId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getGoogleAccessToken() {
|
||||
return $this->googleAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $googleAccessToken
|
||||
* @return User
|
||||
*/
|
||||
public function setGoogleAccessToken($googleAccessToken) {
|
||||
$this->googleAccessToken = $googleAccessToken;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getInstagramId() {
|
||||
return $this->instagramId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $instagramId
|
||||
* @return User
|
||||
*/
|
||||
public function setInstagramId($instagramId) {
|
||||
$this->instagramId = $instagramId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getInstagramAccessToken() {
|
||||
return $this->instagramAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $instagramAccessToken
|
||||
* @return User
|
||||
*/
|
||||
public function setInstagramAccessToken($instagramAccessToken) {
|
||||
$this->instagramAccessToken = $instagramAccessToken;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getTwitterId() {
|
||||
return $this->twitterId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $twitterId
|
||||
* @return User
|
||||
*/
|
||||
public function setTwitterId($twitterId) {
|
||||
$this->twitterId = $twitterId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getTwitterAccessToken() {
|
||||
return $this->twitterAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $twitterAccessToken
|
||||
* @return User
|
||||
*/
|
||||
public function setTwitterAccessToken($twitterAccessToken) {
|
||||
$this->twitterAccessToken = $twitterAccessToken;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getWindowsId() {
|
||||
return $this->windowsId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $windowsId
|
||||
* @return User
|
||||
*/
|
||||
public function setWindowsId($windowsId) {
|
||||
$this->windowsId = $windowsId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getWindowsAccessToken() {
|
||||
return $this->windowsAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $windowsAccessToken
|
||||
* @return User
|
||||
*/
|
||||
public function setWindowsAccessToken($windowsAccessToken) {
|
||||
$this->windowsAccessToken = $windowsAccessToken;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getYahooId() {
|
||||
return $this->yahooId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $yahooId
|
||||
* @return User
|
||||
*/
|
||||
public function setYahooId($yahooId) {
|
||||
$this->yahooId = $yahooId;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getYahooAccessToken() {
|
||||
return $this->yahooAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $yahooAccessToken
|
||||
* @return User
|
||||
*/
|
||||
public function setYahooAccessToken($yahooAccessToken) {
|
||||
$this->yahooAccessToken = $yahooAccessToken;
|
||||
return $this;
|
||||
}
|
||||
|
||||
private $yahooAccessToken;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
@ -396,6 +126,247 @@ class User extends \FOS\UserBundle\Model\User
|
|||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getAmazonId()
|
||||
{
|
||||
return $this->amazonId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $amazonId
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setAmazonId($amazonId)
|
||||
{
|
||||
$this->amazonId = $amazonId;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getAmazonAccessToken()
|
||||
{
|
||||
return $this->amazonAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $amazonAccessToken
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setAmazonAccessToken($amazonAccessToken)
|
||||
{
|
||||
$this->amazonAccessToken = $amazonAccessToken;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getFacebookId()
|
||||
{
|
||||
return $this->facebookId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $facebookId
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setFacebookId($facebookId)
|
||||
{
|
||||
$this->facebookId = $facebookId;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getFacebookAccessToken()
|
||||
{
|
||||
return $this->facebookAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $facebookAccessToken
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setFacebookAccessToken($facebookAccessToken)
|
||||
{
|
||||
$this->facebookAccessToken = $facebookAccessToken;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getGoogleId()
|
||||
{
|
||||
return $this->googleId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $googleId
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setGoogleId($googleId)
|
||||
{
|
||||
$this->googleId = $googleId;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getGoogleAccessToken()
|
||||
{
|
||||
return $this->googleAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $googleAccessToken
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setGoogleAccessToken($googleAccessToken)
|
||||
{
|
||||
$this->googleAccessToken = $googleAccessToken;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getInstagramId()
|
||||
{
|
||||
return $this->instagramId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $instagramId
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setInstagramId($instagramId)
|
||||
{
|
||||
$this->instagramId = $instagramId;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getInstagramAccessToken()
|
||||
{
|
||||
return $this->instagramAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $instagramAccessToken
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setInstagramAccessToken($instagramAccessToken)
|
||||
{
|
||||
$this->instagramAccessToken = $instagramAccessToken;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getTwitterId()
|
||||
{
|
||||
return $this->twitterId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $twitterId
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setTwitterId($twitterId)
|
||||
{
|
||||
$this->twitterId = $twitterId;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getTwitterAccessToken()
|
||||
{
|
||||
return $this->twitterAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $twitterAccessToken
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setTwitterAccessToken($twitterAccessToken)
|
||||
{
|
||||
$this->twitterAccessToken = $twitterAccessToken;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getYahooId()
|
||||
{
|
||||
return $this->yahooId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $yahooId
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setYahooId($yahooId)
|
||||
{
|
||||
$this->yahooId = $yahooId;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function getYahooAccessToken()
|
||||
{
|
||||
return $this->yahooAccessToken;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $yahooAccessToken
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setYahooAccessToken($yahooAccessToken)
|
||||
{
|
||||
$this->yahooAccessToken = $yahooAccessToken;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get id.
|
||||
*
|
||||
|
@ -407,51 +378,27 @@ class User extends \FOS\UserBundle\Model\User
|
|||
}
|
||||
|
||||
/**
|
||||
* Set firstName.
|
||||
* Set Name.
|
||||
*
|
||||
* @param string $firstName
|
||||
* @param string $name
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setFirstName($firstName)
|
||||
public function setName($name)
|
||||
{
|
||||
$this->firstName = $firstName;
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get firstName.
|
||||
* Get Name.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getFirstName()
|
||||
public function getName()
|
||||
{
|
||||
return $this->firstName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set lastName.
|
||||
*
|
||||
* @param string $lastName
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setLastName($lastName)
|
||||
{
|
||||
$this->lastName = $lastName;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get lastName.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLastName()
|
||||
{
|
||||
return $this->lastName;
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -462,53 +409,6 @@ class User extends \FOS\UserBundle\Model\User
|
|||
return $this->username;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set family.
|
||||
*
|
||||
* @param bool $family
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setFamily($family)
|
||||
{
|
||||
$this->family = $family;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get family.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getFamily()
|
||||
{
|
||||
return $this->family;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set familySide.
|
||||
*
|
||||
* @param string $familySide
|
||||
*
|
||||
* @return User
|
||||
*/
|
||||
public function setFamilySide($familySide)
|
||||
{
|
||||
$this->familySide = $familySide;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get familySide.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getFamilySide()
|
||||
{
|
||||
return $this->familySide;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set email.
|
||||
|
@ -686,17 +586,4 @@ class User extends \FOS\UserBundle\Model\User
|
|||
return $this->rsvp;
|
||||
}
|
||||
|
||||
public function getRoles()
|
||||
{
|
||||
return ['ROLE_USER'];
|
||||
}
|
||||
|
||||
public function eraseCredentials()
|
||||
{
|
||||
}
|
||||
|
||||
public function getSalt()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: eric
|
||||
* Date: 4/21/17
|
||||
* Time: 7:37 PM
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle\EventListener;
|
||||
|
||||
|
||||
use FOS\UserBundle\Event\FormEvent;
|
||||
use FOS\UserBundle\FOSUserEvents;
|
||||
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
|
||||
class RedirectOnUserRegisterListener
|
||||
{
|
||||
private $router;
|
||||
|
||||
public function __construct(UrlGeneratorInterface $router)
|
||||
{
|
||||
$this->router = $router;
|
||||
}
|
||||
|
||||
public function onKernelRequest(FormEvent $event)
|
||||
{
|
||||
$url = $this->router->generate('sikofitt_doughnutwedding_default_index');
|
||||
$event->setResponse(new RedirectResponse($url));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,113 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle\EventListener;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Routing\Router;
|
||||
use Symfony\Component\{
|
||||
EventDispatcher\EventDispatcherInterface, HttpFoundation\RedirectResponse, HttpKernel\Event\GetResponseEvent, Security\Core\Authentication\Token\Storage\TokenStorageInterface
|
||||
};
|
||||
|
||||
class UserRedirectOnLoggedInListener
|
||||
{
|
||||
/**
|
||||
* @var TokenStorageInterface
|
||||
*/
|
||||
private $tokenStorage;
|
||||
|
||||
/**
|
||||
* @var Router
|
||||
*/
|
||||
private $router;
|
||||
|
||||
/**
|
||||
* UserRedirectOnLoggedInListener constructor.
|
||||
*
|
||||
* @param TokenStorageInterface $tokenStorage
|
||||
* @param Router $router
|
||||
*/
|
||||
public function __construct(
|
||||
TokenStorageInterface $tokenStorage,
|
||||
Router $router
|
||||
) {
|
||||
$this->tokenStorage = $tokenStorage;
|
||||
$this->router = $router;
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirects logged in users to the profile page, from the login page.
|
||||
*
|
||||
* @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function onKernelRequest(GetResponseEvent $event): void
|
||||
{
|
||||
|
||||
$token = $this->tokenStorage->getToken();
|
||||
|
||||
if (null !== $token) {
|
||||
$pathInfo = $event->getRequest()->getPathInfo();
|
||||
$routeInformation = $this->router->match($pathInfo);
|
||||
$profile = $this->router->generate('fos_user_profile_show');
|
||||
|
||||
if (
|
||||
true === $this->shouldRedirectRoute($routeInformation) &&
|
||||
null !== $token->getUser() &&
|
||||
false === strpos($token->getUsername(), 'anon')
|
||||
) {
|
||||
$event->setResponse(new RedirectResponse($profile));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Decides if we should redirect the current route
|
||||
* depending on whether or not we are logged in.
|
||||
*
|
||||
* @param array $routeInformation
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function shouldRedirectRoute(array $routeInformation): bool
|
||||
{
|
||||
|
||||
return true === in_array(
|
||||
$routeInformation['_route'],
|
||||
$this->getRedirectRoutes(),
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* Routes that we should redirect
|
||||
*/
|
||||
private function getRedirectRoutes(): array
|
||||
{
|
||||
return [
|
||||
//'fos_user_security_login',
|
||||
// 'fos_user_registration_confirmed',
|
||||
//'hwi_oauth_connect'
|
||||
];
|
||||
}
|
||||
}
|
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: eric
|
||||
* Date: 4/21/17
|
||||
* Time: 9:11 PM
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle\Form;
|
||||
|
||||
|
||||
use FOS\UserBundle\Form\Type\ProfileFormType;
|
||||
use HWI\Bundle\OAuthBundle\OAuth\Response\PathUserResponse;
|
||||
use Sikofitt\DoughnutWeddingBundle\Entity\Rsvp;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\CallbackTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class ProfileEditType extends AbstractType
|
||||
{
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$emailOptions = $builder->get('email')->getOptions();
|
||||
|
||||
$builder->remove('current_password');
|
||||
//$builder->remove('username');
|
||||
$builder->remove('email');
|
||||
$emailOptions['attr'] = [
|
||||
'class' => 'uk-input uk-form-large uk-padding-small uk-box-shadow-hover-small',
|
||||
'placeholder' => 'Email Address',
|
||||
];
|
||||
$emailOptions['label_attr'] = [
|
||||
'class' => 'uk-form-label uk-text-primary',
|
||||
];
|
||||
$builder->add('email', EmailType::class, $emailOptions);
|
||||
$builder->add('name', TextType::class, [
|
||||
'attr' => [
|
||||
'class' => 'uk-input uk-form-large uk-padding-small uk-box-shadow-hover-small',
|
||||
'placeholder' => 'Name',
|
||||
],
|
||||
'label' => 'Name',
|
||||
'label_attr' => [
|
||||
'class' => 'uk-form-label uk-text-primary',
|
||||
],
|
||||
]);
|
||||
$builder->add('rsvp', IntegerType::class, [
|
||||
'attr' => [
|
||||
'class' => 'uk-input uk-form-large uk-padding-small uk-box-shadow-hover-small',
|
||||
'placeholder' => 'Number of Guests (including yourself)',
|
||||
],
|
||||
'label' => 'Number of guests? (including yourself)',
|
||||
'label_attr' => [
|
||||
'class' => 'uk-form-label uk-text-primary',
|
||||
],
|
||||
]);
|
||||
|
||||
$builder->get('rsvp')
|
||||
->addModelTransformer(new CallbackTransformer(
|
||||
function (?Rsvp $rsvp) {
|
||||
if (null === $rsvp) {
|
||||
return $rsvp;
|
||||
}
|
||||
|
||||
return $rsvp->getGuests();
|
||||
},
|
||||
function (Int $rsvpInt) {
|
||||
$rsvp = new Rsvp();
|
||||
$rsvp->setGuests($rsvpInt);
|
||||
|
||||
return $rsvp;
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
public function getParent()
|
||||
{
|
||||
return ProfileFormType::class;
|
||||
}
|
||||
}
|
|
@ -1,60 +1,57 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle\Form;
|
||||
|
||||
use HWI\Bundle\OAuthBundle\OAuth\Response\PathUserResponse;
|
||||
use Symfony\Component\Form\FormEvent;
|
||||
use FOS\UserBundle\Form\Type\RegistrationFormType;
|
||||
use FOS\UserBundle\Model\UserManager;
|
||||
use Sikofitt\DoughnutWeddingBundle\Entity\Rsvp;
|
||||
use Sikofitt\DoughnutWeddingBundle\Entity\User;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\CallbackTransformer;
|
||||
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\EmailType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\Form\FormEvents;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\Form\FormView;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class RegistrationType extends AbstractType
|
||||
{
|
||||
private $userManger;
|
||||
|
||||
public function __construct(UserManager $userManager)
|
||||
{
|
||||
$this->userManger = $userManager;
|
||||
}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
|
||||
|
||||
$builder->add('first_name', TextType::class)
|
||||
->add('last_name', TextType::class)
|
||||
->add('familyside', ChoiceType::class, [
|
||||
'choices' => [
|
||||
User::ERIC_SIDE => User::ERIC_SIDE,
|
||||
User::KATRINA_SIDE => User::KATRINA_SIDE,
|
||||
],
|
||||
'attr' => [
|
||||
'class' => 'uk-select uk-form-large uk-box-shadow-hover-small',
|
||||
'style' => 'padding-left:16px;',
|
||||
],
|
||||
'label' => 'Who are you coming for?',
|
||||
'label_attr' => [
|
||||
'class' => 'uk-form-label uk-text-primary',
|
||||
'style' => 'font-size:1.25rem; margin-left:15px;'
|
||||
],
|
||||
])
|
||||
->add('family', CheckboxType::class, [
|
||||
'label' => 'Are you an immediate family member?',
|
||||
'required' => false,
|
||||
'attr' => [
|
||||
'class' => 'uk-checkbox uk-box-shadow-hover-small',
|
||||
],
|
||||
'label_attr' => [
|
||||
'class' => 'uk-form-label uk-text-primary',
|
||||
'style' => 'font-size:1.25rem; margin-left:15px;'
|
||||
],
|
||||
])
|
||||
|
||||
$builder->add('name', TextType::class)
|
||||
->add('rsvp', IntegerType::class, [
|
||||
'attr' => [
|
||||
|
||||
'class' => 'uk-input uk-form-large uk-padding-small uk-box-shadow-hover-small',
|
||||
'placeholder' => 'Number of Guests (including yourself)',
|
||||
],
|
||||
|
@ -62,31 +59,41 @@ class RegistrationType extends AbstractType
|
|||
'label_attr' => [
|
||||
'class' => 'uk-form-label uk-text-primary',
|
||||
],
|
||||
]);
|
||||
])->remove('username');
|
||||
|
||||
$builder->get('rsvp')
|
||||
$builder->addEventListener(FormEvents::SUBMIT, function(FormEvent $event) {
|
||||
|
||||
$user = $event->getData();
|
||||
$user->setUsername($user->getEmail());
|
||||
$this->userManger->updateCanonicalFields($user);
|
||||
});
|
||||
|
||||
$builder->get('rsvp')
|
||||
->addModelTransformer(new CallbackTransformer(
|
||||
function (?Rsvp $rsvp) {
|
||||
if (null === $rsvp) {
|
||||
return $rsvp;
|
||||
}
|
||||
return $rsvp->getGuests();
|
||||
if (null === $rsvp) {
|
||||
return $rsvp;
|
||||
}
|
||||
|
||||
return $rsvp->getGuests();
|
||||
},
|
||||
function (Int $rsvpInt) {
|
||||
$rsvp = new Rsvp();
|
||||
$rsvp->setGuests($rsvpInt);
|
||||
return $rsvp;
|
||||
$rsvp = new Rsvp();
|
||||
$rsvp->setGuests($rsvpInt);
|
||||
|
||||
return $rsvp;
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefault('attr', ['class' => 'uk-form uk-form-horizontal']);
|
||||
|
||||
$resolver->setDefault('attr', ['class' => 'uk-form uk-form-horizontal']);
|
||||
}
|
||||
public function getParent() {
|
||||
return RegistrationFormType::class;
|
||||
|
||||
public function getParent()
|
||||
{
|
||||
return RegistrationFormType::class;
|
||||
}
|
||||
|
||||
public function finishView(
|
||||
|
@ -94,11 +101,13 @@ class RegistrationType extends AbstractType
|
|||
FormInterface $form,
|
||||
array $options
|
||||
) {
|
||||
$view->children['email']->vars['attr']['class'] = 'uk-input';
|
||||
$view->children['email']->vars['label_attr']['class'] = 'uk-form-label';
|
||||
$view->children['email']->vars['attr']['class'] = 'uk-input';
|
||||
$view->children['email']->vars['label_attr']['class'] = 'uk-form-label';
|
||||
$p = new PathUserResponse();
|
||||
//$p->getResourceOwner()->getName();
|
||||
}
|
||||
|
||||
public function getBlockPrefix()
|
||||
public function getBlockPrefix()
|
||||
{
|
||||
return 'sikofitt_doughnut_wedding_bundle_registration_type';
|
||||
}
|
||||
|
|
|
@ -93,7 +93,6 @@ class RsvpType extends AbstractType
|
|||
])
|
||||
->add('familyside', ChoiceType::class, [
|
||||
'choices' => [
|
||||
|
||||
User::ERIC_SIDE => User::ERIC_SIDE,
|
||||
User::KATRINA_SIDE => User::KATRINA_SIDE,
|
||||
],
|
||||
|
@ -111,11 +110,10 @@ class RsvpType extends AbstractType
|
|||
'required' => false,
|
||||
'attr' => [
|
||||
'class' => 'uk-checkbox uk-box-shadow-hover-small',
|
||||
'style' => 'padding-left:16px;'
|
||||
'style' => 'padding-left:16px;',
|
||||
],
|
||||
'label_attr' => [
|
||||
'class' => 'uk-form-label uk-text-primary',
|
||||
|
||||
],
|
||||
]);
|
||||
$builder->get('rsvp')
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
profile.name: Name
|
|
@ -1,5 +1,23 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle;
|
||||
|
||||
use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
|
|
|
@ -1,5 +1,23 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle\Tests\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
||||
|
@ -12,5 +30,4 @@ class DefaultControllerTest extends WebTestCase
|
|||
|
||||
$crawler = $client->request('GET', '/');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,23 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* doughnutwedding.com
|
||||
* Copyright (C) 2017 http://doughnutwedding.com eric@doughnutwedding.com
|
||||
*
|
||||
* 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Sikofitt\DoughnutWeddingBundle\Tests\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
||||
|
@ -33,5 +51,4 @@ class ImageControllerTest extends WebTestCase
|
|||
|
||||
$crawler = $client->request('GET', '/category');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,13 +10,13 @@ use Symfony\Component\Debug\Debug;
|
|||
|
||||
// This check prevents access to debug front controllers that are deployed by accident to production servers.
|
||||
// Feel free to remove this, extend it, or make something more sophisticated.
|
||||
if (isset($_SERVER['HTTP_CLIENT_IP'])
|
||||
/*if (isset($_SERVER['HTTP_CLIENT_IP'])
|
||||
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|
||||
|| !(in_array(@$_SERVER['REMOTE_ADDR'], ['172.19.0.1','127.0.0.1', '::1']) || php_sapi_name() === 'cli-server')
|
||||
) {
|
||||
header('HTTP/1.0 403 Forbidden');
|
||||
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
|
||||
}
|
||||
}*/
|
||||
|
||||
/** @var \Composer\Autoload\ClassLoader $loader */
|
||||
$loader = require __DIR__.'/../app/autoload.php';
|
||||
|
|
|
@ -14,13 +14,13 @@ if (!isset($_SERVER['HTTP_HOST'])) {
|
|||
exit('This script cannot be run from the CLI. Run it from a browser.');
|
||||
}
|
||||
|
||||
if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
|
||||
'127.0.0.1',
|
||||
'::1',
|
||||
))) {
|
||||
header('HTTP/1.0 403 Forbidden');
|
||||
exit('This script is only accessible from localhost.');
|
||||
}
|
||||
//if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
|
||||
// '127.0.0.1',
|
||||
// '::1',
|
||||
//))) {
|
||||
// header('HTTP/1.0 403 Forbidden');
|
||||
// exit('This script is only accessible from localhost.');
|
||||
//}
|
||||
|
||||
require_once dirname(__FILE__).'/../var/SymfonyRequirements.php';
|
||||
|
||||
|
|
Loading…
Reference in New Issue