|
|
<?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; |
|
|
} |
|
|
} |
|
|
|