public void CheckPermisson(SailsModule module, User user)
        {
            IList permissions     = module.PermissionsGetByUserRole(user);
            IList userPermissions = module.PermissionsGetByUser(user);

            foreach (string str in userPermissions)
            {
                if (!permissions.Contains(str))
                {
                    permissions.Add(str);
                }
            }

            if (user.HasPermission(AccessLevel.Administrator))
            {
                return;
            }

            tabSetting.Visible = false;

            #region -- Booking --
            _panelVisible = false;
            SetVisible(pAddBooking, permissions.Contains(Permission.FORM_ADDBOOKING));
            SetVisible(pBookingList, permissions.Contains(Permission.FORM_BOOKINGLIST));
            SetVisible(pOrders, permissions.Contains(Permission.FORM_ORDERREPORT));
            SetVisible(pBookingDate, permissions.Contains(Permission.FORM_BOOKINGREPORT));
            SetVisible(pRevenueChanged, permissions.Contains(Permission.FORM_TRACKINGREPORT));
            SetVisible(pBookingReport, permissions.Contains(Permission.FORM_BOOKINGREPORTRERIOD));
            SetVisible(pAddSerialBookings, permissions.Contains(Permission.FORM_ADDBOOKING));
            tabBooking.Visible = _panelVisible;
            #endregion

            #region -- Report --
            _panelVisible = false;
            SetVisible(pIncomeReport, permissions.Contains(Permission.FORM_INCOMEREPORT));
            SetVisible(pReceivable, permissions.Contains(Permission.FORM_PAYMENTREPORT));
            SetVisible(pExpenseReport, permissions.Contains(Permission.FORM_EXPENSEREPORT));
            SetVisible(pPayable, permissions.Contains(Permission.FORM_PAYABLELIST));
            SetVisible(pBalance, permissions.Contains(Permission.FORM_BALANCEREPORT));
            SetVisible(pSummary, permissions.Contains(Permission.FORM_RECEIVABLETOTAL));
            tabReports.Visible = _panelVisible;
            #endregion

            #region -- Agency --
            _panelVisible = false;
            SetVisible(pAgencyEdit, permissions.Contains(Permission.FORM_AGENCYEDIT));
            SetVisible(pAgencyList, permissions.Contains(Permission.FORM_AGENCYLIST));
            SetVisible(pAgencyPolicies, permissions.Contains(Permission.FORM_AGENTLIST));
            tabConfiguration.Visible = _panelVisible;
            #endregion

            #region -- Cruise & trip --
            _panelVisible = false;
            SetVisible(pTripEdit, permissions.Contains(Permission.FORM_SAILSTRIPEDIT));
            SetVisible(pTripList, permissions.Contains(Permission.FORM_SAILSTRIPLIST));
            SetVisible(pCruiseEdit, permissions.Contains(Permission.FORM_CRUISESEDIT));
            SetVisible(pCruiseList, permissions.Contains(Permission.FORM_CRUISESLIST));
            tabTrips.Visible = _panelVisible;
            #endregion

            #region -- Room manager --
            _panelVisible = false;
            SetVisible(pRoomClass, permissions.Contains(Permission.FORM_ROOMCLASSEDIT));
            SetVisible(pRoomType, permissions.Contains(Permission.FORM_ROOMTYPEXEDIT));
            SetVisible(pRoomEdit, permissions.Contains(Permission.FORM_ROOMEDIT));
            SetVisible(pRoomList, permissions.Contains(Permission.FORM_ROOMLIST));
            tabRoom.Visible = _panelVisible;
            #endregion

            #region -- Cost --
            _panelVisible = false;
            SetVisible(pExtraService, permissions.Contains(Permission.FORM_EXTRAOPTIONEDIT));
            SetVisible(pCostingConfig, permissions.Contains(Permission.FORM_COSTING));
            //SetVisible(pDailyAutoCost, permissions.Contains(Permission.FORM_));
            SetVisible(pDailyManualCost, permissions.Contains(Permission.FORM_BOOKINGREPORT));
            SetVisible(pHaiPhong, permissions.Contains(Permission.FORM_CRUISECONFIG));
            SetVisible(pExpensePeriod, permissions.Contains(Permission.FORM_EXPENSEPERIOD));
            SetVisible(pCostTypes, permissions.Contains(Permission.FORM_COSTTYPES));
            SetVisible(pUSDRate, permissions.Contains(Permission.FORM_EXCHANGERATE));
            tabCost.Visible = _panelVisible;
            #endregion
        }