| <?php |
|
|
| namespace Kanboard\ServiceProvider; |
|
|
| use Pimple\Container; |
| use Pimple\ServiceProviderInterface; |
| use Kanboard\Core\Paginator; |
| use Kanboard\Core\Http\OAuth2; |
| use Kanboard\Core\Tool; |
| use Kanboard\Core\Http\Client as HttpClient; |
|
|
| |
| |
| |
| |
| |
| |
| class ClassProvider implements ServiceProviderInterface |
| { |
| private $classes = array( |
| 'Analytic' => array( |
| 'TaskDistributionAnalytic', |
| 'UserDistributionAnalytic', |
| 'EstimatedTimeComparisonAnalytic', |
| 'AverageLeadCycleTimeAnalytic', |
| 'AverageTimeSpentColumnAnalytic', |
| 'EstimatedActualColumnAnalytic', |
| ), |
| 'Model' => array( |
| 'ActionModel', |
| 'ActionParameterModel', |
| 'AvatarFileModel', |
| 'BoardModel', |
| 'CategoryModel', |
| 'ColorModel', |
| 'ColumnModel', |
| 'ColumnRestrictionModel', |
| 'ColumnMoveRestrictionModel', |
| 'CommentModel', |
| 'ConfigModel', |
| 'CurrencyModel', |
| 'CustomFilterModel', |
| 'GroupModel', |
| 'GroupMemberModel', |
| 'InviteModel', |
| 'LanguageModel', |
| 'LastLoginModel', |
| 'LinkModel', |
| 'NotificationModel', |
| 'PasswordResetModel', |
| 'PredefinedTaskDescriptionModel', |
| 'ProjectModel', |
| 'ProjectFileModel', |
| 'ProjectActivityModel', |
| 'ProjectDuplicationModel', |
| 'ProjectDailyColumnStatsModel', |
| 'ProjectDailyStatsModel', |
| 'ProjectPermissionModel', |
| 'ProjectNotificationModel', |
| 'ProjectMetadataModel', |
| 'ProjectGroupRoleModel', |
| 'ProjectRoleModel', |
| 'ProjectRoleRestrictionModel', |
| 'ProjectTaskDuplicationModel', |
| 'ProjectTaskPriorityModel', |
| 'ProjectUserRoleModel', |
| 'RememberMeSessionModel', |
| 'SubtaskModel', |
| 'SubtaskPositionModel', |
| 'SubtaskStatusModel', |
| 'SubtaskTaskConversionModel', |
| 'SubtaskTimeTrackingModel', |
| 'SwimlaneModel', |
| 'TagDuplicationModel', |
| 'TagModel', |
| 'TaskModel', |
| 'TaskAnalyticModel', |
| 'TaskCreationModel', |
| 'TaskDuplicationModel', |
| 'TaskProjectDuplicationModel', |
| 'TaskProjectMoveModel', |
| 'TaskRecurrenceModel', |
| 'TaskExternalLinkModel', |
| 'TaskFinderModel', |
| 'TaskFileModel', |
| 'TaskLinkModel', |
| 'TaskModificationModel', |
| 'TaskPositionModel', |
| 'TaskReorderModel', |
| 'TaskStatusModel', |
| 'TaskTagModel', |
| 'TaskMetadataModel', |
| 'ThemeModel', |
| 'TimezoneModel', |
| 'TransitionModel', |
| 'UserModel', |
| 'UserLockingModel', |
| 'UserNotificationModel', |
| 'UserNotificationFilterModel', |
| 'UserUnreadNotificationModel', |
| 'UserMetadataModel', |
| ), |
| 'Validator' => array( |
| 'ActionValidator', |
| 'AuthValidator', |
| 'CategoryValidator', |
| 'ColumnMoveRestrictionValidator', |
| 'ColumnRestrictionValidator', |
| 'ColumnValidator', |
| 'CommentValidator', |
| 'CurrencyValidator', |
| 'CustomFilterValidator', |
| 'ExternalLinkValidator', |
| 'GroupValidator', |
| 'LinkValidator', |
| 'PasswordResetValidator', |
| 'ProjectValidator', |
| 'ProjectRoleValidator', |
| 'SubtaskValidator', |
| 'SwimlaneValidator', |
| 'TagValidator', |
| 'TaskLinkValidator', |
| 'TaskValidator', |
| 'UserValidator', |
| 'PredefinedTaskDescriptionValidator', |
| ), |
| 'Import' => array( |
| 'UserImport', |
| ), |
| 'Export' => array( |
| 'SubtaskExport', |
| 'TaskExport', |
| 'TransitionExport', |
| ), |
| 'Pagination' => array( |
| 'DashboardPagination', |
| 'ProjectPagination', |
| 'SubtaskPagination', |
| 'TaskPagination', |
| 'UserPagination', |
| ), |
| 'Core' => array( |
| 'DateParser', |
| 'Lexer', |
| ), |
| 'Core\Event' => array( |
| 'EventManager', |
| ), |
| 'Core\Http' => array( |
| 'Request', |
| 'Response', |
| 'RememberMeCookie', |
| ), |
| 'Core\Plugin' => array( |
| 'Hook', |
| ), |
| 'Core\Security' => array( |
| 'Token', |
| 'Role', |
| ), |
| 'Core\User' => array( |
| 'GroupSync', |
| 'UserSync', |
| 'UserSession', |
| 'UserProfile', |
| ) |
| ); |
|
|
| public function register(Container $container) |
| { |
| Tool::buildDIC($container, $this->classes); |
|
|
| $container['paginator'] = $container->factory(function ($c) { |
| return new Paginator($c); |
| }); |
|
|
| $container['oauth'] = $container->factory(function ($c) { |
| return new OAuth2($c); |
| }); |
|
|
| $container['httpClient'] = function ($c) { |
| return new HttpClient($c); |
| }; |
|
|
| $container['cspRules'] = array( |
| 'default-src' => "'self'", |
| 'style-src' => "'self' 'unsafe-inline'", |
| 'img-src' => '* data:', |
| ); |
|
|
| return $container; |
| } |
| } |
|
|