mirror of
https://github.com/DzzXH/DzzOffice.git
synced 2026-04-10 14:35:12 +08:00
优化应用权限检测逻辑
请注意,此次修改将影响OnlyOffice插件,确保OnlyOffice插件Dzz小胡版为X1.26.1版本。 优化后的应用权限检测逻辑如下:首先,判断用户是否为管理员以及访问的应用是否已设置权限。若用户为管理员且访问的应用未设置应用权限,则跳过权限检测。若用户为非管理员且访问的应用有权限设置,则获取用户UID。若用户已登录,则以登录用户的UID作为UID参数;若用户未登录,则检查是否带有加密的用户UID,若有,则以此作为UID参数。接下来,判断UID参数是否有值。若有,则根据UID检查该用户是否有权限访问该应用;若无UID,则判断访问的应用是否设置了全员可用或是否仅限游客访问。若应用设置为全员可用或仅限游客可用,则允许未登录用户访问应用;反之,跳转至登录界面。 Signed-off-by: 小胡 <3203164629@qq.com>
This commit is contained in:
@@ -608,12 +608,16 @@ class dzz_app extends dzz_base{
|
||||
}
|
||||
}
|
||||
}
|
||||
if($appidxu=C::t('app_market')->fetch_by_identifier(CURMODULE)){
|
||||
if($this->var['member']['adminid'] || $_GET['do']=='savefile'){
|
||||
}elseif($appidxu['available']==0){
|
||||
if(!$this->var['member']['adminid'] && $appidxu=C::t('app_market')->fetch_by_identifier(CURMODULE)){
|
||||
if($this->var['member']['uid']){
|
||||
$uid=$this->var['member']['uid'];
|
||||
}elseif($_GET['uidtoken']){
|
||||
$uid=intval(dzzdecode($_GET['uidtoken']));
|
||||
}
|
||||
if(!$appidxu['available']){
|
||||
showmessage(lang('该应用已关闭,请联系管理员。'));
|
||||
}elseif($this->var['member']['uid']){
|
||||
$appuid= C::t('user_field')->fetch($this->var['member']['uid']);
|
||||
}elseif($uid){
|
||||
$appuid= C::t('user_field')->fetch($uid);
|
||||
$appuidz=explode(',',$appuid['applist']);
|
||||
if (in_array($appidxu['appid'],$appuidz)){
|
||||
}elseif($config=dzz_userconfig_init()){
|
||||
@@ -622,7 +626,7 @@ class dzz_app extends dzz_base{
|
||||
}else{
|
||||
$applist=array();
|
||||
}
|
||||
$appuid= C::t('user_field')->fetch($_G['uid']);
|
||||
$appuid= C::t('user_field')->fetch($uid);
|
||||
$appuidz=explode(',',$appuid['applist']);
|
||||
if (in_array($appidxu['appid'],$appuidz)){
|
||||
}else{
|
||||
|
||||
Reference in New Issue
Block a user