Files
codefever/application/libraries/service/AccessControl/APIAuth.php
Carney Wu d3de96487f initial version (#1)
* fix(Useless Code): remove useless code

* feat(Deploy Scripts): add deploy scripts

* fix(Delopy Script): change settings

* fix(Deploy Script): fix ssh-keygen script

* fix(Deploy Script): change env file path

* feat(Deploy Script): add db migration

* fix(Deploy script): change script

* feat(Deploy Script): add sql file to create database

* fix(Deploy Script): add composer support

* fix(Deploy Script): add composer

* fix(Service Script): add http gateway

* fix(Deploy Script): add git path

* fix(Deploy Script): fix setting bugs

* fix(Init Script): get user from config

* fix(Service): adjust run users

* feat(Doc): add doc

* fix(Doc): change docs

* fix(Deploy script): change owner of storage path

* feat: codefever-community documentation system

* fix(Doc): doc details page style

* feat: fix page navigation

* fix(SQL File): fix db file fit MySQL 5.7

* fix(FileTree): empty repository display

* fix: fix helper navigation

* docs(zh-cn essential part):

* fix(Doc Style): change markdown.css

* docs(contribution doc):

* fix: unified page style

* docs(Readme): add readme

* build(Build):

Co-authored-by: cubic <carneywu@pgyer.com>
Co-authored-by: pololi <pololi@pgyer.com>
Co-authored-by: yangchen <chenyang@pgyer.com>
2022-01-19 17:21:59 +08:00

50 lines
1.3 KiB
PHP
Executable File

<?php
namespace service\AccessControl;
use service\Network\Request;
use service\Network\Response;
class APIAuth
{
const AUTH_TYPE_WEB_USER = 'web_user';
const AUTH_TYPE_ADMIN_WEB_USER = 'web_admin_user';
const AUTH_TYPE_GATEWAY = 'internal_gateway';
private static $CI;
static function auth(array $authTypes)
{
if (in_array(self::AUTH_TYPE_GATEWAY, $authTypes)) {
if (Request::parse()->token === YAML_GATEWAY_TOKEN) {
Request::setAuthData([]);
return TRUE;
}
}
if (in_array(self::AUTH_TYPE_WEB_USER, $authTypes)) {
self::$CI = &get_instance();
$userData = self::$CI->session->userdata;
$uKey = $userData['userInfo']['u_key'];
if ($uKey) {
self::$CI->load->model('User_model', 'userModel');
$userInfo = self::$CI->userModel->get($uKey);
if ($userInfo) {
Request::setAuthData(['userData' => $userInfo]);
return TRUE;
}
}
}
if (in_array(self::AUTH_TYPE_ADMIN_WEB_USER, $authTypes)) {
$userInfo = Request::parse()->authData['userData'];
if ($userInfo['u_admin']) {
return TRUE;
}
}
Response::reject(0x0101);
}
}