export var PermissionManager = ( function() { var validate = function( name, value ) { var permission = PermissionManager.getPermissionData(); //Error: Uncaught TypeError: Cannot read property 'punch' of null in /interface/html5/global/PermissionManager.js?v=8.0.0-20141230-115759 line 6 if ( !permission || !Global.isSet( permission[name] ) || !Global.isSet( permission[name][value] ) ) { return false; } else { return permission[name][value]; } }; var getPermissionLevel = function() { var permission = PermissionManager.getPermissionData(); if ( permission && permission['_system'] && permission['_system']['level'] ) { return permission['_system']['level']; } return 0; }; var subJobApplicationValidate = function( viewId ) { var permission_section = getPermissionSectionByViewId( viewId ); if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { return false; } else if ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'edit' ) || PermissionManager.validate( permission_section, 'edit_child' ) ) { // return true; // hide the tab until the API complete. return false; } return false; }; var HelpMenuValidateAdmin = function() { if ( PermissionManager.getPermissionLevel() >= 70 && PermissionManager.validate( 'user', 'edit' ) ) { //70=HR Manager or higher return true; } return false; }; var HelpMenuValidateSupervisor = function() { if ( PermissionManager.getPermissionLevel() >= 40 && ( PermissionManager.validate( 'user', 'edit_child' ) || PermissionManager.validate( 'punch', 'edit_child' ) ) ) { //40=Supervisor (Subordinates Only) return true; } return false; }; var checkTopLevelPermission = function( viewId ) { var permission_section = getPermissionSectionByViewId( viewId ); var result = false; if ( viewId === 'About' ) { return true; } //TypeError: Cannot read property 'product_edition_id' of null //BUG#2066 - fail gracefully // Since LocalCacheData.getCurrentCompany() is require data, if the user was logged out or in the process of logging out, it could trigger sendErrorReport() // so first check that 'current_company' exists in the LocalCacheData to avoid calling getCurrentCompany() if it doesn't exist. if ( Global.isSet( LocalCacheData ) == false || LocalCacheData.isLocalCacheExists( 'current_company' ) == false || Global.isSet( LocalCacheData.getCurrentCompany() ) == false ) { return false; } switch ( viewId ) { case 'GridTest': case 'WidgetTest': case 'AwesomeboxTest': case 'UIKitSample': case 'UIKitChildSample': result = true; break; case 'JobInvoice': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'add' ) || PermissionManager.validate( permission_section, 'edit' ) || PermissionManager.validate( permission_section, 'edit_own' ) ) { result = true; } break; case 'PaymentGateway': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'edit' ) || PermissionManager.validate( permission_section, 'edit_own' ) ) { result = true; } break; case 'InvoiceConfig': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'edit' ) || PermissionManager.validate( permission_section, 'edit_own' ) ) { result = true; } break; case 'CustomField': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) && PermissionManager.validate( permission_section, 'edit' ) ) { result = true; } break; case 'InOut': if ( PermissionManager.validate( permission_section, 'enabled' ) && PermissionManager.validate( permission_section, 'punch_in_out' ) ) { result = true; } else { result = false; } break; case 'Employee': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_child' ) ) { result = true; } break; case 'LegalEntity': case 'PayrollRemittanceAgency': case 'RemittanceSourceAccount': case 'UserTitle': case 'UserGroup': case 'UserDefault': case 'EthnicGroup': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'edit' ) && PermissionManager.validate( permission_section, 'add' ) ) { result = true; } break; case 'RemittanceDestinationAccount': //Uncomment this to enable Employee -> Payment Methods for regular employees. -- Currently Supervisors/Payroll Admins/Admins can see this. case 'Punches': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'edit' ) || PermissionManager.validate( permission_section, 'edit_child' ) ) { result = true; } break; case 'GovernmentDocument': case 'Exception': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_own' ) ) { result = true; } break; case 'Company': case 'LoginUserContact': case 'LoginUserPreference': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'edit_own' ) ) { result = true; } break; case 'Companies': if ( ( Global.getProductEdition() >= 15 ) && PermissionManager.validate( permission_section, 'enabled' ) && PermissionManager.validate( permission_section, 'view' ) ) { result = true; } break; case 'SavedReport': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else { result = true; } break; case 'PermissionControl': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'edit' ) ) { result = true; } break; case 'DocumentGroup': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'edit' ) ) { result = true; } break; case 'PayPeriodSchedule': case 'Branch': case 'Department': case 'HierarchyControl': case 'WageGroup': case 'Station': case 'Currency': case 'PayStubEntryAccount': case 'CompanyTaxDeduction': case 'PolicyGroup': case 'SchedulePolicy': case 'RoundIntervalPolicy': case 'MealPolicy': case 'BreakPolicy': case 'OvertimePolicy': case 'PremiumPolicy': case 'ExceptionPolicyControl': case 'AccrualPolicy': case 'AbsencePolicy': case 'HolidayPolicy': case 'RecurringHoliday': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) ) { result = true; } break; case 'RequestAuthorization': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( 'request', 'authorize' ) && ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_child' ) ) ) { result = true; } break; case 'TimeSheetAuthorization': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( 'punch', 'authorize' ) && ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_child' ) ) ) { result = true; } break; case 'ExpenseAuthorization': if ( !( Global.getProductEdition() >= 25 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( 'user_expense', 'authorize' ) && ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_child' ) ) ) { result = true; } break; case 'UserExpense': if ( !( Global.getProductEdition() >= 25 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) ) { result = true; } break; case 'ImportCSV': //This is the Company -> Import icon, which should only be displayed if 'company','enabled' is also allowed. if ( PermissionManager.validate( 'company', 'enabled' ) ) { result = importValidate(); } else { result = false; } break; case 'ImportCSVSchedule': result = importValidateFor( 'schedule' ); break; case 'ImportCSVBranch': result = importValidateFor( 'branch' ); break; case 'ImportCSVDepartment': result = importValidateFor( 'department' ); break; case 'ImportCSVWage': result = importValidateFor( 'wage' ); break; case 'ImportCSVEmployeeBankAccount': result = importValidateFor( 'user' ); break; case 'ImportCSVEmployee': result = importValidateFor( 'user' ); break; case 'ImportCSVPayStubAmendment': result = importValidateFor( 'pay_stub_amendment' ); break; case 'ImportCSVJob': result = importValidateFor( 'job' ); break; case 'ImportCSVJobItem': result = importValidateFor( 'job_item' ); break; case 'PayrollProcessWizard': if ( PermissionManager.validate( 'pay_stub', 'add' ) && PermissionManager.validate( 'pay_stub', 'edit' ) ) { result = true; } else { result = false; } break; case 'QuickStartWizard': if ( PermissionManager.validate( 'pay_period_schedule', 'add' ) && PermissionManager.validate( 'user_preference', 'edit' ) && PermissionManager.validate( 'policy_group', 'edit' ) ) { result = true; } else { result = false; } break; case 'AccrualBalance': case 'Accrual': case 'Request': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_own' ) ) { result = true; } break; case 'ScheduleShift': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'edit' ) || PermissionManager.validate( permission_section, 'edit_child' ) ) { result = true; } break; case 'RecurringScheduleControl': case 'RecurringScheduleTemplateControl': case 'MessageControl': if ( PermissionManager.validate( permission_section, 'enabled' ) ) { result = true; } else { result = false; } break; case 'Notification': result = true; // Notification always returns true as notifications should always be enabled. break; case 'UserPreference': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'edit' ) || PermissionManager.validate( permission_section, 'edit_child' ) ) { result = true; } break; case 'Document': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_own' ) || PermissionManager.validate( permission_section, 'view_private' ) ) { result = true; } break; case 'ChangePassword': if ( PermissionManager.validate( permission_section, 'edit_own_password' ) || PermissionManager.validate( permission_section, 'edit_own_phone_password' ) ) { result = true; } break; case 'ActiveShiftReport': if ( PermissionManager.validate( 'report', 'view_active_shift' ) ) { result = true; } else { result = false; } break; case 'UserSummaryReport': if ( PermissionManager.validate( 'report', 'view_user_information' ) ) { result = true; } else { result = false; } break; case 'AuditTrailReport': if ( PermissionManager.validate( 'report', 'view_system_log' ) ) { result = true; } else { result = false; } break; case 'ScheduleSummaryReport': if ( PermissionManager.validate( 'report', 'view_schedule_summary' ) ) { result = true; } else { result = false; } break; case 'TimesheetSummaryReport': case 'TimesheetDetailReport': if ( PermissionManager.validate( 'report', 'view_timesheet_summary' ) ) { result = true; } else { result = false; } break; case 'PunchSummaryReport': if ( PermissionManager.validate( 'report', 'view_punch_summary' ) ) { result = true; } else { result = false; } break; case 'AccrualBalanceSummaryReport': if ( PermissionManager.validate( 'report', 'view_accrual_balance_summary' ) ) { result = true; } else { result = false; } break; case 'ExceptionSummaryReport': if ( PermissionManager.validate( 'report', 'view_exception_summary' ) ) { result = true; } else { result = false; } break; case 'PayStubTransactionSummaryReport': case 'PayStubSummaryReport': if ( PermissionManager.validate( 'report', 'view_pay_stub_summary' ) ) { result = true; } else { result = false; } break; case 'PayrollExportReport': if ( PermissionManager.validate( 'report', 'view_payroll_export' ) ) { result = true; } else { result = false; } break; case 'GeneralLedgerSummaryReport': if ( PermissionManager.validate( 'report', 'view_general_ledger_summary' ) ) { result = true; } else { result = false; } break; case 'ExpenseSummaryReport': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( PermissionManager.validate( 'report', 'view_expense' ) ) { result = true; } else { result = false; } break; case 'JobSummaryReport': case 'JobInformationReport': case 'JobItemInformationReport': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( PermissionManager.validate( 'job_report', 'view_job_summary' ) ) { result = true; } else { result = false; } break; case 'JobAnalysisReport': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( PermissionManager.validate( 'job_report', 'view_job_analysis' ) ) { result = true; } else { result = false; } break; case 'InvoiceTransactionSummaryReport': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( PermissionManager.validate( 'invoice_report', 'view_transaction_summary' ) ) { result = true; } else { result = false; } break; case 'RemittanceSummaryReport': if ( PermissionManager.validate( 'report', 'view_remittance_summary' ) && countryPermissionValidate( 'CA' ) ) { result = true; } else { result = false; } break; case 'T4SummaryReport': case 'T4ASummaryReport': if ( PermissionManager.validate( 'report', 'view_t4_summary' ) && countryPermissionValidate( 'CA' ) ) { result = true; } else { result = false; } break; case 'TaxSummaryReport': if ( PermissionManager.validate( 'report', 'view_generic_tax_summary' ) ) { result = true; } else { result = false; } break; case 'Form940Report': if ( PermissionManager.validate( 'report', 'view_form940' ) && countryPermissionValidate( 'US' ) ) { result = true; } else { result = false; } break; case 'Form941Report': if ( PermissionManager.validate( 'report', 'view_form941' ) && countryPermissionValidate( 'US' ) ) { result = true; } else { result = false; } break; case 'Form1099NecReport': if ( PermissionManager.validate( 'report', 'view_form1099nec' ) && countryPermissionValidate( 'US' ) ) { result = true; } else { result = false; } break; case 'FormW2Report': if ( PermissionManager.validate( 'report', 'view_formW2' ) && countryPermissionValidate( 'US' ) ) { result = true; } else { result = false; } break; case 'USStateUnemploymentReport': if ( PermissionManager.validate( 'report', 'view_us_state_unemployment' ) && countryPermissionValidate( 'US' ) ) { result = true; } else { result = false; } break; case 'AffordableCareReport': if ( Global.getProductEdition() >= 15 && PermissionManager.validate( 'report', 'view_affordable_care' ) && countryPermissionValidate( 'US' ) ) { result = true; } else { result = false; } break; case 'UserQualificationReport': if ( PermissionManager.validate( 'hr_report', 'user_qualification' ) ) { result = true; } else { result = false; } break; case 'KPIReport': if ( PermissionManager.validate( 'hr_report', 'user_review' ) ) { result = true; } else { result = false; } break; case 'UserRecruitmentSummaryReport': case 'UserRecruitmentDetailReport': if ( !( Global.getProductEdition() >= 25 ) ) { result = false; } else if ( PermissionManager.validate( 'recruitment_report', 'user_recruitment' ) ) { result = true; } else { result = false; } break; case 'Client': case 'ClientContact': case 'InvoiceDistrict': case 'ClientPayment': case 'Invoice': case 'InvoiceTransaction': case 'Product': case 'ClientGroup': case 'ProductGroup': case 'TaxPolicy': case 'ShippingPolicy': case 'AreaPolicy': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_own' ) || PermissionManager.validate( permission_section, 'view_child' ) ) { result = true; } break; case 'Job': case 'JobItem': case 'JobGroup': case 'JobItemGroup': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_own' ) || PermissionManager.validate( permission_section, 'view_child' ) ) { result = true; } break; case 'PunchTag': case 'PunchTagGroup': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_own' ) || PermissionManager.validate( permission_section, 'view_child' ) ) { result = true; } break; case 'GEOFence': if ( !( Global.getProductEdition() >= 20 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_own' ) ) { result = true; } break; case 'ExpensePolicy': case 'LoginUserExpense': case 'JobVacancy': case 'JobApplicant': case 'JobApplication': if ( !( Global.getProductEdition() >= 25 ) ) { result = false; } else if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_own' ) || PermissionManager.validate( permission_section, 'view_child' ) ) { result = true; } break; case 'ROE': if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_own' ) || PermissionManager.validate( permission_section, 'view_child' ) ) && countryPermissionValidate( 'CA' ) ) { result = true; } break; case 'GeneratePayStubs': if ( PermissionManager.validate( 'pay_period_schedule', 'enabled' ) && ( PermissionManager.validate( 'pay_period_schedule', 'edit' ) || PermissionManager.validate( 'pay_period_schedule', 'edit_own' ) ) && ( PermissionManager.validate( 'pay_stub', 'view' ) || PermissionManager.validate( 'pay_stub', 'view_child' ) ) ) { result = true; } else { result = false; } break; case 'PayStubTransaction': if ( PermissionManager.validate( 'pay_stub', 'enabled' ) && ( PermissionManager.validate( 'pay_stub', 'view' ) || PermissionManager.validate( 'pay_stub', 'view_child' ) ) ) { result = true; } else { result = false; } break; default: if ( !PermissionManager.validate( permission_section, 'enabled' ) ) { result = false; } else if ( PermissionManager.validate( permission_section, 'view' ) || PermissionManager.validate( permission_section, 'view_own' ) || PermissionManager.validate( permission_section, 'view_child' ) ) { result = true; } break; } return result; }; var countryPermissionValidate = function( key ) { var country_array = LocalCacheData.getUniqueCountryArray(); for ( var i = 0; i < country_array.length; i++ ) { if ( key === country_array[i] ) { return true; } } return false; }; var importValidate = function() { var result = false; if ( importValidateFor( 'branch' ) || importValidateFor( 'payperiod' ) || importValidateFor( 'schedule' ) || importValidateFor( 'user' ) || importValidateFor( 'department' ) || importValidateFor( 'client' ) || importValidateFor( 'job' ) || importValidateFor( 'jobitem' ) || importValidateFor( 'wage' ) || importValidateFor( 'punch' ) || importValidateFor( 'paystubamendment' ) || importValidateFor( 'accrual' ) ) { result = true; } return result; }; var importValidateFor = function( key ) { if ( PermissionManager.validate( key, 'add' ) && ( PermissionManager.validate( key, 'edit' ) || PermissionManager.validate( key, 'edit_child' ) ) ) { return true; } return false; }; var getPermissionSectionByViewId = function( viewId ) { var permission_section = ''; switch ( viewId ) { case 'AccumulatedTime': permission_section = 'user_date_total'; break; case 'PaymentGateway': permission_section = 'payment_gateway'; break; case 'InvoiceConfig': permission_section = 'invoice_config'; break; case 'AreaPolicy': permission_section = 'area_policy'; break; case 'ShippingPolicy': permission_section = 'shipping_policy'; break; case 'GovernmentDocument': permission_section = 'government_document'; break; case 'TaxPolicy': permission_section = 'tax_policy'; break; case 'Product': permission_section = 'product'; break; case 'RemittanceSourceAccount': permission_section = 'remittance_source_account'; break; case 'RemittanceDestinationAccount': permission_section = 'remittance_destination_account'; break; case 'ScheduleShift': case 'Schedule': permission_section = 'schedule'; break; case 'TimeSheet': case 'ManualTimeSheet': case 'UserDateTotalParent': case 'UserDateTotal': case 'InOut': case 'Punches': case 'TimeSheetAuthorization': case 'Exception': permission_section = 'punch'; break; case 'AccrualBalance': case 'Accrual': permission_section = 'accrual'; break; case 'Job': case 'JobGroup': permission_section = 'job'; break; case 'PunchTag': case 'PunchTagGroup': permission_section = 'punch_tag'; break; case 'PolicyGroup': permission_section = 'policy_group'; break; case 'PayCode': permission_section = 'pay_code'; break; case 'PayFormulaPolicy': permission_section = 'pay_formula_policy'; break; case 'ContributingPayCodePolicy': permission_section = 'contributing_pay_code_policy'; break; case 'ContributingShiftPolicy': permission_section = 'contributing_shift_policy'; break; case 'AbsencePolicy': permission_section = 'absence_policy'; break; case 'MealPolicy': permission_section = 'meal_policy'; break; case 'ExpensePolicy': permission_section = 'expense_policy'; break; case 'BreakPolicy': permission_section = 'break_policy'; break; case 'HolidayPolicy': case 'RecurringHoliday': permission_section = 'holiday_policy'; break; case 'PremiumPolicy': permission_section = 'premium_policy'; break; case 'RegularTimePolicy': permission_section = 'regular_time_policy'; break; case 'OvertimePolicy': permission_section = 'over_time_policy'; break; case 'RoundIntervalPolicy': permission_section = 'round_policy'; break; case 'Employee': case 'LoginUserContact': case 'ChangePassword': permission_section = 'user'; break; case 'UserDefault': permission_section = 'user_default'; break; case 'UserTitle': permission_section = 'user_title'; break; case 'UserGroup': permission_section = 'user_group'; break; case 'EthnicGroup': permission_section = 'ethnic_group'; break; case 'LegalEntity': permission_section = 'legal_entity'; break; case 'PayrollRemittanceAgency': permission_section = 'payroll_remittance_agency'; break; case 'MessageControl': permission_section = 'message'; break; case 'Notification': permission_section = 'notification'; break; case 'Wage': case 'WageGroup': permission_section = 'wage'; break; case 'UserContact': permission_section = 'user_contact'; break; case 'LoginUserExpense': case 'UserExpense': permission_section = 'user_expense'; break; case 'UserSkill': permission_section = 'user_skill'; break; case 'JobApplication': permission_section = 'job_application'; break; case 'JobApplicant': case 'RecruitmentPortalConfig': permission_section = 'job_applicant'; break; case 'UserLicense': permission_section = 'user_license'; break; case 'UserMembership': permission_section = 'user_membership'; break; case 'UserEducation': permission_section = 'user_education'; break; case 'UserPreference': case 'LoginUserPreference': permission_section = 'user_preference'; break; case 'UserLanguage': permission_section = 'user_language'; break; case 'Company': case 'Companies': permission_section = 'company'; break; case 'GEOFence': permission_section = 'geo_fence'; break; case 'Qualification': case 'QualificationGroup': permission_section = 'qualification'; break; case 'PayPeriodSchedule': case 'PayPeriods': permission_section = 'pay_period_schedule'; break; case 'PayStubAmendment': case 'RecurringPayStubAmendment': permission_section = 'pay_stub_amendment'; break; case 'PayStubTransactionSummaryReport': case 'PayStub': permission_section = 'pay_stub'; break; case 'Branch': permission_section = 'branch'; break; case 'Department': permission_section = 'department'; break; case 'HierarchyControl': permission_section = 'hierarchy'; break; case 'Station': permission_section = 'station'; break; case 'JobVacancy': case 'PortalJobVacancy': permission_section = 'job_vacancy'; break; case 'PayStubEntryAccount': permission_section = 'pay_stub_account'; break; case 'ROE': permission_section = 'roe'; break; case 'CustomField': permission_section = 'custom_field'; break; case 'Currency': permission_section = 'currency'; break; case 'PermissionControl': permission_section = 'permission'; break; case 'CompanyTaxDeduction': permission_section = 'company_tax_deduction'; break; case 'UserTaxDeduction': permission_section = 'user_tax_deduction'; break; case 'Request': permission_section = 'request'; break; case 'RequestAuthorization': case 'ExpenseAuthorization': permission_section = 'authorization'; break; case 'Document': case 'DocumentGroup': permission_section = 'document'; break; case 'SchedulePolicy': permission_section = 'schedule_policy'; break; case 'AccrualPolicyAccount': case 'AccrualPolicy': permission_section = 'accrual_policy'; break; case 'Client': case 'ClientContact': case 'InvoiceDistrict': case 'ClientPayment': permission_section = 'client'; break; case 'InvoiceTransaction': permission_section = 'transaction'; break; case 'JobItemGroup': case 'JobItem': permission_section = 'job_item'; break; case 'SavedReport': permission_section = 'report'; break; case 'RecurringScheduleControl': permission_section = 'recurring_schedule'; break; case 'RecurringScheduleTemplateControl': permission_section = 'recurring_schedule_template'; break; case 'KPI': case 'KPIGroup': permission_section = 'kpi'; break; case 'UserReviewControl': permission_section = 'user_review'; break; case 'ExceptionPolicyControl': permission_section = 'exception_policy'; break; case 'ImportCSV': permission_section = 'import_csv'; break; case 'Invoice': case 'JobInvoice': permission_section = 'invoice'; break; } return permission_section; }; var getPermissionData = function() { return LocalCacheData.getPermissionData(); }; return { checkTopLevelPermission: checkTopLevelPermission, validate: validate, getPermissionLevel: getPermissionLevel, getPermissionData: getPermissionData, HelpMenuValidateAdmin: HelpMenuValidateAdmin, HelpMenuValidateSupervisor: HelpMenuValidateSupervisor, importValidate: importValidate, subJobApplicationValidate: subJobApplicationValidate }; } )();