mirror of
https://github.com/PGYER/codefever.git
synced 2026-05-17 20:18:55 +08:00
* 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>
50 lines
1.3 KiB
PHP
Executable File
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);
|
|
}
|
|
}
|