Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions modules/admin/client/config/admin.client.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ angular.module('admin').run(['Menus',

// Add the dropdown list item
Menus.addSubMenuItem('topbar', 'admin', {
title: 'List Users',
state: 'admin.list'
title: 'Manage Users',
state: 'admin.users'
});
}
]);
12 changes: 6 additions & 6 deletions modules/admin/client/config/admin.client.routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ angular.module('admin').config(['$stateProvider',
url: '/admin',
template: '<ui-view/>'
}).
state('admin.list', {
url: '/list',
state('admin.users', {
url: '/users',
templateUrl: 'modules/admin/views/list-users.client.view.html'
}).
state('admin.view', {
url: '/:userId',
state('admin.user', {
url: '/users/:userId',
templateUrl: 'modules/admin/views/view-user.client.view.html'
}).
state('admin.edit', {
url: '/edit/:userId',
state('admin.edit-user', {
url: '/users/:userId/edit',
templateUrl: 'modules/admin/views/edit-user.client.view.html'
});
}
Expand Down
35 changes: 10 additions & 25 deletions modules/admin/client/controllers/admin.client.controller.js
Original file line number Diff line number Diff line change
@@ -1,58 +1,43 @@
'use strict';

angular.module('admin').controller('AdminController', ['$scope', '$stateParams', '$state', '$filter', '$location', 'Authentication', 'Admin',
function($scope, $stateParams, $state, $filter, $location, Authentication, Admin) {
angular.module('admin').controller('AdminController', ['$scope', '$stateParams', '$state', '$filter', 'Authentication', 'Admin',
function($scope, $stateParams, $state, $filter, Authentication, Admin) {
$scope.authentication = Authentication;
/*
$scope.create = function() {
var article = new Articles({
title: this.title,
content: this.content
});
article.$save(function(response) {
$location.path('articles/' + response._id);

$scope.title = '';
$scope.content = '';
}, function(errorResponse) {
$scope.error = errorResponse.data.message;
});
};
*/
$scope.remove = function(user) {
if(confirm('Are you sure you want to delete this user?')) {
if (user) {
user.$remove();

$scope.adminusers.splice($scope.adminusers.indexOf(user),1);
$scope.users.splice($scope.users.indexOf(user),1);

} else {
$scope.adminuser.$remove(function() {
$state.go('admin.list');
$scope.user.$remove(function() {
$state.go('admin.users');
});
}
}
};

$scope.update = function() {
var user = $scope.adminuser;
var user = $scope.user;

user.$update(function() {
$location.path('admin/' + user._id);
$state.go('admin.user', { userId: user._id });
}, function(errorResponse) {
$scope.error = errorResponse.data.message;
});
};

$scope.find = function() {
Admin.query(function (data) {
$scope.adminusers = data;
$scope.users = data;
$scope.buildPager();
});
};

$scope.findOne = function() {
$scope.adminuser = Admin.get({
$scope.user = Admin.get({
userId: $stateParams.userId
});
};
Expand All @@ -65,7 +50,7 @@ angular.module('admin').controller('AdminController', ['$scope', '$stateParams',
};

$scope.figureOutItemsToDisplay = function () {
$scope.filteredItems = $filter('filter')($scope.adminusers, { $: $scope.search});
$scope.filteredItems = $filter('filter')($scope.users, { $: $scope.search});
$scope.filterLength = $scope.filteredItems.length;
var begin = (($scope.currentPage - 1) * $scope.itemsPerPage);
var end = begin + $scope.itemsPerPage;
Expand Down
2 changes: 1 addition & 1 deletion modules/admin/client/services/admin.client.service.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//Articles service used for communicating with the articles REST endpoints
angular.module('admin').factory('Admin', ['$resource',
function($resource) {
return $resource('api/admin/:userId', {
return $resource('api/users/:userId', {
userId: '@_id'
}, {
update: {
Expand Down
8 changes: 4 additions & 4 deletions modules/admin/client/views/edit-user.client.view.html
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
<section data-ng-controller="AdminController" data-ng-init="findOne()">
<div class="page-header">
<h1>User <span data-ng-bind="adminuser.username"</span</h1>
<h1>User <span data-ng-bind="user.username"</span</h1>
</div>
<div class="col-md-12">
<form name="userForm" class="form-horizontal" data-ng-submit="update()" novalidate>
<fieldset>
<div class="form-group">
<label class="control-label" for="firstName">First Name</label>
<div class="controls">
<input name="firstName" type="text" data-ng-model="adminuser.firstName" id="firstName" class="form-control" placeholder="First Name" required>
<input name="firstName" type="text" data-ng-model="user.firstName" id="firstName" class="form-control" placeholder="First Name" required>
</div>
</div>
<div class="form-group">
<label class="control-label" for="lastName">Last Name</label>
<div class="controls">
<input type="text" name="lastName" data-ng-model="adminuser.lastName" id="lastName" class="form-control" placeholder="Last Name" />
<input type="text" name="lastName" data-ng-model="user.lastName" id="lastName" class="form-control" placeholder="Last Name" />
</div>
</div>
<div class="form-group">
<label class="control-label" for="roles">Roles</label>
<div class="controls">
<input class="form-control" type="text" name="roles" data-ng-model="adminuser.roles" id="roles" ng-list />
<input class="form-control" type="text" name="roles" data-ng-model="user.roles" id="roles" ng-list />
</div>
</div>
<div class="form-group">
Expand Down
4 changes: 2 additions & 2 deletions modules/admin/client/views/list-users.client.view.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ <h1>Users</h1>

</div>
<div class="list-group">
<a data-ng-repeat="adminuser in pagedItems" data-ui-sref="admin.view({userId: adminuser._id})" class="list-group-item">
<h4 class="list-group-item-heading" data-ng-bind="adminuser.username"></h4>
<a data-ng-repeat="user in pagedItems" data-ui-sref="admin.user({userId: user._id})" class="list-group-item">
<h4 class="list-group-item-heading" data-ng-bind="user.username"></h4>
<p class="list-group-item-text" data-ng-bind="article.content"></p>
</a>
</div>
Expand Down
18 changes: 9 additions & 9 deletions modules/admin/client/views/view-user.client.view.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
<div class="page-header">
<div class="row">
<div class="col-md-6">
<h1 data-ng-bind="adminuser.username"></h1>
<h1 data-ng-bind="user.username"></h1>
</div>
<div class="col-md-4">
<a class="btn btn-primary" data-ui-sref="admin.edit({userId: adminuser._id})">
<a class="btn btn-primary" data-ui-sref="admin.edit-user({userId: user._id})">
<i class="glyphicon glyphicon-edit"></i>
</a>
<a class="btn btn-primary" data-ng-click="remove();">
<a class="btn btn-primary" data-ng-click="remove();" ng-if="user._id !== authentication.user._id">
<i class="glyphicon glyphicon-trash"></i>
</a>
</div>
Expand All @@ -20,32 +20,32 @@ <h1 data-ng-bind="adminuser.username"></h1>
<div class="col-md-8">
<div class="row">
<div class="col-md-3"><strong>First Name</strong></div>
<div class="col-md-6" data-ng-bind="adminuser.firstName"></div>
<div class="col-md-6" data-ng-bind="user.firstName"></div>
</div>
<hr/>
<div class="row">
<div class="col-md-3"><strong>Last Name</strong></div>
<div class="col-md-6" data-ng-bind="adminuser.lastName"></div>
<div class="col-md-6" data-ng-bind="user.lastName"></div>
</div>
<hr/>
<div class="row">
<div class="col-md-3"><strong>Email</strong></div>
<div class="col-md-6" data-ng-bind="adminuser.email"></div>
<div class="col-md-6" data-ng-bind="user.email"></div>
</div>
<hr/>
<div class="row">
<div class="col-md-3"><strong>Provider</strong></div>
<div class="col-md-6" data-ng-bind="adminuser.provider"></div>
<div class="col-md-6" data-ng-bind="user.provider"></div>
</div>
<hr/>
<div class="row">
<div class="col-md-3"><strong>Created</strong></div>
<div class="col-md-6" data-ng-bind="adminuser.created"></div>
<div class="col-md-6" data-ng-bind="user.created"></div>
</div>
<hr/>
<div class="row">
<div class="col-md-3"><strong>Roles</strong></div>
<div class="col-md-6" data-ng-bind="adminuser.roles"></div>
<div class="col-md-6" data-ng-bind="user.roles"></div>
</div>
</div>
</div>
Expand Down
102 changes: 5 additions & 97 deletions modules/admin/server/controllers/admin.server.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,103 +3,11 @@
/**
* Module dependencies.
*/
var path = require('path'),
mongoose = require('mongoose'),
//Article = mongoose.model('Article'),
User = mongoose.model('User'),
_ = require('lodash'),
errorHandler = require(path.resolve('./modules/core/server/controllers/errors.server.controller'));
var _ = require('lodash');

/**
* Create a article
* Extend user's controller
*/
/* NO USER CREATE
exports.create = function(req, res) {
var user = new User(req.body);

article.save(function(err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(article);
}
});
};
*/

/**
* Show the current user
*/
exports.read = function(req, res) {
res.json(req.adminuser);
};

/**
* Update a User
*/
exports.update = function(req, res) {
var user = req.adminuser;

//For security purposes only merge these parameters
user.firstName = req.body.firstName;
user.lastName = req.body.lastName;
user.roles = req.body.roles;



user.save(function(err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(user);
}
});
};

/**
* Delete a user
*/
exports.delete = function(req, res) {
var user = req.adminuser;

user.remove(function(err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(user);
}
});
};

/**
* List of Users
*/
exports.list = function(req, res) {
User.find({}, '-salt -password').sort('-created').populate('user', 'displayName').exec(function(err, users) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(users);
}
});
};

/**
* User middleware
*/
exports.userByID = function(req, res, next, id) {
User.findById(id).exec(function(err, user) {
if (err) return next(err);
if (!user) return next(new Error('Failed to load user ' + id));
req.adminuser = user;
next();
});
};
module.exports = _.extend(
require('./admin/admin.users.server.controller')
);
Loading