From b994a8279da3f577b408d3c3a13928494b6451d8 Mon Sep 17 00:00:00 2001 From: Quitta Date: Thu, 18 Jul 2013 12:43:33 +0200 Subject: [PATCH] changed system to mod/admin permissions, though there's still a bug in show_ticket --- .../ryzom_ams/ams_lib/autoload/ticket_user.php | 14 ++++++++++++++ .../server/ryzom_ams/www/html/func/add_sgroup.php | 2 +- .../ryzom_ams/www/html/func/add_user_to_sgroup.php | 2 +- .../server/ryzom_ams/www/html/func/change_info.php | 2 +- .../server/ryzom_ams/www/html/func/change_mail.php | 6 +++--- .../ryzom_ams/www/html/func/change_password.php | 2 +- .../ryzom_ams/www/html/func/create_ticket.php | 2 +- .../ryzom_ams/www/html/func/reply_on_ticket.php | 4 ++-- .../server/ryzom_ams/www/html/inc/createticket.php | 2 +- .../server/ryzom_ams/www/html/inc/libuserlist.php | 2 +- .../server/ryzom_ams/www/html/inc/settings.php | 4 ++-- .../server/ryzom_ams/www/html/inc/sgroup_list.php | 2 +- .../server/ryzom_ams/www/html/inc/show_queue.php | 4 ++-- .../server/ryzom_ams/www/html/inc/show_reply.php | 4 ++-- .../server/ryzom_ams/www/html/inc/show_sgroup.php | 2 +- .../server/ryzom_ams/www/html/inc/show_ticket.php | 4 ++-- .../ryzom_ams/www/html/inc/show_ticket_log.php | 4 ++-- .../server/ryzom_ams/www/html/inc/show_user.php | 2 +- .../server/ryzom_ams/www/html/inc/userlist.php | 2 +- .../ryzom_ams/www/html/templates/show_ticket.tpl | 4 ++-- 20 files changed, 42 insertions(+), 28 deletions(-) diff --git a/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket_user.php b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket_user.php index 726d98d1f..9c7c646a6 100644 --- a/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket_user.php +++ b/code/ryzom/tools/server/ryzom_ams/ams_lib/autoload/ticket_user.php @@ -15,6 +15,20 @@ class Ticket_User{ $dbl->execute($query, $values); } + + public static function isMod($user){ + if(isset($user) && $user->getPermission() > 1){ + return true; + } + return false; + } + + public static function isAdmin($user){ + if(isset($user) && $user->getPermission() == 3){ + return true; + } + return false; + } //return constructed element based on TUserId diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/func/add_sgroup.php b/code/ryzom/tools/server/ryzom_ams/www/html/func/add_sgroup.php index 5f5544e6c..1b6297151 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/func/add_sgroup.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/func/add_sgroup.php @@ -4,7 +4,7 @@ function add_sgroup(){ if(WebUsers::isLoggedIn()){ - if( WebUsers::isAdmin()){ + if( Ticket_User::isAdmin($_SESSION['ticket_user'])){ $name = filter_var($_POST['Name'],FILTER_SANITIZE_STRING); $inner_tag = filter_var($_POST['Tag'], FILTER_SANITIZE_STRING); $tag = "[" . $inner_tag . "]"; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/func/add_user_to_sgroup.php b/code/ryzom/tools/server/ryzom_ams/www/html/func/add_user_to_sgroup.php index 10da9db8a..830b67c57 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/func/add_user_to_sgroup.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/func/add_user_to_sgroup.php @@ -4,7 +4,7 @@ function add_user_to_sgroup(){ if(WebUsers::isLoggedIn()){ - if( WebUsers::isAdmin() && isset($_POST['target_id'])){ + if( Ticket_User::isAdmin($_SESSION['ticket_user']) && isset($_POST['target_id'])){ $name = filter_var($_POST['Name'],FILTER_SANITIZE_STRING); $id = filter_var($_POST['target_id'],FILTER_SANITIZE_NUMBER_INT); $user_id = WebUsers::getId($name); diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/func/change_info.php b/code/ryzom/tools/server/ryzom_ams/www/html/func/change_info.php index 9a93e6765..dab7efbbe 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/func/change_info.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/func/change_info.php @@ -9,7 +9,7 @@ function change_info(){ if(isset($_POST['target_id'])){ - if( ($_POST['target_id'] == $_SESSION['id']) || WebUsers::isAdmin() ){ + if( ($_POST['target_id'] == $_SESSION['id']) || Ticket_User::isMod($_SESSION['ticket_user'] ) ){ if($_POST['target_id'] == $_SESSION['id']){ $target_username = $_SESSION['user']; }else{ diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/func/change_mail.php b/code/ryzom/tools/server/ryzom_ams/www/html/func/change_mail.php index 6905febae..ff0427a2c 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/func/change_mail.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/func/change_mail.php @@ -9,7 +9,7 @@ function change_mail(){ if(isset($_POST['target_id'])){ - if( ($_POST['target_id'] == $_SESSION['id']) || WebUsers::isAdmin() ){ + if( ($_POST['target_id'] == $_SESSION['id']) || Ticket_User::isMod($_SESSION['ticket_user']) ){ if($_POST['target_id'] == $_SESSION['id']){ $target_username = $_SESSION['user']; }else{ @@ -42,7 +42,7 @@ function change_mail(){ $result['username'] = $_SESSION['user']; $result['target_id'] = $_POST['target_id']; if(isset($_GET['id'])){ - if(WebUsers::isAdmin() && ($_POST['target_id'] != $_SESSION['id'])){ + if(Ticket_User::isMod($_SESSION['ticket_user']) && ($_POST['target_id'] != $_SESSION['id'])){ $result['isAdmin'] = "TRUE"; } } @@ -56,7 +56,7 @@ function change_mail(){ $result['username'] = $_SESSION['user']; $result['target_id'] = $_POST['target_id']; if(isset($_GET['id'])){ - if(WebUsers::isAdmin() && ($_POST['target_id'] != $_SESSION['id'])){ + if(Ticket_User::isMod($_SESSION['ticket_user']) && ($_POST['target_id'] != $_SESSION['id'])){ $result['isAdmin'] = "TRUE"; } } diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/func/change_password.php b/code/ryzom/tools/server/ryzom_ams/www/html/func/change_password.php index 57e675123..071cbfd3c 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/func/change_password.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/func/change_password.php @@ -9,7 +9,7 @@ function change_password(){ if(isset($_POST['target_id'])){ $adminChangesOther = false; //if target_id is the same as session id or is admin - if( ($_POST['target_id'] == $_SESSION['id']) || WebUsers::isAdmin() ){ + if( ($_POST['target_id'] == $_SESSION['id']) || Ticket_User::isMod($_SESSION['ticket_user']) ){ if($_POST['target_id'] == $_SESSION['id']){ $target_username = $_SESSION['user']; }else{ diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/func/create_ticket.php b/code/ryzom/tools/server/ryzom_ams/www/html/func/create_ticket.php index 62e9e20fa..db7621493 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/func/create_ticket.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/func/create_ticket.php @@ -7,7 +7,7 @@ function create_ticket(){ if(isset($_POST['target_id'])){ //if target_id is the same as session id or is admin - if( ($_POST['target_id'] == $_SESSION['id']) || WebUsers::isAdmin() ){ + if( ($_POST['target_id'] == $_SESSION['id']) || Ticket_User::isMod($_SESSION['ticket_user']) ){ $category = filter_var($_POST['Category'], FILTER_SANITIZE_NUMBER_INT); $title = filter_var($_POST['Title'], FILTER_SANITIZE_STRING); diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/func/reply_on_ticket.php b/code/ryzom/tools/server/ryzom_ams/www/html/func/reply_on_ticket.php index 08188340f..c3010d01c 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/func/reply_on_ticket.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/func/reply_on_ticket.php @@ -9,14 +9,14 @@ function reply_on_ticket(){ $target_ticket = new Ticket(); $target_ticket->load_With_TId($ticket_id); - if(($target_ticket->getAuthor() == $_SESSION['ticket_user']->getTUserId()) || WebUsers::isAdmin() ){ + if(($target_ticket->getAuthor() == $_SESSION['ticket_user']->getTUserId()) || Ticket_User::isMod($_SESSION['ticket_user']) ){ try{ $author = $_SESSION['ticket_user']->getTUserId(); $content = filter_var($_POST['Content'], FILTER_SANITIZE_STRING); Ticket::createReply($content, $author, $ticket_id); - if(isset($_POST['ChangeStatus']) && isset($_POST['ChangePriority']) && WebUsers::isAdmin()){ + if(isset($_POST['ChangeStatus']) && isset($_POST['ChangePriority']) && Ticket_User::isMod($_SESSION['ticket_user'])){ $newStatus = filter_var($_POST['ChangeStatus'], FILTER_SANITIZE_NUMBER_INT); $newPriority = filter_var($_POST['ChangePriority'], FILTER_SANITIZE_NUMBER_INT); Ticket::updateTicketStatusAndPriority($ticket_id,$newStatus, $newPriority, $author); diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/createticket.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/createticket.php index 34c1eddb6..4c3dce7b8 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/createticket.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/createticket.php @@ -7,7 +7,7 @@ function createticket(){ //in case user_id-GET param set it's value as target_id, if no user_id-param is given, use the session id. if(isset($_GET['user_id'])){ - if(($_GET['user_id'] != $_SESSION['id']) && (!WebUsers::isAdmin()) ){ + if(($_GET['user_id'] != $_SESSION['id']) && ( ! ticket_user::isMod($_SESSION['ticket_user'])) ){ //ERROR: No access! $_SESSION['error_code'] = "403"; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/libuserlist.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/libuserlist.php index e041942a8..b83b59f01 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/libuserlist.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/libuserlist.php @@ -2,7 +2,7 @@ function libuserlist(){ - if(WebUsers::isAdmin()){ + if(Ticket_User::isAdmin($_SESSION['ticket_user'])){ //This checks to see if there is a page number. If not, it will set it to page 1 if (!(isset($_GET['pagenum']))){ $pagenum = 1; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/settings.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/settings.php index 90bafbefc..a4db33b6b 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/settings.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/settings.php @@ -4,14 +4,14 @@ function settings(){ if(WebUsers::isLoggedIn()){ //in case id-GET param set it's value as target_id, if no id-param is given, ue the session id. if(isset($_GET['id'])){ - if(($_GET['id'] != $_SESSION['id']) && (!WebUsers::isAdmin()) ){ + if(($_GET['id'] != $_SESSION['id']) && (!Ticket_User::isMod($_SESSION['ticket_user'])) ){ //ERROR: No access! $_SESSION['error_code'] = "403"; header("Location: index.php?page=error"); exit; }else{ $result = WebUsers::getInfo($_GET['id']); - if(WebUsers::isAdmin() && ($_GET['id']!= $_SESSION['id'])){ + if(Ticket_User::isMod($_SESSION['ticket_user']) && ($_GET['id']!= $_SESSION['id'])){ $result['isAdmin'] = "TRUE"; } $result['target_id'] = $_GET['id']; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/sgroup_list.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/sgroup_list.php index 236d62b7c..01c2b16f2 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/sgroup_list.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/sgroup_list.php @@ -3,7 +3,7 @@ function sgroup_list(){ //if logged in if(WebUsers::isLoggedIn()){ - if( WebUsers::isAdmin()){ + if(Ticket_User::isAdmin($_SESSION['ticket_user'])){ if(isset($_GET['delete'])){ $delete_id = filter_var($_GET['delete'], FILTER_SANITIZE_NUMBER_INT); diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_queue.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_queue.php index a60619c04..4af0a4b84 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_queue.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_queue.php @@ -4,7 +4,7 @@ function show_queue(){ //if logged in & queue id is given if(WebUsers::isLoggedIn() && isset($_GET['get'])){ - if( WebUsers::isAdmin()){ + if( Ticket_User::isMod($_SESSION['ticket_user'])){ $result['queue_action'] = filter_var($_GET['get'], FILTER_SANITIZE_STRING); $queueArray = Ticket_Queue_Handler::getTickets($result['queue_action'],2); @@ -16,7 +16,7 @@ function show_queue(){ $result['tickets'][$i]['author'] = WebUsers::getUsername($ticket['authorExtern']); $i++; } - if(WebUsers::isAdmin()){ + if(Ticket_User::isMod($_SESSION['ticket_user'])){ $result['isAdmin'] = "TRUE"; } return $result; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_reply.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_reply.php index f3de64594..fad5dad87 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_reply.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_reply.php @@ -11,7 +11,7 @@ function show_reply(){ $ticket = new Ticket(); $ticket->load_With_TId($reply->getTicket()); - if(($ticket->getAuthor() == $_SESSION['ticket_user']->getTUserId()) || WebUsers::isAdmin() ){ + if(($ticket->getAuthor() == $_SESSION['ticket_user']->getTUserId()) || Ticket_User::isMod($_SESSION['ticket_user'] )){ $content = new Ticket_Content(); $content->load_With_TContentId($reply->getContent()); @@ -25,7 +25,7 @@ function show_reply(){ $result['reply_content'] = $content->getContent(); $result['author'] = $author->getExternId(); $result['authorName'] = WebUsers::getUsername($author->getExternId()); - if(WebUsers::isAdmin()){ + if(Ticket_User::isMod($_SESSION['ticket_user'])){ $result['isAdmin'] = "TRUE"; } return $result; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_sgroup.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_sgroup.php index 6b414cbb3..c31c4d282 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_sgroup.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_sgroup.php @@ -3,7 +3,7 @@ function show_sgroup(){ //if logged in if(WebUsers::isLoggedIn()){ - if( WebUsers::isAdmin()){ + if(Ticket_User::isAdmin($_SESSION['ticket_user'])){ if( isset($_GET['id'])){ //['target_id'] holds the id of the group! diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_ticket.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_ticket.php index c5e370849..2ac3c78cc 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_ticket.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_ticket.php @@ -8,7 +8,7 @@ function show_ticket(){ $target_ticket = new Ticket(); $target_ticket->load_With_TId($result['ticket_id']); - if(($target_ticket->getAuthor() == $_SESSION['ticket_user']->getTUserId()) || WebUsers::isAdmin() ){ + if(($target_ticket->getAuthor() == $_SESSION['ticket_user']->getTUserId()) || Ticket_User::isMod($_SESSION['ticket_user'] )){ $entire_ticket = Ticket::getEntireTicket( $result['ticket_id']); Ticket_Log::createLogEntry($result['ticket_id'],$_SESSION['ticket_user']->getTUserId(), 3); @@ -28,7 +28,7 @@ function show_ticket(){ $result['ticket_replies'][$i]['author'] = WebUsers::getUsername($reply['authorExtern']); $i++; } - if(WebUsers::isAdmin()){ + if(Ticket_User::isMod($_SESSION['ticket_user'])){ $result['isAdmin'] = "TRUE"; //$result['statusList'] = Ticket::getStatusArray(); } diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_ticket_log.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_ticket_log.php index 06172482a..c5bacf030 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_ticket_log.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_ticket_log.php @@ -5,7 +5,7 @@ function show_ticket_log(){ //if logged in if(WebUsers::isLoggedIn() && isset($_GET['id'])){ //only allow admins to browse the log! - if(WebUsers::isAdmin() ){ + if(Ticket_User::isMod($_SESSION['ticket_user']) ){ $result['ticket_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT); $target_ticket = new Ticket(); $target_ticket->load_With_TId($result['ticket_id']); @@ -33,7 +33,7 @@ function show_ticket_log(){ $result['ticket_logs'][$i]['timestamp_elapsed'] = Gui_Elements::time_elapsed_string($log['timestamp']); $i++; } - if(WebUsers::isAdmin()){ + if(Ticket_User::isMod($_SESSION['ticket_user'])){ $result['isAdmin'] = "TRUE"; } return $result; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_user.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_user.php index fee3085c9..342529ead 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_user.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/show_user.php @@ -4,7 +4,7 @@ function show_user(){ //if logged in if(WebUsers::isLoggedIn()){ - if( !isset($_GET['id']) || WebUsers::isAdmin() || $_GET['id'] == $_SESSION['id'] ){ + if( !isset($_GET['id']) || Ticket_User::isMod($_SESSION['ticket_user']) || $_GET['id'] == $_SESSION['id'] ){ if(isset($_GET['id'])){ $result['target_id'] = filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT); diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/inc/userlist.php b/code/ryzom/tools/server/ryzom_ams/www/html/inc/userlist.php index e2c2cbfcb..347be52dc 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/inc/userlist.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/inc/userlist.php @@ -1,7 +1,7 @@ {$reply.timestamp} {if $reply.permission eq '1'} - {else if $reply.permission eq '2'} + {else if $reply.permission gt '1'} [CSR] {/if} {if isset($isAdmin) and $isAdmin eq "TRUE"} {$reply.author}{else}{$reply.author} {/if}

-

{$reply.replyContent}

+

{$reply.replyContent}

{/foreach}