深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 579|回复: 3
打印 上一主题 下一主题

PDA权限的设计(A解决方案)

[复制链接]

800

主题

1379

帖子

7706

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7706
跳转到指定楼层
楼主
发表于 2021-10-3 23:42:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PDA权限的设计(A解决方案)

权限的获取;
  1. /*
  2. * 插叙访问权限
  3. */
  4. function check_privilege($app,$fun,$emp){
  5.       $ret=0;
  6.       $this->prepare_mes(false);
  7.       $sql="select syant.CHECK_PRIVILEGE('{$app}','{$fun}','{$emp}') bb from dual";
  8.       $row = $this->mes->getRow($sql);
  9.       if($row){
  10.         $ret=$row["bb"]*1;
  11.       }
  12.       return $ret;
  13. }
复制代码


老版本对APP的适应:
  1.     function MPageIQCCreate($sender, $params)
  2.     {
  3.        $this->showDebug();
  4.         $this->getEmp();
  5.        // KIT - CHECKIN - 收料入库
  6.        $flag=check_privilege("SMTAPP","pWhs-checkin.php",$this->emp_no);
  7.        $data=array("action"=>"COMMON",
  8.                   "url"=>"pWhs-checkin.php",
  9.                   "color"=>"#003366",
  10.                   "privilege"=>$flag,
  11.                   );
  12.        //$this->Image1->Link="pDevice.php?d=".$this->getStrEncode($data);
  13.        $this->Image1->Link=get_real_url($data);
  14.     }
复制代码


新版本对APP的适应


  1.                 /*
  2.                  * 展开每一个Image Link, 范例如下:
  3.                  * <div id="Image1_outer" style="Z-INDEX: 0; LEFT: 24px; WIDTH: 120px; POSITION: absolute; TOP: 7px; HEIGHT: 120px">
  4.                  * <div id="Image1_container" style=" width: 120px;  height: 120px; cursor: default;">
  5.                  *         <a href="http://localhost:3571/pIQC.php?emp=SYANT" target="_self" class="ui-link">
  6.                  *                 <img id="Image1" src="../images/IQC.png" width="120" height="120" border="0">
  7.                  *         </a>
  8.                  * </div>
  9.                  * </div>
  10.                  */
  11.                 function printRealLink($kindex,$link){
  12.                         global $config;
  13.                         $kindex=$kindex+10;
  14.                         $bgcolor=$this->bgcolor;
  15.                         $mytop=$link["height"]+$link["top"]+4;
  16.                         $linkdata=array("action"=>"COMMON",        //全部转到COMMON这个activity来处理
  17.                   "url"=>$link["link"],                //真正需要跳转的页面地址
  18.                   "color"=>$this->bgcolor,                        //activity的加载前,webview的背景颜色,
  19.                   "privilege"=>1,                                        //是否有权限,这个数据留给app处理,提示没有权限或者其他操作
  20.                   );
  21.                         $linkstr=$config->site_path."".$this->get_real_url($linkdata, $this->weborapp); //."?emp=".$this->empno;        ///pda/A.php/menu/mainmenu        
  22.                         if($this->bDebug){
  23.                                 $this->addDebugInfo($linkstr,"#".dechex(rand(150, 255)).dechex(rand(150, 255)).dechex(rand(150, 255))."");
  24.                                 //$this->addDebugInfo($linkstr,"rgb(0,0,255)");
  25.                         }
  26.                         /*
  27.                          * app还会在后面固定添加以下参数:
  28.                          * "&did=" + did +
  29.                          * "&rid=" + rid +
  30.                          * "&ap=" + ap +
  31.                          * "&ver=" + ver +
  32.                          * "&emp=" + emp_no +
  33.                          * "&w=" + w +
  34.                          * "&h=" + h +
  35.                          * "&t=" + t +
  36.                          * "&device=pda";
  37.                          */

  38. $str = <<<EOD
  39.                 <div id="{$link["name"]}_outer" style="Z-INDEX: {$kindex}; LEFT: {$link["left"]}px; WIDTH: {$link["width"]}px; POSITION: absolute; TOP: {$link["top"]}px; HEIGHT: {$link["height"]}px">
  40.                         <div id="{$link["name"]}_container" style=" width: {$link["width"]}px;  height: {$link["height"]}px; cursor: default;">
  41.                                 <a href="{$linkstr}" target="_self" class="ui-link">
  42.                                         <img id="Image1" src="../images/{$link["src"]}" width="{$link["width"]}" height="{$link["height"]}" border="0">
  43.                                 </a>
  44.                         </div>
  45.                 </div>
  46. EOD;
  47. $str2=<<<EOD
  48.                 <div id="Label1_outer" style="background-color: {$bgcolor}; Z-INDEX: {$kindex}; LEFT: {$link["left"]}px; WIDTH: {$link["width"]}px; POSITION: absolute; TOP: {$mytop}px; HEIGHT: 24px">
  49. <div id="Label1" style="text-align:center; margin:0 auto; font-family: Tahoma; font-size: 14px;  color: White;font-weight: bold; background-color: {$bgcolor};cursor: default;height:24px;width:{$link["width"]}px;">{$link["title"]}</div>
  50.                 </div>
  51. EOD;
  52.                         return $str."\r\n".$str2;
  53.                 }
复制代码
回复

使用道具 举报

800

主题

1379

帖子

7706

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7706
沙发
 楼主| 发表于 2021-10-3 23:50:00 | 只看该作者
CHECK_PRIVILEGE的实现:
  1. DELIMITER $

  2. DROP FUNCTION IF EXISTS `syant`.`CHECK_PRIVILEGE`$

  3. CREATE DEFINER=`root`@`%` FUNCTION `CHECK_PRIVILEGE`(
  4. P_APP VARCHAR(20),
  5. P_FUN VARCHAR(50),
  6. P_EMP VARCHAR(20)
  7. ) RETURNS int(11)
  8.     DETERMINISTIC
  9. BEGIN
  10.         DECLARE L_COUNT INT;
  11.         DECLARE L_FIDD INT;
  12.         DECLARE stopFlag INT DEFAULT 0;
  13.         DECLARE CONTINUE HANDLER FOR NOT FOUND set stopFlag=1;
  14.         -- select syant.CHECK_PRIVILEGE('SYANT','SMTAPP','pSmt-change.php') from dual
  15.         SET L_COUNT=1;
  16.         select IDD INTO L_FIDD from syant.c_ap_config  WHERE AP_NAME=P_APP AND FUNCTION_NAME=P_FUN LIMIT 1;
  17.         IF(stopFlag=0)THEN
  18.                 select  count(1) into l_count from syant.c_privilege_ap WHERE EMP_NO=P_EMP AND FIDD=L_FIDD LIMIT 1;
  19.                 if(l_count=0)then
  20.                         select count(a.emp_no)  into l_count from syant.c_privilege_role a, syant.c_ap_role_config b
  21.                         where b.fidd=0 and a.emp_no='SYANT' and a.ridd=b.ridd ;
  22.                 end if;
  23.         END IF;
  24.        
  25.         return l_count;
  26. END$

  27. DELIMITER ;
复制代码


回复 支持 反对

使用道具 举报

800

主题

1379

帖子

7706

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7706
板凳
 楼主| 发表于 2021-10-4 10:51:28 | 只看该作者
本帖最后由 zhgc 于 2023-5-12 23:48 编辑

表名定义不清,做如下修改:

select * from syant.c_ap_config                --->syant.c_app_fun_t
select * from syant.c_emp_desc_t        --->  syant.c_emp_desc_t
select * from syant.c_ap_role       ---> syant.c_role_desc_t
select * from syant.c_ap_role_config--->syant.c_role_pri_t
select * from syant.c_privilege_ap--->syant.c_emp_pri_t
select * from syant.c_privilege_role--->syant.c_emp_role_t

create table syant.c_app_fun_t select * from  syant.c_ap_config;
                         syant.c_emp_desc_t
create table syant.c_role_desc_t select * from  syant.c_ap_role;
create table syant.c_role_pri_t select * from  syant.c_ap_role_config;
create table syant.c_emp_pri_t select * from  syant.c_privilege_ap;
create table syant.c_emp_role_t select * from  syant.c_privilege_role;

SELECT * FROM syant.c_app_fun_t
SELECT * FROM syant.c_role_desc_t
select * from syant.c_role_pri_t
select * from syant.c_emp_pri_t
select * from syant.c_emp_role_t

回复 支持 反对

使用道具 举报

800

主题

1379

帖子

7706

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7706
地板
 楼主| 发表于 2021-10-20 17:57:45 | 只看该作者
  1.                 /*
  2.                  * 插叙访问权限
  3.                  */
  4.                 function check_privilege($app,$fun,$emp){
  5.       $ret=0;
  6.                         $this->prepare_mes(false);
  7.       $sql="select syant.CHECK_PRIVILEGE('{$app}','{$fun}','{$emp}') bb from dual";
  8.       $row = $this->mes->getRow($sql);
  9.       if($row){
  10.         $ret=$row["bb"]*1;
  11.       }
  12.       return $ret;
  13.                 }
复制代码





                        if(array_key_exists("appfun",$link)){
                                $priv=$this->check_privilege("SMTAPP",$link["appfun"],$this->empno);
                        }


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-5 06:46 , Processed in 0.040947 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表