Show
Ignore:
Timestamp:
02/21/08 23:14:18 (11 months ago)
Author:
inureyes
Message:

#703

  • 코드 리뷰 중.
  • 전체 블로그 관련 권한에서 ACL을 체크하도록 수정.
  • requirePrivilege() 추가.
  • 블로그 detail 패널에서 팀블로그 사용자가 있는 경우 테이블이 출력되지 않던 오류 수정
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/interface/owner/control/blog/detail/index.php

    r5330 r5339  
    1414$blogsetting = getBlogSettings($bid); 
    1515?> 
    16 <script type="text/javascript"> // <![CDATA[ 
    17 //from interface/owner/setting/teamblog 
    18 function deleteUser(userid, atype) { 
    19     if(atype == 1) { // If there are posts from user. 
    20         if(!confirm("<?php echo _t('선택된 사용자를 정말 삭제하시겠습니까?');?>\n\n<?php echo _t('삭제되는 기존 사용자의 글은 전부 관리자의 글로 변환됩니다.');?>\n(<?php echo _t('글이 전부 삭제되지는 않고 팀블로그의 로그인 데이터만 삭제됩니다');?>)\n<?php echo _t('삭제 이후에는 복원이 불가능합니다.');?> <?php echo _t('정말 삭제 하시겠습니까?');?>")) return false; 
    21     } else { // No post from user. 
    22         if(!confirm('<?php echo _t('삭제 하시겠습니까?');?>'))  
    23             return false; 
    24     } 
    25     var request = new HTTPRequest("GET", "<?php echo $blogURL;?>/owner/control/action/blog/deleteUser/" + "?userid=" + userid + "&blogid=" + <?php echo $bid?>); 
    26     request.onSuccess = function() { 
    27         window.location.href="<?php echo $blogURL;?>/owner/control/blog/detail/<?php echo $bid?>"; 
    28     } 
    29     request.onError = function() { 
    30         alert("<?php echo _t('실패했습니다.');?>"); 
    31     } 
    32     request.send(); 
    33 } 
     16                        <script type="text/javascript">  
     17                        //<![CDATA[ 
    3418 
     19                        //from interface/owner/setting/teamblog 
     20                        function deleteUser(userid, atype) { 
     21                            if(atype == 1) { // If there are posts from user. 
     22                                if(!confirm("<?php echo _t('선택된 사용자를 정말 삭제하시겠습니까?');?>\n\n<?php echo _t('삭제되는 기존 사용자의 글은 전부 관리자의 글로 변환됩니다.');?>\n(<?php echo _t('글이 전부 삭제되지는 않고 팀블로그의 로그인 데이터만 삭제됩니다');?>)\n<?php echo _t('삭제 이후에는 복원이 불가능합니다.');?> <?php echo _t('정말 삭제 하시겠습니까?');?>")) return false; 
     23                            } else { // No post from user. 
     24                                if(!confirm('<?php echo _t('삭제 하시겠습니까?');?>'))  
     25                                    return false; 
     26                            } 
     27                            var request = new HTTPRequest("GET", "<?php echo $blogURL;?>/owner/control/action/blog/deleteUser/" + "?userid=" + userid + "&blogid=" + <?php echo $bid?>); 
     28                            request.onSuccess = function() { 
     29                                window.location.href="<?php echo $blogURL;?>/owner/control/blog/detail/<?php echo $bid?>"; 
     30                            } 
     31                            request.onError = function() { 
     32                                alert("<?php echo _t('실패했습니다.');?>"); 
     33                            } 
     34                            request.send(); 
     35                        } 
     36                         
     37                         
     38                        function deleteBlog(bid) { 
     39                            if (!confirm("<?php echo _t('되돌릴 수 없습니다.');?>\t\n\n<?php echo _t('계속 진행하시겠습니까?');?>"))) return false; 
     40                            var request = new HTTPRequest("GET", "<?php echo $blogURL;?>/owner/control/action/blog/delete/?item="+bid); 
     41                            request.onSuccess = function() { 
     42                                PM.removeRequest(this); 
     43                                window.location.href = '../'; 
     44                            } 
     45                            request.onError = function() { 
     46                                PM.removeRequest(this); 
     47                                msg = this.getText("/response/result"); 
     48                                alert("<?php echo _t('블로그 삭제에 실패하였습니다.');?>\r\nError : " + msg); 
     49                            } 
     50                            PM.addRequest(request, _t("블로그 삭제중")); 
     51                            request.send(); 
     52                        } 
     53                         
     54                        function changeOwner(owner) { 
     55                            var request = new HTTPRequest("<?php echo $blogURL;?>/owner/control/action/blog/changeOwner/?owner="+owner+"&blogid="+<?php echo $bid?>); 
     56                            request.onSuccess = function() { 
     57                                alert("<?php echo _t('소유자가 변경되었습니다. \r\n기존의 소유자는 관리자로 변경되었습니다.');?>"); 
     58                                window.location.reload(); 
     59                            } 
     60                            request.onError = function() { 
     61                                msg = this.getText("/response/result"); 
     62                                alert("<?php echo _t('소유자를 변경하지 못했습니다.');?>\r\nError : " + msg); 
     63                            } 
     64                            request.send(); 
     65                        } 
     66                         
     67                        //from interface/owner/setting/teamblog 
     68                        function changeACL(acltype, userid, checked) { 
     69                            var request = new HTTPRequest("GET", "<?php echo $blogURL;?>/owner/control/action/blog/changeACL/?blogid=" + <?php echo $bid?> + "&acltype=" + acltype + "&userid=" + userid + "&switch=" + checked); 
     70                            request.onSuccess = function() { 
     71                                alert("<?php echo _t('설정을 변경했습니다.');?>", "center", "bottom"); 
     72                                window.location.reload(); 
     73                            } 
     74                            request.onError = function() { 
     75                                alert("<?php echo _t('실패했습니다.');?>"); 
     76                            } 
     77                            request.send(); 
     78); 
     79                        } 
     80                         
     81                        function addUser(user) { 
     82                            var request = new HTTPRequest("GET", "<?php echo $blogURL;?>/owner/control/action/blog/addUser/?user="+user+"&blogid="+<?php echo $bid?>); 
     83                            request.onSuccess = function() { 
     84                                alert("<?php echo _t('팀블로그 참여자를 추가하였습니다.');?>\r\n<?php echo _t('초대 메일은 발송되지 않으며, 새로 추가된 참여자는 기본 권한만을 가지게 됩니다.');?>"); 
     85                                window.location.reload(); 
     86                            } 
     87                            request.onError = function() { 
     88                                msg = this.getText("/response/message"); 
     89                                PM.showErrorMessage("<?php echo _t('참여자를 추가하지 못하였습니다.');?>\r\nMessage : \r\n" + msg,"center","bottom"); 
     90                            } 
     91                            request.send(); 
     92                        } 
     93                        //]]>  
     94                        </script> 
    3595 
    36 function deleteBlog(bid) { 
    37     if (!confirm(_t('되돌릴 수 없습니다.\t\n\n계속 진행하시겠습니까?'))) return false; 
    38     var request = new HTTPRequest(blogURL + "/owner/control/action/blog/delete/?item="+bid); 
    39     request.onSuccess = function() { 
    40         PM.removeRequest(this); 
    41         window.location.href = '../'; 
    42     } 
    43     request.onError = function() { 
    44         PM.removeRequest(this); 
    45         msg = this.getText("/response/result"); 
    46         alert("<?php echo _t('블로그 삭제에 실패하였습니다.');?>\r\nError : " + msg); 
    47     } 
    48     PM.addRequest(request, _t("블로그 삭제중")); 
    49     request.send(); 
    50 } 
    51  
    52 function changeOwner(owner) { 
    53     var request = new HTTPRequest("<?php echo $blogURL;?>/owner/control/action/blog/changeOwner/?owner="+owner+"&blogid="+<?php echo $bid?>); 
    54     request.onSuccess = function() { 
    55         alert("<?php echo _t('소유자가 변경되었습니다. \r\n기존의 소유자는 관리자로 변경되었습니다.');?>"); 
    56         window.location.reload(); 
    57     } 
    58     request.onError = function() { 
    59         msg = this.getText("/response/result"); 
    60         alert("<?php echo _t('소유자를 변경하지 못했습니다.');?>\r\nError : " + msg); 
    61     } 
    62     request.send(); 
    63 } 
    64  
    65 //from interface/owner/setting/teamblog 
    66 function changeACL(acltype, userid, checked) { 
    67     var request = new HTTPRequest("GET", "<?php echo $blogURL;?>/owner/control/action/blog/changeACL/" + "?blogid=" + <?php echo $bid?> + "&acltype=" + acltype + "&userid=" + userid + "&switch=" + checked); 
    68     request.onSuccess = function() { 
    69         alert("<?php echo _t('설정을 변경했습니다.');?>", "center", "bottom"); 
    70         window.location.reload(); 
    71     } 
    72     request.onError = function() { 
    73         alert("<?php echo _t('실패했습니다.');?>"); 
    74     } 
    75     request.send(); 
    76 } 
    77  
    78 function addUser(user) { 
    79     var request = new HTTPRequest("<?php echo $blogURL;?>/owner/control/action/blog/addUser/?user="+user+"&blogid="+<?php echo $bid?>); 
    80     request.onSuccess = function() { 
    81         alert("<?php echo _t('팀블로그 참여자가 추가 되었습니다.\r\n초대 메일은 발송되지 않으며, 새로 추가된 참여자는 기본 권한만을 가지게 됩니다.');?>"); 
    82         window.location.reload(); 
    83     } 
    84     request.onError = function() { 
    85         msg = this.getText("/response/message"); 
    86         alert("<?php echo _t('참여자를 추가하지 못하였습니다.');?>\r\nMessage : \r\n" + msg);//TODO//PM으로 change 
    87     } 
    88     request.send(); 
    89 } 
    90 // ]]> </script> 
    9196                        <div id="part-blog-about" class="part"> 
    9297                            <h2 class="caption"><span class="main-text"><?php echo _t('블로그 정보');?></span></h2> 
     
    101106                                <ul> 
    102107                                    <?php if ($bid == getServiceSetting("defaultBlogId",1)) { ?><li><em><?php echo _t('이 블로그는 대표 블로그입니다.');?></em></li><?php } ?> 
    103                                     <li><?php echo sprintf(_t('이 블로그에는 총 %d개의 글이 있습니다.'), POD::queryCell("SELECT Count(*) FROM {$database['prefix']}Entries WHERE blogid = ".$bid));?></li> 
    104                                     <li><?php echo sprintf(_t('이 블로그에는 총 %d개의 걸린글(트랙백)이 있습니다.'), POD::queryCell("SELECT Count(*) FROM {$database['prefix']}Trackbacks WHERE blogid = ".$bid));?></li> 
    105                                     <li><?php echo sprintf(_t('이 블로그에는 총 %d개의 댓글이 있습니다.'), POD::queryCell("SELECT Count(*) FROM {$database['prefix']}Comments WHERE blogid = ".$bid));?></li> 
    106                                     <li><?php echo sprintf(_t('이 블로그가 사용중인 첨부파일의 총 용량은 %s입니다.'), misc::getSizeHumanReadable(POD::queryCell(" SELECT sum( size ) FROM `{$database['prefix']}Attachments` WHERE blogid = ".$bid)));?></li> 
     108                                    <li><?php echo _f('이 블로그에는 총 %1개의 글이 있습니다.', POD::queryCell("SELECT count(*) FROM {$database['prefix']}Entries WHERE blogid = ".$bid));?></li> 
     109                                    <li><?php echo _f('이 블로그에는 총 %1개의 걸린글(트랙백)이 있습니다.', POD::queryCell("SELECT count(*) FROM {$database['prefix']}Trackbacks WHERE blogid = ".$bid));?></li> 
     110                                    <li><?php echo _f('이 블로그에는 총 %1개의 댓글이 있습니다.', POD::queryCell("SELECT count(*) FROM {$database['prefix']}Comments WHERE blogid = ".$bid));?></li> 
     111                                    <li><?php  
     112        $attachmentSum = POD::queryCell("SELECT sum(size) FROM `{$database['prefix']}Attachments` WHERE blogid = ".$bid); 
     113        if(empty($attachmentSum)) echo _t('이 블로그에는 첨부파일이 없습니다.'); 
     114        else echo _f('이 블로그가 사용중인 첨부파일의 총 용량은 %1입니다.', $attachmentSum);?></li> 
    107115                                </ul> 
    108116                            </div> 
     
    120128                                        </tr> 
    121129                                    </thead> 
    122                                     <tbody><?php 
    123 $teamblog = POD::queryAll("SELECT * FROM `{$database['prefix']}Teamblog` WHERE blogid = " . $bid); 
     130                                    <tbody> 
     131<?php 
     132    $teamblog = POD::queryAll("SELECT * FROM `{$database['prefix']}Teamblog` WHERE blogid = " . $bid); 
    124133    foreach ($teamblog as $row){ 
    125         echo "<tr>"; 
    126         echo "<td class=\"name\"><a href=\"{$blogURL}/owner/control/user/detail/{$row['userid']}\">".User::getName($row['userid'])."(".User::getEmail($row['userid']).")</a></td>"; 
     134        echo "<tr>".CRLF; 
     135        echo "<td class=\"name\"><a href=\"{$blogURL}/owner/control/user/detail/{$row['userid']}\">".User::getName($row['userid'])."(".User::getEmail($row['userid']).")</a></td>".CRLF; 
    127136 
    128137        if ($row['acl'] & BITWISE_OWNER) { 
    129             echo '<td class="role" colspan="3">'._t('이 사용자는 블로그의 소유자입니다.').'</td>'; 
     138            echo '<td class="role" colspan="3">'._t('이 사용자는 블로그의 소유자입니다.').'</td>'.CRLF; 
    130139        } 
    131140        else { 
    132         echo "<td class=\"role\"><a href=\"".$blogURL."/owner/control/action/blog/changeACL/?blogid=" . $bid . "&acltype=admin&userid=" .$row['userid']."&switch=".(($row['acl'] & BITWISE_ADMINISTRATOR)?0:1)."\" onclick =  \"changeACL('admin',".$row['userid'].",".(($row['acl'] & BITWISE_ADMINISTRATOR)?0:1).");return false;\">".(($row['acl'] & BITWISE_ADMINISTRATOR)?_t('ON'):_t('OFF'))."</a></td>"; 
    133         echo "<td class=\"role\"><a href=\"".$blogURL."/owner/control/action/blog/changeACL/?blogid=" . $bid . "&acltype=editor&userid=" .$row['userid']."&switch=".(($row['acl'] & BITWISE_EDITOR)?0:1)."\" onclick =  \"changeACL('editor',".$row['userid'].",".(($row['acl'] & BITWISE_EDITOR)?0:1).");return false;\">".(($row['acl'] & BITWISE_EDITOR)?_t('ON'):_t('OFF'))."</a></td>"; 
    134         echo "<td class=\"role\"><a href=\"".$blogURL."/owner/control/action/blog/deleteUser/?blogid=" . $bid . "&userid=".$row['userid']."\" onclick =  \"deleteUser(".$row['userid'].",1);return false;\">" . t('팀원 제외') . "</a></td>"; 
    135         echo "<td class=\"role\"><a href=\"".$blogURL."/owner/control/action/blog/changeOwner/?blogid=" . $bid . "&owner=".$row['userid']."\" onclick =  \"changeOwner(".$row['userid'].");return false;\">" . _t('소유자 변경') . "</a></td>"; 
    136         echo "</tr>"; 
     141        echo "<td class=\"role\"><a href=\"".$blogURL."/owner/control/action/blog/changeACL/?blogid=" . $bid . "&acltype=admin&userid=" .$row['userid']."&switch=".(($row['acl'] & BITWISE_ADMINISTRATOR)?0:1)."\" onclick=\"changeACL('admin',".$row['userid'].",".(($row['acl'] & BITWISE_ADMINISTRATOR)?0:1).");return false;\">".(($row['acl'] & BITWISE_ADMINISTRATOR)?_t('ON'):_t('OFF'))."</a></td>".CRLF; 
     142        echo "<td class=\"role\"><a href=\"".$blogURL."/owner/control/action/blog/changeACL/?blogid=" . $bid . "&acltype=editor&userid=" .$row['userid']."&switch=".(($row['acl'] & BITWISE_EDITOR)?0:1)."\" onclick=\"changeACL('editor',".$row['userid'].",".(($row['acl'] & BITWISE_EDITOR)?0:1).");return false;\">".(($row['acl'] & BITWISE_EDITOR)?_t('ON'):_t('OFF'))."</a></td>".CRLF; 
     143        echo "<td class=\"role\"><a href=\"".$blogURL."/owner/control/action/blog/deleteUser/?blogid=" . $bid . "&userid=".$row['userid']."\" onclick =  \"deleteUser(".$row['userid'].",1);return false;\">" . _t('팀원 제외') . "</a></td>".CRLF; 
     144        echo "<td class=\"role\"><a href=\"".$blogURL."/owner/control/action/blog/changeOwner/?blogid=" . $bid . "&owner=".$row['userid']."\" onclick =  \"changeOwner(".$row['userid'].");return false;\">" . _t('소유자 변경') . "</a></td>".CRLF; 
     145        echo "</tr>".CRLF; 
    137146        } 
    138147    }