|
|
@@ -481,25 +481,23 @@ module.exports = function(crowi, app) {
|
|
|
const pager = createPager(result.total, result.limit, result.page, result.pages, MAX_PAGE_LIST);
|
|
|
var userGroups = result.docs
|
|
|
var groupRelations = new Map();
|
|
|
- if (userGroups) {
|
|
|
- userGroups.forEach(group => {
|
|
|
- UserGroupRelation.findAllRelationForUserGroup(group)
|
|
|
- .then(function(relations) {
|
|
|
- debug(group);
|
|
|
- debug(relations);
|
|
|
- groupRelations.set(group, relations);
|
|
|
- debug('groupRelations is ', groupRelations);
|
|
|
- }).catch(function(err) {
|
|
|
+ UserGroupRelation.findAllRelationForUserGroups(userGroups)
|
|
|
+ .then( function(relations) {
|
|
|
+ userGroups.map((group) => {
|
|
|
+ groupRelations.set(group, relations.filter( function(target) {
|
|
|
+ return target.relatedGroup.toString() == group._id.toString();
|
|
|
+ }));
|
|
|
+ });
|
|
|
+ return res.render('admin/user-groups', {
|
|
|
+ userGroups: userGroups,
|
|
|
+ userGroupRelations: groupRelations,
|
|
|
+ pager: pager
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch( function(err) {
|
|
|
debug('Error on find all relations', err);
|
|
|
return res.json(ApiResponse.error('Error'));
|
|
|
- });
|
|
|
});
|
|
|
- }
|
|
|
- return res.render('admin/user-groups', {
|
|
|
- userGroups: userGroups,
|
|
|
- userGroupRelations: groupRelations,
|
|
|
- pager: pager
|
|
|
- });
|
|
|
});
|
|
|
};
|
|
|
|
|
|
@@ -507,27 +505,46 @@ module.exports = function(crowi, app) {
|
|
|
actions.userGroup.detail = function (req, res) {
|
|
|
var name = req.params.name;
|
|
|
UserGroup.findUserGroupByName(name)
|
|
|
- .then( function(data) {
|
|
|
- var userGroup = data
|
|
|
- var groupRelations = [];
|
|
|
- if (userGroup) {
|
|
|
- UserGroupRelation.findAllRelationForUserGroup(userGroup)
|
|
|
- .then(function (data) {
|
|
|
- debug('user-group-detail succeed', data);
|
|
|
- return res.render('admin/user-group-detail', {
|
|
|
- userGroup: userGroup,
|
|
|
- userGroupRelations: data
|
|
|
+ .then(function (userGroup) {
|
|
|
+ var groupRelations = [];
|
|
|
+ if (userGroup) {
|
|
|
+ UserGroupRelation.findAllRelationForUserGroup(userGroup)
|
|
|
+ .then(function (relations) {
|
|
|
+ User.findAllUsers(null)
|
|
|
+ .then(function (users) {
|
|
|
+ debug('users', users);
|
|
|
+ users = users.filter( function(user) {
|
|
|
+ var relation = relations.find( function(relation) {
|
|
|
+ return relation.relatedUser._id.toString() == user._id.toString();
|
|
|
+ });
|
|
|
+ return relation == null || relation == undefined;
|
|
|
+ });
|
|
|
+ debug('users', users);
|
|
|
+ debug('user-group-detail succeed', relations);
|
|
|
+ return res.render('admin/user-group-detail', {
|
|
|
+ userGroup: userGroup,
|
|
|
+ userGroupRelations: relations,
|
|
|
+ notRelatedusers: users
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(function(err) {
|
|
|
+ debug('Error on find all relations', err);
|
|
|
+ return res.json(ApiResponse.error('Error'));
|
|
|
+ });
|
|
|
+ }).catch(function (err) {
|
|
|
+ debug('Error on find all relations', err);
|
|
|
+ return res.json(ApiResponse.error('Error'));
|
|
|
});
|
|
|
- }).catch(function (err) {
|
|
|
- debug('Error on find all relations', err);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ debug('Error on get userGroupDetail', err);
|
|
|
return res.json(ApiResponse.error('Error'));
|
|
|
- });
|
|
|
- }
|
|
|
- })
|
|
|
- .catch(function(err) {
|
|
|
- debug('Error on get userGroupDetail', err);
|
|
|
- return res.json(ApiResponse.error('Error'));
|
|
|
- });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(function(err) {
|
|
|
+ debug('Error on get userGroupDetail', err);
|
|
|
+ return res.json(ApiResponse.error('Error'));
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
//グループの生成
|
|
|
@@ -642,22 +659,23 @@ module.exports = function(crowi, app) {
|
|
|
UserGroup.findById(req.body.user_group_id, function(err, userGroup) {
|
|
|
if (err) {
|
|
|
debug('Error on create user-group relation', err);
|
|
|
- return res.json(ApiResponse.error('Error'));
|
|
|
+ req.flash('errorMessage', 'グループの取得に失敗しました');
|
|
|
+ return res.redirect('/admin/user-group-detail/' + userGroup.name);
|
|
|
}
|
|
|
// Relation を作成
|
|
|
UserGroupRelation.createRelation(userGroup, user, function (err, data) {
|
|
|
if (err) {
|
|
|
debug('Error on create user-group relation', err);
|
|
|
- return res.json(ApiResponse.error('Error'));
|
|
|
+ req.flash('errorMessage', 'ユーザの追加に失敗しました');
|
|
|
+ return res.redirect('/admin/user-group-detail/' + userGroup.name);
|
|
|
}
|
|
|
- return res.json(ApiResponse.success(data));
|
|
|
+ return res.redirect('/admin/user-group-detail/' + userGroup.name);
|
|
|
});
|
|
|
-
|
|
|
});
|
|
|
-
|
|
|
}).catch((err) => {
|
|
|
debug('Error on create user-group relation', err);
|
|
|
- return res.json(ApiResponse.error('Error'));
|
|
|
+ req.flash('errorMessage', 'ユーザの取得に失敗しました');
|
|
|
+ return res.redirect('/admin/user-group-detail/' + userGroup.name);
|
|
|
});
|
|
|
}
|
|
|
|