You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现管理员或日程创建人可见编辑删除按钮

礼堂/会议室预约系统日程详情权限逻辑优化

原有逻辑说明

  • 原有日程详情模态框仅做了管理员权限校验:只有用户类型不为2的管理员账号可看到编辑、删除按钮,普通用户无法查看操作入口。
  • 原有核心判断代码:
<?php
   if($_SESSION['userdata']['type'] !=2 ){
?>
  • 原有模态框完整代码如下:
<?php
require_once('../../config.php');

if(isset($_GET['id']) && $_GET['id'] > 0){
    $qry = $conn->query("SELECT s.*,a.room_name FROM `schedule_list` s inner join assembly_hall a on a.id = s.assembly_hall_id where s.id = '{$_GET['id']}' ");
    if($qry->num_rows > 0){
        foreach($qry->fetch_assoc() as $k => $v){
            $$k=$v;
        }
    }
}
?>
<div class="container-fluid p-2">
        <p><b>Room/Hall Name:</b> <?php echo $room_name ?></p>
        <p><b>Email:</b> <?php echo strtolower($reserved_by) ?></p>
        <p><b>Date/Time Start:</b> <?php echo date("M d, Y h:i A",strtotime($datetime_start)) ?></p>
        <p><b>Date/Time End:</b> <?php echo date("M d, Y h:i A",strtotime($datetime_end)) ?></p>
        <p><b>Meeting Agenda:</b><br> <span><?php echo $schedule_remarks ?></span></p>
    </div>
    <div class="modal-footer">
        <?php
            if($_SESSION['userdata']['type'] != 2 ){
        ?>
        <button type="button" id="update" class="btn btn-primary btn-flat" data-id="<?php echo $_GET['id'] ?>">Edit</button>
        <button type="button" id="delete" class="btn btn-danger btn-flat" data-id="<?php echo $_GET['id'] ?>">Delete</button>
        <?php
            }
        
        ?>

优化需求

  • 调整权限判断规则:当当前登录用户的邮箱与日程预约人邮箱(即strtolower($reserved_by)的输出值)一致时,也就是当前用户为该日程的提交创建人,同样展示编辑、删除按钮,允许用户操作自己创建的日程。

可用实现代码

  • 以下判断逻辑已验证可正常实现需求,替换原modal-footer区域的权限判断代码即可:
<?php
        if($_SESSION['userdata']['email'] == strtolower($reserved_by) ){
    ?>
    <button type="button" id="update" class="btn btn-primary btn-flat" data-id="<?php echo $_GET['id'] ?>">Edit</button>
    <button type="button" id="delete" class="btn btn-danger btn-flat" data-id="<?php echo $_GET['id'] ?>">Delete</button>
    <?php
        }   
    elseif ($_SESSION['userdata']['type'] == 1 ){
    ?>
 <button type="button" id="update" class="btn btn-primary btn-flat" data-id="<?php echo $_GET['id'] ?>">Edit</button>
    <button type="button" id="delete" class="btn btn-danger btn-flat" data-id="<?php echo $_GET['id'] ?>">Delete</button>
    <?php
}
?>

权限逻辑说明:优先校验当前用户是否为日程创建人(邮箱匹配即通过),其次校验当前用户是否为类型1的管理员,两类用户均可看到操作按钮;其余普通用户无操作入口。


内容的提问来源于stack exchange,提问作者Jonjon Candare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 09:36:25