File indexing completed on 2024-05-12 05:58:46

0001 <?php
0002 
0003 /**
0004  *  ocs-webserver
0005  *
0006  *  Copyright 2016 by pling GmbH.
0007  *
0008  *    This file is part of ocs-webserver.
0009  *
0010  *    This program is free software: you can redistribute it and/or modify
0011  *    it under the terms of the GNU Affero General Public License as
0012  *    published by the Free Software Foundation, either version 3 of the
0013  *    License, or (at your option) any later version.
0014  *
0015  *    This program is distributed in the hope that it will be useful,
0016  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
0017  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0018  *    GNU Affero General Public License for more details.
0019  *
0020  *    You should have received a copy of the GNU Affero General Public License
0021  *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
0022  *
0023  *    Created: 16.12.2016
0024  **/
0025 class Default_Model_OAuth
0026 {
0027 
0028     const LOGIN_GITUHB = 'github';
0029     const LOGIN_OCS = 'ocs';
0030 
0031 
0032     /**
0033      * @param string $providerId
0034      * @return Default_Model_OAuth_Interface
0035      * @throws Zend_Exception
0036      */
0037     public static function factory($providerId)
0038     {
0039         switch ($providerId) {
0040             case self::LOGIN_GITUHB:
0041                 $authAdapter = new Default_Model_OAuth_Github(
0042                     Zend_Registry::get('db'),
0043                     'member',
0044                     Zend_Registry::get('config')->third_party->github);
0045                 break;
0046 
0047             case self::LOGIN_OCS:
0048                 $authAdapter = new Default_Model_OAuth_Ocs(
0049                     Zend_Registry::get('db'),
0050                     'member',
0051                     Zend_Registry::get('config')->settings->server->oauth);
0052                 break;
0053 
0054             default:
0055                 throw new Zend_Exception('No provider id present');
0056                 break;
0057         }
0058 
0059         return $authAdapter;
0060     }
0061 
0062 }