コード例 #1
0
ファイル: demo.php プロジェクト: shampeak/ap.so
 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);
 }
コード例 #2
0
 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);
 }
コード例 #3
0
 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);
 }
コード例 #4
0
 public function handle($request, \Closure $next)
 {
     //|--------------------------------------------------------
     sapp('Ground')->mcae();
     // Perform action
     return $next($request);
 }
コード例 #5
0
ファイル: Application.php プロジェクト: shampeak/ap.so
 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();
 }
コード例 #6
0
ファイル: auth.php プロジェクト: shampeak/ap.so
 public function doLogout()
 {
     sapp('cookies')->clear('userlogin');
     sapp('cookies')->clear('logintime');
     sapp('cookies')->clear('sccheck');
     R('/admin/auth/login/');
 }
コード例 #7
0
ファイル: help.php プロジェクト: shampeak/_m.so
 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        "]);
 }
コード例 #8
0
ファイル: set.menu.php プロジェクト: shampeak/ap.so
 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' => '-']);
 }
コード例 #9
0
ファイル: Menu.php プロジェクト: shampeak/ap.so
 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;
 }
コード例 #10
0
ファイル: set.geter.php プロジェクト: shampeak/ap.so
 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]);
 }
コード例 #11
0
 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);
 }
コード例 #12
0
ファイル: Geter.php プロジェクト: shampeak/ap.so
 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);
 }
コード例 #13
0
ファイル: set.gmenu.php プロジェクト: shampeak/ap.so
 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')]);
 }
コード例 #14
0
ファイル: Ap.php プロジェクト: shampeak/ap.so
 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);
             }
         }
     }
 }
コード例 #15
0
ファイル: Helper.php プロジェクト: shampeak/_m.so
 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;
 }
コード例 #16
0
ファイル: User.php プロジェクト: shampeak/_m.so
 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;
 }
コード例 #17
0
ファイル: demo.php プロジェクト: shampeak/_m.so
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',
コード例 #18
0
ファイル: Ap.php プロジェクト: shampeak/_m.so
 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');
 }
コード例 #19
0
ファイル: Ground.php プロジェクト: shampeak/ap.so
 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}/"]);
     }
     //|--------------------------------------------------------
 }
コード例 #20
0
ファイル: User.php プロジェクト: shampeak/ap.so
 public function login($userlogin = '')
 {
     $userlogin = saddslashes($userlogin);
     $sql = "SELECT * FROM `user`\n                              WHERE `user`.login = '******'\n                              ";
     $res = sapp('db')->getrow($sql);
     return $res;
 }
コード例 #21
0
ファイル: category.php プロジェクト: shampeak/ap.so
 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')]);
 }
コード例 #22
0
ファイル: Helper.php プロジェクト: shampeak/ap.so
function W($name, $data = array())
{
    //
    $fullName = '\\App\\Widget\\' . ucfirst($name) . 'Widget';
    sapp('Ground')->widget($name);
    //底层数据记录
    $widget = new $fullName();
    $widget->invoke($data);
}
コード例 #23
0
ファイル: extension.php プロジェクト: nrueckmann/yeager
 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;
 }
コード例 #24
0
ファイル: Group.php プロジェクト: shampeak/ap.so
 public function chr($groupchr = '')
 {
     $sql = "select * from user_group WHERE groupchr = {$groupchr}";
     return sapp('db')->getrow($sql);
 }
コード例 #25
0
ファイル: Set.php プロジェクト: shampeak/ap.so
 public function geter()
 {
     $res = sapp('SQLite')->getall("select * from geter order by sort desc");
     return $res;
 }