public function doTest() { // setcookie('tes', 'test', time()+100,'/'); sapp('cookies')->set('sccheck_demo', 'dfsadfasdfsdf', 100000); sapp('cookies')->set('sccheck_demo', 'dfsadfasdfsdf', 100000); print_r($_COOKIE); }
public function handle($request, \Closure $next) { // Perform action /* |------------------------------------------------ | 载入系统初始化信息 Vo.config.php初始化 App/Config/Config.php |------------------------------------------------ */ //载入模块配置信息 dc('Vo', config('Vo.config')); //vc() 获取 //环境信息 dc('Environment', \Grace\Environment::getInstance()->all()); //get / post 信息 $res['get'] = sapp('req')->get; $res['post'] = sapp('req')->post; dc('Req', $res); /* |-------------------------------------------------------- | 模块信息 / 根据根据get post 获取 |-------------------------------------------------------- */ // if (dc('Req')['get']['m']) { //修改fc 记录用户config $file = rtrim(APPROOT, '/') . '/Modules/' . dc('Modulelist')[dc('Req')['get']['m']] . '/Conf.php'; $config = $this->load($file); //对跟配置进行重写 foreach ($config as $key => $value) { dc($key, $value); } //dc('Module',$config); } return $next($request); }
public function handle($request, \Closure $next) { //初步建立bus bus('root', sc('Router')['m'] ? rtrim(APPROOT, '/') . '/Modules/' . sc('Modulelist')[sc('Router')['m']] . '/' : rtrim(APPROOT, '/') . '/'); $m = sc('Router')['m'] ?: 'N'; $c = sc('Router')['c'] ?: 'N'; $a = sc('Router')['a'] ?: 'N'; $e = sc('Router')['e'] ?: 'N'; $t = sc('Router')['type'] ?: 'N'; bus('mc', "{$m}.{$c}"); bus('mca', "{$m}.{$c}.{$a}"); bus('mcaet', "{$m}.{$c}.{$a}.{$e}.{$t}"); bus('mcaroot', sc('mcaroot')); //bus('page', sc('Router')['m']."_".sc('Router')['c']."_".sc('Router')['a']); // bus('pageex', sc('Router')['m']."_".sc('Router')['c']."_".sc('Router')['a']."_".sc('Router')['e']."_".sc('Router')['type']); bus('app', sc('App')); bus('router', sc('Router')); bus('env', sc('Env')); bus('get', sapp('Req')->get); bus('post', sapp('Req')->post); bus('view', []); bus('_page', sc('_page')); // Perform action return $next($request); }
public function handle($request, \Closure $next) { //|-------------------------------------------------------- sapp('Ground')->mcae(); // Perform action return $next($request); }
public static function run() { !defined('APPROOT') && define('APPROOT', '../App/'); sc(['debug' => dc('debug'), 'error_reporting' => dc('error_reporting'), 'mcaroot' => dc('mcaroot')]); // 应用到类 // set_error_handler(array('App\Application', 'my_error_handler')); // 示例的做法 /* |------------------------------------------------ | 错误抑制 |------------------------------------------------ */ if (sc('debug')) { //错误报告 ini_set('error_reporting', sc('error_reporting')); } else { //不报告任何错误 error_reporting(0); } /* |------------------------------------------------ | 初始化 App/Config/Config.php |------------------------------------------------ */ sapp('ap')->Middleware(['SysMiddlewareConfigini' => \Grace\Middleware\SysMiddlewareConfigini::class, 'SysMiddlewareEnvini' => \Grace\Middleware\SysMiddlewareEnvini::class, 'SysMiddlewareRouter' => \Grace\Middleware\SysMiddlewareRouter::class, 'SysMiddlewareBusbuild' => \Grace\Middleware\SysMiddlewareBusbuild::class]); //D(sc()); //D(dc()); //debug = false 的时候置空 /* -> 获得底层数据sc |------------------------------------------------ | 初始化 App/Config/Config.php |------------------------------------------------ | 开始释放控制权 */ self::DoController(); }
public function doLogout() { sapp('cookies')->clear('userlogin'); sapp('cookies')->clear('logintime'); sapp('cookies')->clear('sccheck'); R('/admin/auth/login/'); }
public function doIndex() { //======================================= $md = sapp('Struct')->zs(); print_r($md); exit; $this->display('', ['res' => "\n 1 : DEMO [demo]\n 2 : geter列表查看\n 3 : 对象列表查看\n 4 : sc内容查看\n 5 : router内容查看\n 6 : 其他继续整理\n "]); }
public function doMenu_Ed($param) { $sql = "select active from menu where id = " . intval($param); $st = sapp('SQLite')->getone($sql); $newactive = $st ? 0 : 1; sapp('SQLite')->update('menu', 'active', $newactive, 'id', intval($param)); echo json_encode(['code' => 200, 'msg' => '-']); }
public function mymca() { $mca = bus('mca'); //检索当前mca 的id $mymca = sapp('SQLite')->getrow("select * from menu where mca = '{$mca}'"); $preid = intval($mymca['preid']); if ($preid) { $mymca['parent'] = sapp('SQLite')->getrow("select * from menu where id = {$preid}"); } return $mymca; }
public function doGeter() { $where = 1; //去除无效的 if ($_COOKIE['set_get_list']) { $where .= " and active != 0"; } $sql = "select * from geter where {$where} order by sort desc,id desc"; $res = sapp('SQLite')->getall($sql); view('', ['res' => $res]); }
public function handle($request, \Closure $next) { //建立中间件 & 行为 $action = bus('router')['action']; $params = bus('router')['param']; //执行controller自带的中间件 //建立视图bus sapp('ap')->Middleware(bus('controller')->middlewareBefore()); bus('controller')->{$action}($params); sapp('ap')->Middleware(bus('controller')->middlewareAfter()); // Perform action return $next($request); }
public function get($key = '') { $mc = explode('.', $key); $c = $mc[0] ?: ''; $c = ucfirst(strtolower($c)); //首字母大写 $a = $mc[1] ?: 'index'; $p = isset($mc[2]) ? $mc[2] : ''; //=========================================================== sapp('Ground')->geter($key); //底层数据记录 $class = $this->getClass($c); return $class->{$a}($p); }
public function doGmenu($groupid = 0) { $groupid = intval($groupid); $where = 1; if ($groupid) { $where .= " and groupid = {$groupid}"; } //先进行分页运算 /* * 1 用户组列表 * 2 该用户组的权限 * */ $res = sapp('SQLite')->getone("select menuid from RBAC_group_mca where {$where} order by id desc"); $res = $res ? unserialize($res) : []; //反序列号 //分页中间件 view('', ['grouplist' => sapp('db')->getall("SELECT * FROM user_group"), 'groupid' => $groupid, 'groupmenu' => $res, 'menulist' => $groupid ? sapp('SQLite')->getall("select * from menu where active = 1 order by sort desc,id desc") : [], 'page' => bus('page')]); }
public function Middleware($middlewarelist) { if (is_array($middlewarelist)) { foreach ($middlewarelist as $key => $value) { //这里需要进一步测试,来展示对资源的占用情况 sapp('ground')->middleware($key, $value); //ground if (sc('debug')) { //debug 模式下直接调用 $this->middlewarelist[$key] = new $value(); $this->middlewarelist[$key]->run(); //执行中间件 } else { //debug = false unset //or 这里关系到对内存的占用情况 $ms = new $value(); $ms->run(); unset($ms); } } } }
function bus($key = null, $value = array()) { $args = func_num_args(); //1 : 返回配置信息 if ($args == 0) { return sapp('bus')->all(); } //2 : 有一个参数 if ($args == 1) { if (is_string($key)) { //如果传入的key是字符串 return sapp('bus')[$key]; } if (is_array($key)) { if (array_keys($key) !== range(0, count($key) - 1)) { //如果传入的key是关联数组 foreach ($key as $k => $v) { sapp('bus')[$k] = $v; } //Sham\Wise\Wise::getInstance()->_config = array_merge(Sham\Wise\Wise::getInstance()->_config, $key); } else { $ret = array(); foreach ($key as $k) { //sapp('bus')[$k] = $key[$k]; $ret[$k] = sapp('bus')[$k]; } return $ret; } } } else { //设置一个值 if (is_string($key)) { //Sham\Wise\Wise::getInstance()->_config[$key] = $value; sapp('bus')[$key] = $value; } } return null; }
public function login($userlogin = '') { $sql = "SELECT * FROM `user`, user_profile\n WHERE `user`.userid = user_profile.userid\n and `user`.login = {$userlogin}\n "; $res = sapp('db')->getrow($sql); return $res; }
include "../src/Helper.php"; include "../vendor/autoload.php"; /* * 调试 //数据的调用 $de = sapp('geter'); $de->get('gs.demo.123'); //----------------------------------------------------- //调试模式 $de->actions(); //返回出所有的方法 echo $de; $de->demo(); $de(); //----------------------------------------------------- */ $bus = sapp('bus'); $bus['uuu'] = 9999999999.0; print_r($bus->all()); $key = 'gs.demo.123'; //Sham\Vo\Vo::getInstance()->make('geter')->get($key); $ms = geter('gs.demo.123'); echo '<br>'; print_r($ms); echo '<br>'; exit; //$db = sapp('Db'); //print_r($db()); // //手动添加相对应的配置 // $config = [ // 'afds'=>'adsffsdafdsa', // 'afds1'=>'adsffsdafdsa',
public function __construct($config = array()) { $this->_config = $config; //对ap 进行一些基础设置 $this->routeMiddleware = ['beforeController' => \App\Middleware\BeforeController::class]; /* |------------------------------------------- | 建立信息sc |------------------------------------------- | 主要是配置信息 | App/config.php + C() + Struct; */ // print_r(sc()); sc(C()); sc('Struct', sapp('struct')->all()); /* |------------------------------------------- | 建立信息bus |------------------------------------------- | 主要是运行过程中的信息,和运算结果 | bus 初始化执行 */ bus('modules', C('Router')['method_modules']); //模块 bus('controller', C('Router')['method_controller']); //控制器 bus('method', C('Router')['method_action']); //行为 bus('ext', C('Router')['method_action_ext']); //行为扩展 //添加Middleware 进入bus // bus('Middleware', sc('Middleware')); //中间件定义 bus('router', C('Router')); //路由 bus('user', geter('user.info')); //用户相关 bus('usergroup', geter('user.group')); //用户组信息 bus('userrulelib', geter('user.rulelib')); //用户组权限信息 bus('menu', []); //后台菜单 bus('page', []); //页面信息 bus('rules', sc('rules')); //rbacrules bus('app', sc('app')); //app相关 //req -> request bus('req', ['get' => C('Router')['params'], 'post' => $_POST, 'cookies' => $_COOKIE, 'session' => $_SESSION, 'server' => $_SERVER]); bus('display', []); //页面信息 bus('touchlist', []); //接触日志 sapp('Mmc')->set('demo1', null, 10000); $ms1 = sapp('Mmc')->get('demo1'); }
public function mcae() { //添加数据进入mcae数据库 /* * moudle * controller * action * actionext * mothed */ $moudle = bus('router')['m'] ?: 'N'; $controller = bus('router')['c'] ?: 'N'; $action = bus('router')['a'] ?: 'N'; $actionext = bus('router')['e'] ?: 'N'; $mothed = bus('router')['type'] ?: 'N'; $mcae = sapp('SQLite')->getall('select * from mcae'); $ms = array(); foreach ($mcae as $value) { $ms[$value['module']][$value['controller']][$value['action']][$value['actionext']][$value['mothed']] = 1; } if (!$ms[$moudle][$controller][$action][$actionext][$mothed]) { sapp('SQLite')->insert('mcae', ['module' => $moudle, 'controller' => $controller, 'action' => $action, 'actionext' => $actionext, 'mothed' => $mothed]); } //|-------------------------------------------------------- //提炼出 page_menu $mc = "{$moudle}.{$controller}"; $mca = "{$moudle}.{$controller}.{$action}"; $mcaemenu = sapp('SQLite')->getall('select * from menu'); $ms = array(); foreach ($mcaemenu as $value) { $ms[$value['mc']][$value['mca']] = 1; } if (!$ms[$mc][$mca]) { sapp('SQLite')->insert('menu', ['mc' => $mc, 'mca' => $mca, 'icon' => 'fa fa-th', 'url' => "/{$moudle}/{$controller}/{$action}/"]); } //|-------------------------------------------------------- }
public function login($userlogin = '') { $userlogin = saddslashes($userlogin); $sql = "SELECT * FROM `user`\n WHERE `user`.login = '******'\n "; $res = sapp('db')->getrow($sql); return $res; }
public function doIndex() { //ruleLib不再管理范围之内,交给专门的程序去处理 $where = 1; //去除无效的 if ($_COOKIE['set_get_list']) { $where .= " and user.active != 0"; } $res = sapp('db')->getall("\tselect user.* from user\n\t\t\t\t\t\t\t\t\twhere {$where}\n\t\t\t\t\t\t\t\t\torder by user.userId desc\n\t\t\t\t\t\t\t\t\t"); view('', ['res' => $res, 'group' => geter('group.KeyGroupidActiveTrue')]); }
function W($name, $data = array()) { // $fullName = '\\App\\Widget\\' . ucfirst($name) . 'Widget'; sapp('Ground')->widget($name); //底层数据记录 $widget = new $fullName(); $widget->invoke($data); }
public function onRender($args = NULL) { $action = sApp()->request->parameters["action"]; sSmarty()->assign("action", $action); /* LOGIN */ if ($action == "login") { $email = sApp()->request->parameters['email']; $password = sApp()->request->parameters['password']; $yg_login_referrer = sApp()->request->parameters["yg_login_referrer"]; sUserMgr()->impersonate(sUserMgr()->getAdministratorID()); $extproperties = $this->extensionProperties->get(); if ($yg_login_referrer == '') { $yg_login_referrer = $extproperties['STANDARD_REFERRER']['URL']; } sSmarty()->assign("yg_login_referrer", $yg_login_referrer); $userid = sUserMgr()->validate($email, $password); sUserMgr()->unimpersonate(); if ($userid === false) { sSmarty()->assign("yg_login_error_code", "1"); sSmarty()->assign('action', $action); sSmarty()->assign("email", $email); } else { sApp()->session->setPSessionVar("username", $email); sApp()->session->setPSessionVar("password", $password); sApp()->session->refrehSessionCookie(); sApp()->session->setPSessionVar("isvalidated", true); sApp()->session->setPSessionVar("keepLoggedIn", true); sApp()->session->cookie_time = time() + 60 * 60 * 24 * 365; http_redirect($yg_login_referrer); } } /* LOGOUT */ if ($action == $this->extensionProperties->getValue('LOGOUT_ACTION')) { $extproperties = $this->extensionProperties->get(); $logout_referrer = $extproperties['STANDARD_LOGOUT_REFERRER']['URL']; sApp()->session->setPSessionVar('username', ''); sApp()->session->setPSessionVar('password', ''); sApp()->session->setPSessionVar('isvalidated', false); sApp()->session->setPSessionVar('keepLoggedIn', false); http_redirect($logout_referrer); } /* PASSWORD RECOVERY */ if ($action == "pwd_step1") { sUserMgr()->impersonate(sUserMgr()->getAdministratorID()); $email = sApp()->request->parameters["user_email"]; $user_info = sUserMgr()->getByLogin($email); if ($user_info) { $user = sUserMgr()->getUser($user_info['ID']); sUserMgr()->unimpersonate(); $expireTS = time() + 60 * 60 * 24; $token = $user->generateToken($expireTS); $page = $this->getPage(); $pageUrl = $page->getUrl(); // Generate path for recovery URL $passwordResetUrl = sApp()->request->prefix . '://' . sApp()->request->http_host; $passwordResetUrl .= $pageUrl . '?action=pwd_step2&user_token=' . urlencode($token); echo $passwordResetUrl; \framework\import("org.phpmailer.phpmailer"); $mail = new \PHPMailer(); $mail->Encoding = '8bit'; $mail->CharSet = 'utf-8'; $mail->From = $this->extensionProperties->getValue("FROM_EMAIL"); $mail->FromName = $this->extensionProperties->getValue("FROM_NAME"); $mail->Subject = $this->extensionProperties->getValue("SUBJECT"); $mail->Body = $this->extensionProperties->getValue("BODY_PT1"); $mail->Body .= "\n" . $passwordResetUrl . "\n"; $mail->Body .= $this->extensionProperties->getValue("BODY_PT2"); $mail->AddAddress($email); $smtpServer = (string) sapp()->config->getVar('CONFIG/MAILINGS/SMTP'); if ($smtpServer) { $mail->IsSMTP(); $mail->Host = $smtpServer; } $mail->Send(); $mail->ClearAddresses(); sSmarty()->assign('recovery_mail_sent', true); } else { if (strlen(trim($email)) > 0) { sSmarty()->assign('error_step1', true); } } } if ($action == "pwd_step2") { $error_step2 = false; $form_send = sApp()->request->parameters['form_send']; sSmarty()->assign('form_send', $form_send); $token = sApp()->request->parameters['user_token']; sSmarty()->assign('user_token', $token); $valid_token = \sUserMgr()->getUserIdByToken($token); if (!$valid_token) { $error_step2 = true; $error_token = true; sSmarty()->assign('error_step2', $error_step2); sSmarty()->assign('error_token', $error_token); } if ($form_send == true) { $user_password = sapp()->request->parameters['user_password']; $user_password_repeat = sapp()->request->parameters['user_password_repeat']; $user_id = sUserMgr()->getUserIdByToken($token); sUserMgr()->impersonate(sUserMgr()->getAdministratorID()); $user = sUserMgr()->getUser($user_id); sUserMgr()->unimpersonate(); $user_info = $user->get(); if ($user_info) { // Check if password is repeated correctly if ($user_password != $user_password_repeat) { $error_repeat = true; sSmarty()->assign('error_repeat', $error_repeat); $error_step2 = true; } // Check if password is secure enough $password_ok = sUserMgr()->verifyPasswordStrength($user_password); if (!$password_ok) { $error_chars = true; sSmarty()->assign('error_chars', $error_chars); $error_step2 = true; } if (!$error_step2) { sUserMgr()->impersonate(sUserMgr()->getAdministratorID()); $user = sUserMgr()->getUser($user_info['ID']); $user->setPassword($user_password); $user->removeToken(); sUserMgr()->unimpersonate(); } else { sSmarty()->assign('error_step2', $error_step2); } } else { $error_step2 = true; sSmarty()->assign('error_step2', $error_step2); } } } return true; }
public function chr($groupchr = '') { $sql = "select * from user_group WHERE groupchr = {$groupchr}"; return sapp('db')->getrow($sql); }
public function geter() { $res = sapp('SQLite')->getall("select * from geter order by sort desc"); return $res; }