2018-01-12 12:57:53 +00:00
|
|
|
// (C) Copyright 2015 Martin Dougiamas
|
|
|
|
//
|
|
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
// you may not use this file except in compliance with the License.
|
|
|
|
// You may obtain a copy of the License at
|
|
|
|
//
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
//
|
|
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
// See the License for the specific language governing permissions and
|
|
|
|
// limitations under the License.
|
|
|
|
|
|
|
|
import { NgModule } from '@angular/core';
|
2018-01-16 14:52:07 +00:00
|
|
|
import { CoreUserDelegate } from './providers/user-delegate';
|
|
|
|
import { CoreUserProfileFieldDelegate } from './providers/user-profile-field-delegate';
|
2018-01-12 12:57:53 +00:00
|
|
|
import { CoreUserProvider } from './providers/user';
|
2018-01-12 15:24:24 +00:00
|
|
|
import { CoreUserHelperProvider } from './providers/helper';
|
2018-01-15 14:57:42 +00:00
|
|
|
import { CoreUserProfileMailHandler } from './providers/user-handler';
|
2018-03-01 15:55:49 +00:00
|
|
|
import { CoreEventsProvider } from '@providers/events';
|
|
|
|
import { CoreSitesProvider } from '@providers/sites';
|
2018-03-08 12:25:20 +00:00
|
|
|
import { CoreContentLinksDelegate } from '@core/contentlinks/providers/delegate';
|
2018-01-24 12:49:53 +00:00
|
|
|
import { CoreUserProfileLinkHandler } from './providers/user-link-handler';
|
2018-01-25 08:36:53 +00:00
|
|
|
import { CoreUserParticipantsCourseOptionHandler } from './providers/course-option-handler';
|
|
|
|
import { CoreUserParticipantsLinkHandler } from './providers/participants-link-handler';
|
2018-03-08 12:25:20 +00:00
|
|
|
import { CoreCourseOptionsDelegate } from '@core/course/providers/options-delegate';
|
2018-01-30 12:16:28 +00:00
|
|
|
import { CoreUserComponentsModule } from './components/components.module';
|
2018-01-12 12:57:53 +00:00
|
|
|
|
2018-02-13 13:38:04 +00:00
|
|
|
// List of providers (without handlers).
|
|
|
|
export const CORE_USER_PROVIDERS: any[] = [
|
|
|
|
CoreUserDelegate,
|
|
|
|
CoreUserProfileFieldDelegate,
|
|
|
|
CoreUserProvider,
|
|
|
|
CoreUserHelperProvider,
|
|
|
|
];
|
|
|
|
|
2018-01-12 12:57:53 +00:00
|
|
|
@NgModule({
|
|
|
|
declarations: [
|
|
|
|
],
|
|
|
|
imports: [
|
2018-01-30 12:16:28 +00:00
|
|
|
CoreUserComponentsModule
|
2018-01-12 12:57:53 +00:00
|
|
|
],
|
2018-06-08 07:03:48 +00:00
|
|
|
providers: [
|
|
|
|
CoreUserDelegate,
|
|
|
|
CoreUserProfileFieldDelegate,
|
|
|
|
CoreUserProvider,
|
|
|
|
CoreUserHelperProvider,
|
2018-01-15 14:57:42 +00:00
|
|
|
CoreUserProfileMailHandler,
|
2018-01-25 08:36:53 +00:00
|
|
|
CoreUserProfileLinkHandler,
|
|
|
|
CoreUserParticipantsCourseOptionHandler,
|
|
|
|
CoreUserParticipantsLinkHandler
|
2018-06-08 07:03:48 +00:00
|
|
|
]
|
2018-01-12 12:57:53 +00:00
|
|
|
})
|
2018-01-15 14:57:42 +00:00
|
|
|
export class CoreUserModule {
|
2018-01-23 14:35:34 +00:00
|
|
|
constructor(userDelegate: CoreUserDelegate, userProfileMailHandler: CoreUserProfileMailHandler,
|
2018-01-24 12:49:53 +00:00
|
|
|
eventsProvider: CoreEventsProvider, sitesProvider: CoreSitesProvider, userProvider: CoreUserProvider,
|
2018-01-25 08:36:53 +00:00
|
|
|
contentLinksDelegate: CoreContentLinksDelegate, userLinkHandler: CoreUserProfileLinkHandler,
|
|
|
|
courseOptionHandler: CoreUserParticipantsCourseOptionHandler, linkHandler: CoreUserParticipantsLinkHandler,
|
|
|
|
courseOptionsDelegate: CoreCourseOptionsDelegate) {
|
|
|
|
|
2018-01-15 14:57:42 +00:00
|
|
|
userDelegate.registerHandler(userProfileMailHandler);
|
2018-01-25 08:36:53 +00:00
|
|
|
courseOptionsDelegate.registerHandler(courseOptionHandler);
|
2018-01-24 12:49:53 +00:00
|
|
|
contentLinksDelegate.registerHandler(userLinkHandler);
|
2018-01-25 08:36:53 +00:00
|
|
|
contentLinksDelegate.registerHandler(linkHandler);
|
2018-01-23 14:35:34 +00:00
|
|
|
|
|
|
|
eventsProvider.on(CoreEventsProvider.USER_DELETED, (data) => {
|
|
|
|
// Search for userid in params.
|
2018-01-29 09:05:20 +00:00
|
|
|
const params = data.params;
|
|
|
|
let userId = 0;
|
|
|
|
|
2018-01-23 14:35:34 +00:00
|
|
|
if (params.userid) {
|
|
|
|
userId = params.userid;
|
|
|
|
} else if (params.userids) {
|
|
|
|
userId = params.userids[0];
|
|
|
|
} else if (params.field === 'id' && params.values && params.values.length) {
|
|
|
|
userId = params.values[0];
|
|
|
|
} else if (params.userlist && params.userlist.length) {
|
|
|
|
userId = params.userlist[0].userid;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (userId > 0) {
|
|
|
|
userProvider.deleteStoredUser(userId, data.siteId);
|
|
|
|
}
|
|
|
|
}, sitesProvider.getCurrentSiteId());
|
2018-01-15 14:57:42 +00:00
|
|
|
}
|
|
|
|
}
|