From f648cdca22a022be1c8a06796a08eab03af7149c Mon Sep 17 00:00:00 2001
From: Jared Hancock <jared@osticket.com>
Date: Wed, 29 Apr 2015 14:51:15 -0500
Subject: [PATCH] role: Allow registration to prepend new roles

---
 include/class.role.php   | 12 +++++++++---
 include/class.ticket.php |  2 +-
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/include/class.role.php b/include/class.role.php
index b2bcd2c97..ce4256c5b 100644
--- a/include/class.role.php
+++ b/include/class.role.php
@@ -310,9 +310,15 @@ class RolePermission {
         return static::$_permissions;
     }
 
-    static function register($group, $perms) {
-        static::$_permissions[$group] = array_merge(
-                            static::$_permissions[$group] ?: array(), $perms);
+    static function register($group, $perms, $prepend=false) {
+        if ($prepend) {
+            static::$_permissions[$group] = array_merge(
+                $perms, static::$_permissions[$group] ?: array());
+        }
+        else {
+            static::$_permissions[$group] = array_merge(
+                static::$_permissions[$group] ?: array(), $perms);
+        }
     }
 }
 ?>
diff --git a/include/class.ticket.php b/include/class.ticket.php
index 30a5df7fd..2a14829dc 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -192,7 +192,7 @@ EOF;
     }
 }
 
-RolePermission::register(/* @trans */ 'Tickets', TicketModel::getPermissions());
+RolePermission::register(/* @trans */ 'Tickets', TicketModel::getPermissions(), true);
 
 class TicketCData extends VerySimpleModel {
     static $meta = array(
-- 
GitLab