public static function aclRegistered()
 {
     $aclList = Admin_UserAcl::all();
     $data = array();
     foreach ($aclList as $val) {
         $data[$val->roleid][$val->controller][$val->action] = true;
     }
     return $data;
 }
 public static function render()
 {
     $rolelist = Admin_UserRole::all();
     $page = Acltree::datasource();
     //all();
     $acl = Admin_UserAcl::aclRegistered();
     $content = array();
     $fot = 1;
     foreach ($rolelist as $role) {
         $subcontent = '<h3>' . Str::upper($role->role . " Setup") . '</h3>';
         $subcontent .= '<ul class="nav nav-list">';
         foreach ($page as $controller => $selection) {
             $subcontent .= '<li class="nav-header"><i class="icon-hdd"></i>&nbsp;' . Str::upper($selection['alias']) . '</li>';
             $subcontent .= '<div class="row-fluid">';
             foreach ($selection['page'] as $action => $alias) {
                 $subcontent .= '<span style="padding-right:5px;width:auto;">';
                 $subcontent .= Form::hidden($role->role . '[id]', $role->roleid);
                 if (in_array($role->roleid, array_keys($acl)) && in_array($controller, array_keys($acl[$role->roleid])) && in_array($action, array_keys($acl[$role->roleid][$controller])) && $acl[$role->roleid][$controller][$action] == true) {
                     $subcontent .= Form::inline_labelled_checkbox($role->role . '[' . $controller . '][' . $action . ']', Str::title($alias), null, array('checked' => true, 'style' => 'padding:2px'));
                 } else {
                     $subcontent .= Form::inline_labelled_checkbox($role->role . '[' . $controller . '][' . $action . ']', $alias);
                 }
                 $subcontent .= '</span>';
             }
             $subcontent .= '</div >';
             $subcontent .= '<li class="divider"></li>';
         }
         $subcontent .= '</ul>';
         $active = $fot == 1 ? true : false;
         $fot++;
         array_push($content, array(Str::upper($role->role), $subcontent, $active));
     }
     $nav = Navigation::links($content);
     $tab = Tabbable::tabs_left($nav);
     return $tab;
 }
 public static function menuGenerator()
 {
     $Menus = Admin_Menu::order_by('arrangement', 'asc')->get();
     $acces = Admin_UserAcl::aclRegistered();
     $selected = new stdClass();
     $page = new stdClass();
     $dev = array();
     $sub = array();
     $logged_user = Auth::user();
     foreach ($Menus as $id => $menu) {
         $content = new stdClass();
         $controller = new stdClass();
         $action = new stdClass();
         $pieces = explode("/", $menu->controller);
         if ($menu->action == NULL || $menu->header == 1 && $menu->footer == 1) {
             $content->footer = $menu->footer;
             $content->header = $menu->header;
             $content->auth = $menu->auth;
             $content->admin = $menu->admin;
             $content->packet = $pieces[0];
             if ($menu->action == NULL && ($menu->header == 1 || $menu->footer == 1)) {
                 $controller->name = $pieces[1];
                 $controller->alias = $menu->controlleralias;
             } else {
                 $controller->name = $menu->action;
                 $controller->alias = $menu->actionalias;
             }
             $content->controller = $controller;
             if ($content->controller->name == URI::segment(2)) {
                 $content->status = "active";
             } else {
                 $content->status = "";
             }
         } elseif ($menu->action != NULL && ($menu->header != 0 || $menu->footer != 0)) {
             $action->name = $menu->action;
             $action->alias = $menu->actionalias;
             $action->footer = $menu->footer;
             $action->header = $menu->header;
             $action->auth = $menu->auth;
             if ($action->name == URI::segment(3) || URI::segment(3) == NULL && $action->name == $pieces[1] && URI::segment(2) == $pieces[1]) {
                 $action->status = "active";
             } else {
                 $action->status = "";
             }
             //check acl access
             if (Auth::check()) {
                 if (isset($acces[$logged_user->role])) {
                     if (isset($acces[$logged_user->role][$menu->controller])) {
                         if (isset($acces[$logged_user->role][$menu->controller][$menu->action])) {
                             $sub[$pieces[1]][] = $action;
                         }
                     }
                 }
             } else {
                 $sub[$pieces[1]][] = $action;
             }
         }
         $cont = (array) $content;
         if (!empty($cont)) {
             $dev[$id] = $content;
         }
     }
     $final = array();
     foreach ($dev as $key => $value) {
         $action = new stdClass();
         $page = new stdClass();
         $ctrl = $value->controller->name;
         if (!empty($sub[$ctrl])) {
             $action->action = $sub[$ctrl];
         }
         $value->page = $action;
         // check acl access
         if (Auth::check()) {
             $pages = (array) $value->page;
             if (isset($acces[$logged_user->role])) {
                 if (isset($acces[$logged_user->role][$value->packet . '/' . $ctrl])) {
                     if ((!empty($pages) || $ctrl == 'dashboard') && ($value->admin == 1 ? $value->admin == Auth::user()->role : TRUE)) {
                         $final[$key] = $value;
                     }
                 }
             }
         } else {
             $final[$key] = $value;
         }
     }
     return $final;
 }
 /**
  * ACL RESTful function
  *
  * @return view
  * @author joharijumali
  * 
  **/
 public function get_acl()
 {
     $data['rolelist'] = Admin_UserRole::all();
     $data['page'] = Admin_Menu::pageExist();
     //all();
     $data['acl'] = Admin_UserAcl::aclRegistered();
     $data['acree'] = Acltree::render();
     return View::make('admin.console.acl', $data);
 }