Moves logic to separate UserGroupsController from the user controller, refactors a few model mappings to reduce a few lines of code, default permissions on user groups now save
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* @ngdoc service
|
||||
* @name umbraco.resources.usersResource
|
||||
* @function
|
||||
*
|
||||
* @description
|
||||
* Used by the users section to get users and send requests to create, invite, delete, etc. users.
|
||||
*/
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
function userGroupsResource($http, umbRequestHelper, $q, umbDataFormatter) {
|
||||
|
||||
function getUserGroupScaffold() {
|
||||
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.get(
|
||||
umbRequestHelper.getApiUrl(
|
||||
"userGroupsApiBaseUrl",
|
||||
"GetEmptyUserGroup")),
|
||||
'Failed to get the user group scaffold');
|
||||
}
|
||||
|
||||
function saveUserGroup(userGroup, isNew) {
|
||||
if (!userGroup) {
|
||||
throw "userGroup not specified";
|
||||
}
|
||||
|
||||
//need to convert the user data into the correctly formatted save data - it is *not* the same and we don't want to over-post
|
||||
var formattedSaveData = umbDataFormatter.formatUserGroupPostData(userGroup, "save" + (isNew ? "New" : ""));
|
||||
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.post(
|
||||
umbRequestHelper.getApiUrl(
|
||||
"userGroupsApiBaseUrl",
|
||||
"PostSaveUserGroup"),
|
||||
formattedSaveData),
|
||||
"Failed to save user group");
|
||||
}
|
||||
|
||||
function getUserGroup(id) {
|
||||
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.get(
|
||||
umbRequestHelper.getApiUrl(
|
||||
"userGroupsApiBaseUrl",
|
||||
"GetUserGroup",
|
||||
{ id: id })),
|
||||
"Failed to retrieve data for user group " + id);
|
||||
|
||||
}
|
||||
|
||||
function getUserGroups() {
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.get(
|
||||
umbRequestHelper.getApiUrl(
|
||||
"userGroupsApiBaseUrl",
|
||||
"GetUserGroups")),
|
||||
"Failed to retrieve user groups");
|
||||
}
|
||||
|
||||
var resource = {
|
||||
saveUserGroup: saveUserGroup,
|
||||
getUserGroup: getUserGroup,
|
||||
getUserGroups: getUserGroups,
|
||||
getUserGroupScaffold: getUserGroupScaffold
|
||||
};
|
||||
|
||||
return resource;
|
||||
|
||||
}
|
||||
|
||||
angular.module('umbraco.resources').factory('userGroupsResource', userGroupsResource);
|
||||
|
||||
})();
|
||||
@@ -20,17 +20,7 @@
|
||||
"PostClearAvatar",
|
||||
{ id: userId })),
|
||||
'Failed to clear the user avatar ' + userId);
|
||||
}
|
||||
|
||||
function getUserGroupScaffold() {
|
||||
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.get(
|
||||
umbRequestHelper.getApiUrl(
|
||||
"userApiBaseUrl",
|
||||
"GetEmptyUserGroup")),
|
||||
'Failed to get the user group scaffold');
|
||||
}
|
||||
}
|
||||
|
||||
function disableUsers(userIds) {
|
||||
if (!userIds) {
|
||||
@@ -173,44 +163,7 @@
|
||||
formattedSaveData),
|
||||
"Failed to save user");
|
||||
}
|
||||
|
||||
function saveUserGroup(userGroup, isNew) {
|
||||
if (!userGroup) {
|
||||
throw "userGroup not specified";
|
||||
}
|
||||
|
||||
//need to convert the user data into the correctly formatted save data - it is *not* the same and we don't want to over-post
|
||||
var formattedSaveData = umbDataFormatter.formatUserGroupPostData(userGroup, "save" + (isNew ? "New" : ""));
|
||||
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.post(
|
||||
umbRequestHelper.getApiUrl(
|
||||
"userApiBaseUrl",
|
||||
"PostSaveUserGroup"),
|
||||
formattedSaveData),
|
||||
"Failed to save user group");
|
||||
}
|
||||
|
||||
function getUserGroup(id) {
|
||||
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.get(
|
||||
umbRequestHelper.getApiUrl(
|
||||
"userApiBaseUrl",
|
||||
"GetUserGroup",
|
||||
{ id: id })),
|
||||
"Failed to retrieve data for user group " + id);
|
||||
|
||||
}
|
||||
|
||||
function getUserGroups() {
|
||||
return umbRequestHelper.resourcePromise(
|
||||
$http.get(
|
||||
umbRequestHelper.getApiUrl(
|
||||
"userApiBaseUrl",
|
||||
"GetUserGroups")),
|
||||
"Failed to retrieve user groups");
|
||||
}
|
||||
|
||||
|
||||
var resource = {
|
||||
disableUsers: disableUsers,
|
||||
@@ -219,12 +172,8 @@
|
||||
getUser: getUser,
|
||||
createUser: createUser,
|
||||
inviteUser: inviteUser,
|
||||
saveUser: saveUser,
|
||||
saveUserGroup: saveUserGroup,
|
||||
getUserGroup: getUserGroup,
|
||||
getUserGroups: getUserGroups,
|
||||
clearAvatar: clearAvatar,
|
||||
getUserGroupScaffold: getUserGroupScaffold
|
||||
saveUser: saveUser,
|
||||
clearAvatar: clearAvatar
|
||||
};
|
||||
|
||||
return resource;
|
||||
|
||||
@@ -117,13 +117,25 @@
|
||||
formatUserGroupPostData: function (displayModel, action) {
|
||||
|
||||
//create the save model from the display model
|
||||
var saveModel = _.pick(displayModel, 'id', 'alias', 'name', 'icon', 'sections', 'users', 'startContentId', 'startMediaId');
|
||||
var saveModel = _.pick(displayModel, 'id', 'alias', 'name', 'icon', 'sections', 'users', 'startContentId', 'startMediaId', 'permissions');
|
||||
//set the action on the save model
|
||||
saveModel.action = action;
|
||||
if (!saveModel.id) {
|
||||
saveModel.id = 0;
|
||||
}
|
||||
|
||||
//the permissions need to just be the array of permission letters, currently it will be a dictionary of an array
|
||||
var currPermissions = saveModel.permissions;
|
||||
var savePermissions = [];
|
||||
_.each(currPermissions, function(value, key, list) {
|
||||
_.each(value, function (element, index, list) {
|
||||
if (element.checked) {
|
||||
savePermissions.push(element.permissionCode);
|
||||
}
|
||||
});
|
||||
});
|
||||
saveModel.permissions = savePermissions;
|
||||
|
||||
//make sure the sections are just a string array
|
||||
var currSections = saveModel.sections;
|
||||
var formattedSections = [];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
function UserGroupEditController($scope, $location, $routeParams, usersResource, localizationService, contentEditingHelper) {
|
||||
function UserGroupEditController($scope, $location, $routeParams, userGroupsResource, localizationService, contentEditingHelper) {
|
||||
|
||||
var vm = this;
|
||||
var localizeSaving = localizationService.localize("general_saving");
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
if ($routeParams.create) {
|
||||
// get user group scaffold
|
||||
usersResource.getUserGroupScaffold().then(function (userGroup) {
|
||||
userGroupsResource.getUserGroupScaffold().then(function (userGroup) {
|
||||
vm.userGroup = userGroup;
|
||||
setSectionIcon(vm.userGroup.sections);
|
||||
makeBreadcrumbs();
|
||||
@@ -38,7 +38,7 @@
|
||||
});
|
||||
} else {
|
||||
// get user group
|
||||
usersResource.getUserGroup($routeParams.id).then(function (userGroup) {
|
||||
userGroupsResource.getUserGroup($routeParams.id).then(function (userGroup) {
|
||||
vm.userGroup = userGroup;
|
||||
setSectionIcon(vm.userGroup.sections);
|
||||
makeBreadcrumbs();
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
contentEditingHelper.contentEditorPerformSave({
|
||||
statusMessage: localizeSaving,
|
||||
saveMethod: usersResource.saveUserGroup,
|
||||
saveMethod: userGroupsResource.saveUserGroup,
|
||||
scope: $scope,
|
||||
content: vm.userGroup,
|
||||
// We do not redirect on failure for users - this is because it is not possible to actually save a user
|
||||
|
||||
Reference in New Issue
Block a user