parent
4776b9075d
commit
29b35e57b0
@ -0,0 +1,42 @@ |
|||||||
|
<?php |
||||||
|
/** |
||||||
|
* Authserver, an OAuth2-based single-signon authentication provider written in PHP. |
||||||
|
* |
||||||
|
* Copyright (C) $today.date Lars Vierbergen |
||||||
|
* |
||||||
|
* his program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU Affero 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 Affero General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU Affero General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||||
|
*/ |
||||||
|
|
||||||
|
namespace Application\Migrations; |
||||||
|
|
||||||
|
use Doctrine\DBAL\Migrations\AbstractMigration; |
||||||
|
use Doctrine\DBAL\Schema\Schema; |
||||||
|
|
||||||
|
class VersionAuthserverExternalAccount20170829111009 extends AbstractMigration |
||||||
|
{ |
||||||
|
public function up(Schema $schema) |
||||||
|
{ |
||||||
|
$externalUser = $schema->getTable('vierbergenlars_external_account_external_user'); |
||||||
|
|
||||||
|
$externalUser->addColumn('providerFriendlyName', 'string')->setNotnull(false); |
||||||
|
} |
||||||
|
|
||||||
|
public function down(Schema $schema) |
||||||
|
{ |
||||||
|
$externalUser = $schema->getTable('vierbergenlars_external_account_external_user'); |
||||||
|
|
||||||
|
$externalUser->dropColumn('providerFriendlyName'); |
||||||
|
} |
||||||
|
} |
||||||
|
|
@ -0,0 +1,6 @@ |
|||||||
|
<a class="btn btn-{{ button.style }} btn-block" href="{{ button.url }}"> |
||||||
|
{% if button.icon %} |
||||||
|
{{ icon(button.icon) }} |
||||||
|
{% endif %} |
||||||
|
{{ button.label }} |
||||||
|
</a> |
@ -1,10 +1,5 @@ |
|||||||
<div class="panel-body"> |
<div class="panel-body"> |
||||||
{% for button in buttons %} |
{% for button in buttons %} |
||||||
<a class="btn btn-{{ button.style }} btn-block" href="{{ button.url?button.url:url(button.route) }}"> |
{% include 'AuthserverExternalAccountBundle:Login:button.html.twig' with {button: button} only %} |
||||||
{% if button.icon %} |
|
||||||
{{ icon(button.icon) }} |
|
||||||
{% endif %} |
|
||||||
{{ button.label }} |
|
||||||
</a> |
|
||||||
{% endfor %} |
{% endfor %} |
||||||
</div> |
</div> |
||||||
|
@ -0,0 +1,140 @@ |
|||||||
|
<?php |
||||||
|
/** |
||||||
|
* Authserver, an OAuth2-based single-signon authentication provider written in PHP. |
||||||
|
* |
||||||
|
* Copyright (C) $today.date Lars Vierbergen |
||||||
|
* |
||||||
|
* his program is free software: you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU Affero 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 Affero General Public License for more details. |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU Affero General Public License |
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||||
|
*/ |
||||||
|
|
||||||
|
namespace vierbergenlars\AuthserverExternalAccountBundle\ValueObject; |
||||||
|
|
||||||
|
|
||||||
|
class Button |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @var string |
||||||
|
*/ |
||||||
|
private $label; |
||||||
|
|
||||||
|
/** |
||||||
|
* @var string |
||||||
|
*/ |
||||||
|
private $url; |
||||||
|
|
||||||
|
/** |
||||||
|
* @var string|null |
||||||
|
*/ |
||||||
|
private $icon = null; |
||||||
|
|
||||||
|
/** |
||||||
|
* @var string |
||||||
|
*/ |
||||||
|
private $style = 'default'; |
||||||
|
|
||||||
|
public function __construct(array $config) |
||||||
|
{ |
||||||
|
$valid = ['label', 'url', 'icon', 'style']; |
||||||
|
foreach($config as $k => $v) |
||||||
|
{ |
||||||
|
if(!in_array($k, $valid)) |
||||||
|
throw new \LogicException(sprintf('Configuration key "%s" is not valid.', $k)); |
||||||
|
$this->{$k} = $v; |
||||||
|
} |
||||||
|
|
||||||
|
$required = ['label', 'url']; |
||||||
|
|
||||||
|
foreach($required as $k) |
||||||
|
{ |
||||||
|
if(!$this->{$k}) |
||||||
|
throw new \LogicException(sprintf('Configuration key "%s" is missing', $k)); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @return string |
||||||
|
*/ |
||||||
|
public function getLabel() |
||||||
|
{ |
||||||
|
return $this->label; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param string $label |
||||||
|
* @return Button |
||||||
|
*/ |
||||||
|
public function setLabel($label) |
||||||
|
{ |
||||||
|
$this->label = $label; |
||||||
|
|
||||||
|
return $this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @return string |
||||||
|
*/ |
||||||
|
public function getUrl() |
||||||
|
{ |
||||||
|
return $this->url; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param string $url |
||||||
|
* @return Button |
||||||
|
*/ |
||||||
|
public function setUrl($url) |
||||||
|
{ |
||||||
|
$this->url = $url; |
||||||
|
|
||||||
|
return $this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @return null|string |
||||||
|
*/ |
||||||
|
public function getIcon() |
||||||
|
{ |
||||||
|
return $this->icon; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param null|string $icon |
||||||
|
* @return Button |
||||||
|
*/ |
||||||
|
public function setIcon($icon) |
||||||
|
{ |
||||||
|
$this->icon = $icon; |
||||||
|
|
||||||
|
return $this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @return string |
||||||
|
*/ |
||||||
|
public function getStyle() |
||||||
|
{ |
||||||
|
return $this->style; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param string $style |
||||||
|
* @return Button |
||||||
|
*/ |
||||||
|
public function setStyle($style) |
||||||
|
{ |
||||||
|
$this->style = $style; |
||||||
|
|
||||||
|
return $this; |
||||||
|
} |
||||||
|
} |
Reference in new issue