parent
f7df4c1fa0
commit
e11eea7548
|
@ -19,7 +19,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#import <Foundation/NSArray.h>
|
#import <Foundation/NSArray.h>
|
||||||
#import <Foundation/NSValue.h>
|
|
||||||
#import <Foundation/NSDictionary.h>
|
#import <Foundation/NSDictionary.h>
|
||||||
#import <Foundation/NSEnumerator.h>
|
#import <Foundation/NSEnumerator.h>
|
||||||
#import <Foundation/NSKeyValueCoding.h>
|
#import <Foundation/NSKeyValueCoding.h>
|
||||||
|
@ -81,12 +80,10 @@
|
||||||
return defaultUserID;
|
return defaultUserID;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id <WOActionResults>) usersForObjectAction
|
- (NSArray *) usersForObject
|
||||||
{
|
{
|
||||||
id <WOActionResults> result;
|
|
||||||
NSEnumerator *aclsEnum;
|
NSEnumerator *aclsEnum;
|
||||||
NSString *currentUID, *ownerLogin;
|
NSString *currentUID, *ownerLogin;
|
||||||
NSDictionary *object;
|
|
||||||
|
|
||||||
if (!prepared)
|
if (!prepared)
|
||||||
{
|
{
|
||||||
|
@ -100,29 +97,12 @@
|
||||||
if (!([currentUID isEqualToString: ownerLogin]
|
if (!([currentUID isEqualToString: ownerLogin]
|
||||||
|| [currentUID isEqualToString: defaultUserID]
|
|| [currentUID isEqualToString: defaultUserID]
|
||||||
|| [currentUID isEqualToString: @"anonymous"]))
|
|| [currentUID isEqualToString: @"anonymous"]))
|
||||||
{
|
[users addObjectUniquely: currentUID];
|
||||||
// Set the current user in order to get information associated with it
|
|
||||||
[self setCurrentUser: currentUID];
|
|
||||||
|
|
||||||
// Build the object associated with the key; currentUID
|
|
||||||
object = [NSDictionary dictionaryWithObjectsAndKeys: currentUser, @"UID",
|
|
||||||
[self currentUserClass], @"userClass",
|
|
||||||
[self currentUserDisplayName], @"displayName",
|
|
||||||
[NSNumber numberWithBool:[self currentUserIsSubscribed]], @"isSubscribed", nil];
|
|
||||||
[users addObject:object];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Adding the Any authenticated user and the public access
|
|
||||||
[users addObject:[NSDictionary dictionaryWithObjectsAndKeys: @"<default>", @"UID", @"Any authenticated user", @"displayName", @"public-user", @"userClass", nil]];
|
|
||||||
if ([self isPublicAccessEnabled])
|
|
||||||
[users addObject:[NSDictionary dictionaryWithObjectsAndKeys: @"anonymous", @"UID", @"Public access", @"displayName", @"public-user", @"userClass", nil]];
|
|
||||||
prepared = YES;
|
prepared = YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = [self responseWithStatus: 200
|
return users;
|
||||||
andString: [users jsonRepresentation]];
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setCurrentUser: (NSString *) newCurrentUser
|
- (void) setCurrentUser: (NSString *) newCurrentUser
|
||||||
|
@ -153,13 +133,20 @@
|
||||||
return [um getFullEmailForUID: [self currentUser]];
|
return [um getFullEmailForUID: [self currentUser]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL) canSubscribeUsers
|
||||||
|
{
|
||||||
|
return [[self clientObject]
|
||||||
|
respondsToSelector: @selector (subscribeUserOrGroup:reallyDo:response:)];
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL) currentUserIsSubscribed
|
- (BOOL) currentUserIsSubscribed
|
||||||
{
|
{
|
||||||
SOGoGCSFolder *folder;
|
SOGoGCSFolder *folder;
|
||||||
|
|
||||||
folder = [self clientObject];
|
folder = [self clientObject];
|
||||||
|
|
||||||
return ([folder respondsToSelector: @selector (userIsSubscriber:)] && [folder userIsSubscriber: currentUser]);
|
return ([folder respondsToSelector: @selector (userIsSubscriber:)]
|
||||||
|
&& [folder userIsSubscriber: currentUser]);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setUserUIDS: (NSString *) retainedUsers
|
- (void) setUserUIDS: (NSString *) retainedUsers
|
||||||
|
|
|
@ -119,25 +119,25 @@
|
||||||
if ([newUID length] > 0)
|
if ([newUID length] > 0)
|
||||||
{
|
{
|
||||||
if (!defaultUserID)
|
if (!defaultUserID)
|
||||||
ASSIGN (defaultUserID, [[self clientObject] defaultUserID]);
|
ASSIGN (defaultUserID, [[self clientObject] defaultUserID]);
|
||||||
|
|
||||||
um = [SOGoUserManager sharedUserManager];
|
um = [SOGoUserManager sharedUserManager];
|
||||||
if ([newUID isEqualToString: defaultUserID] || [newUID isEqualToString: @"anonymous"]
|
if ([newUID isEqualToString: defaultUserID] || [newUID isEqualToString: @"anonymous"]
|
||||||
|| [[um getEmailForUID: newUID] length] > 0)
|
|| [[um getEmailForUID: newUID] length] > 0)
|
||||||
{
|
{
|
||||||
if (![newUID hasPrefix: @"@"])
|
if (![newUID hasPrefix: @"@"])
|
||||||
{
|
{
|
||||||
domain = [[context activeUser] domain];
|
domain = [[context activeUser] domain];
|
||||||
group = [SOGoGroup groupWithIdentifier: newUID inDomain: domain];
|
group = [SOGoGroup groupWithIdentifier: newUID inDomain: domain];
|
||||||
if (group)
|
if (group)
|
||||||
newUID = [NSString stringWithFormat: @"@%@", newUID];
|
newUID = [NSString stringWithFormat: @"@%@", newUID];
|
||||||
}
|
}
|
||||||
ASSIGN (uid, newUID);
|
ASSIGN (uid, newUID);
|
||||||
clientObject = [self clientObject];
|
clientObject = [self clientObject];
|
||||||
[userRights addObjectsFromArray: [clientObject aclsForUser: uid]];
|
[userRights addObjectsFromArray: [clientObject aclsForUser: uid]];
|
||||||
|
|
||||||
response = YES;
|
response = YES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
@ -183,11 +183,13 @@
|
||||||
id <WOActionResults> response;
|
id <WOActionResults> response;
|
||||||
|
|
||||||
if (![self _initRights])
|
if (![self _initRights])
|
||||||
response = [self responseWithStatus: 403
|
response = [NSException exceptionWithHTTPStatus: 403
|
||||||
andString: @"No such user."];
|
reason: @"No such user."];
|
||||||
else
|
else
|
||||||
response = [self responseWithStatus: 200
|
{
|
||||||
andString:[[self userRightsForObject] jsonRepresentation]];
|
[self prepareRightsForm];
|
||||||
|
response = self;
|
||||||
|
}
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
@ -235,7 +237,6 @@
|
||||||
{
|
{
|
||||||
response = [self responseWithStatus: 403
|
response = [self responseWithStatus: 403
|
||||||
andString: @"No such user."];
|
andString: @"No such user."];
|
||||||
return response;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -246,9 +247,10 @@
|
||||||
dd = [[context activeUser] domainDefaults];
|
dd = [[context activeUser] domainDefaults];
|
||||||
if (![o isEqualToArray: userRights] && [dd aclSendEMailNotifications])
|
if (![o isEqualToArray: userRights] && [dd aclSendEMailNotifications])
|
||||||
[self sendACLAdvisoryTemplateForObject: [self clientObject]];
|
[self sendACLAdvisoryTemplateForObject: [self clientObject]];
|
||||||
|
|
||||||
|
response = [self jsCloseWithRefreshMethod: nil];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
response = [self jsCloseWithRefreshMethod: nil];
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,7 +267,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) appendExclusiveRight: (NSString *) newRight
|
- (void) appendExclusiveRight: (NSString *) newRight
|
||||||
fromList: (NSArray *) list
|
fromList: (NSArray *) list
|
||||||
{
|
{
|
||||||
[userRights removeObjectsInArray: list];
|
[userRights removeObjectsInArray: list];
|
||||||
[self appendRight: newRight];
|
[self appendRight: newRight];
|
||||||
|
|
|
@ -63,11 +63,6 @@
|
||||||
pageName = "UIxUserRightsEditor";
|
pageName = "UIxUserRightsEditor";
|
||||||
actionName = "saveUserRights";
|
actionName = "saveUserRights";
|
||||||
};
|
};
|
||||||
getUsersForObject = {
|
|
||||||
protectedBy = "view";
|
|
||||||
pageName = "UIxAclEditor";
|
|
||||||
actionName = "usersForObject";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
SOGoParentFolder = {
|
SOGoParentFolder = {
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
|
|
||||||
#import <Foundation/NSArray.h>
|
#import <Foundation/NSArray.h>
|
||||||
#import <Foundation/NSEnumerator.h>
|
#import <Foundation/NSEnumerator.h>
|
||||||
#import <Foundation/NSValue.h>
|
|
||||||
#import <NGObjWeb/WORequest.h>
|
#import <NGObjWeb/WORequest.h>
|
||||||
#import <SoObjects/SOGo/SOGoPermissions.h>
|
#import <SoObjects/SOGo/SOGoPermissions.h>
|
||||||
|
|
||||||
|
@ -30,61 +29,80 @@
|
||||||
|
|
||||||
@implementation UIxContactsUserRightsEditor
|
@implementation UIxContactsUserRightsEditor
|
||||||
|
|
||||||
/*- (void) setUserCanCreateObjects: (BOOL) userCanCreateObjects
|
- (void) setUserCanCreateObjects: (BOOL) userCanCreateObjects
|
||||||
{
|
{
|
||||||
if (userCanCreateObjects)
|
if (userCanCreateObjects)
|
||||||
[self appendRight: SOGoRole_ObjectCreator];
|
[self appendRight: SOGoRole_ObjectCreator];
|
||||||
else
|
else
|
||||||
[self removeRight: SOGoRole_ObjectCreator];
|
[self removeRight: SOGoRole_ObjectCreator];
|
||||||
}*/
|
}
|
||||||
|
|
||||||
- (BOOL) userCanCreateObjects
|
- (BOOL) userCanCreateObjects
|
||||||
{
|
{
|
||||||
return [userRights containsObject: SOGoRole_ObjectCreator];
|
return [userRights containsObject: SOGoRole_ObjectCreator];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void) setUserCanEraseObjects: (BOOL) userCanEraseObjects
|
||||||
|
{
|
||||||
|
if (userCanEraseObjects)
|
||||||
|
[self appendRight: SOGoRole_ObjectEraser];
|
||||||
|
else
|
||||||
|
[self removeRight: SOGoRole_ObjectEraser];
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL) userCanEraseObjects
|
- (BOOL) userCanEraseObjects
|
||||||
{
|
{
|
||||||
return [userRights containsObject: SOGoRole_ObjectEraser];
|
return [userRights containsObject: SOGoRole_ObjectEraser];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void) setUserCanEditObjects: (BOOL) userCanEditObjects
|
||||||
|
{
|
||||||
|
if (userCanEditObjects)
|
||||||
|
[self appendRight: SOGoRole_ObjectEditor];
|
||||||
|
else
|
||||||
|
[self removeRight: SOGoRole_ObjectEditor];
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL) userCanEditObjects
|
- (BOOL) userCanEditObjects
|
||||||
{
|
{
|
||||||
return [userRights containsObject: SOGoRole_ObjectEditor];
|
return [userRights containsObject: SOGoRole_ObjectEditor];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void) setUserCanViewObjects: (BOOL) userCanViewObjects
|
||||||
|
{
|
||||||
|
if (userCanViewObjects)
|
||||||
|
[self appendRight: SOGoRole_ObjectViewer];
|
||||||
|
else
|
||||||
|
[self removeRight: SOGoRole_ObjectViewer];
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL) userCanViewObjects
|
- (BOOL) userCanViewObjects
|
||||||
{
|
{
|
||||||
return [userRights containsObject: SOGoRole_ObjectViewer];
|
return [userRights containsObject: SOGoRole_ObjectViewer];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSDictionary *) userRightsForObject
|
- (void) updateRights
|
||||||
{
|
{
|
||||||
return [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:[self userCanCreateObjects]], @"canCreateObjects",
|
WORequest *request;
|
||||||
[NSNumber numberWithBool:[self userCanEraseObjects]], @"canEraseObjects",
|
|
||||||
[NSNumber numberWithBool:[self userCanEditObjects]], @"canEditObjects",
|
|
||||||
[NSNumber numberWithBool:[self userCanViewObjects]], @"canViewObjects", nil];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) updateRights: (NSDictionary *) newRights
|
request = [context request];
|
||||||
{
|
|
||||||
|
|
||||||
if ([[newRights objectForKey: @"canCreateObjects"] boolValue])
|
if ([[request formValueForKey: @"ObjectCreator"] length] > 0)
|
||||||
[self appendRight: SOGoRole_ObjectCreator];
|
[self appendRight: SOGoRole_ObjectCreator];
|
||||||
else
|
else
|
||||||
[self removeRight: SOGoRole_ObjectCreator];
|
[self removeRight: SOGoRole_ObjectCreator];
|
||||||
|
|
||||||
if ([[newRights objectForKey: @"canEditObjects"] boolValue])
|
if ([[request formValueForKey: @"ObjectEditor"] length] > 0)
|
||||||
[self appendRight: SOGoRole_ObjectEditor];
|
[self appendRight: SOGoRole_ObjectEditor];
|
||||||
else
|
else
|
||||||
[self removeRight: SOGoRole_ObjectEditor];
|
[self removeRight: SOGoRole_ObjectEditor];
|
||||||
|
|
||||||
if ([[newRights objectForKey: @"canViewObjects"] boolValue])
|
if ([[request formValueForKey: @"ObjectViewer"] length] > 0)
|
||||||
[self appendRight: SOGoRole_ObjectViewer];
|
[self appendRight: SOGoRole_ObjectViewer];
|
||||||
else
|
else
|
||||||
[self removeRight: SOGoRole_ObjectViewer];
|
[self removeRight: SOGoRole_ObjectViewer];
|
||||||
|
|
||||||
if ([[newRights objectForKey: @"canEraseObjects"] boolValue])
|
if ([[request formValueForKey: @"ObjectEraser"] length] > 0)
|
||||||
[self appendRight: SOGoRole_ObjectEraser];
|
[self appendRight: SOGoRole_ObjectEraser];
|
||||||
else
|
else
|
||||||
[self removeRight: SOGoRole_ObjectEraser];
|
[self removeRight: SOGoRole_ObjectEraser];
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
xmlns:label="OGo:label"
|
xmlns:label="OGo:label"
|
||||||
xmlns:rsrc="OGo:url"
|
xmlns:rsrc="OGo:url"
|
||||||
const:userDefaultsKeys="SOGoContactsCategories"
|
const:userDefaultsKeys="SOGoContactsCategories"
|
||||||
const:jsFiles="Common/acl-model.js, Common/resource.js, Contacts/card-model.js, Contacts/addressbook-model.js"
|
const:jsFiles="Common/resource.js, Contacts/card-model.js, Contacts/addressbook-model.js"
|
||||||
className="UIxPageFrame"
|
className="UIxPageFrame"
|
||||||
title="name"
|
title="name"
|
||||||
var:popup="isPopup">
|
var:popup="isPopup">
|
||||||
|
@ -61,14 +61,12 @@
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div data-ui-view="addressbooks"><!-- addressbooks list --></div>
|
|
||||||
|
|
||||||
<!-- modal for addressbook sharing options -->
|
<!-- modal for addressbook sharing options -->
|
||||||
<script type="text/ng-template" id="addressbookSharing.html">
|
<script type="text/ng-template" id="addressbookSharing.html">
|
||||||
<div id="modalACL">
|
<div id="modalACL">
|
||||||
<h2>Sharing</h2>
|
<h2>Sharing</h2>
|
||||||
<div>
|
<div>
|
||||||
<!-- left side -->
|
<!-- left side -->
|
||||||
<div id="usersList">
|
<div id="usersList">
|
||||||
<div>
|
<div>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -135,6 +133,16 @@
|
||||||
<span class="close-reveal-modal" data-ng-click="closeModal()"><i class="icon-close"><!-- close --></i></span>
|
<span class="close-reveal-modal" data-ng-click="closeModal()"><i class="icon-close"><!-- close --></i></span>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<div data-ui-view="addressbooks"><!-- addressbooks list --></div>
|
||||||
|
|
||||||
|
<!-- modal for addressbook sharing options -->
|
||||||
|
<script type="text/ng-template" id="addressbookSharing.html">
|
||||||
|
<h2>Sharing</h2>
|
||||||
|
<p class="lead"></p>
|
||||||
|
<p></p>
|
||||||
|
<span class="close-reveal-modal" data-ng-click="closeModal()"><i class="icon-close"><!-- close --></i></span>
|
||||||
|
</script>
|
||||||
|
|
||||||
<script type="text/ng-template" id="addressbooks.html">
|
<script type="text/ng-template" id="addressbooks.html">
|
||||||
|
|
||||||
<!-- dropdown menu for addressbook options button -->
|
<!-- dropdown menu for addressbook options button -->
|
||||||
|
@ -143,16 +151,16 @@
|
||||||
<li>
|
<li>
|
||||||
<span class="button"><i class="icon-hyperlink"><!-- links --></i></span>
|
<span class="button"><i class="icon-hyperlink"><!-- links --></i></span>
|
||||||
</li>
|
</li>
|
||||||
<li data-ng-hide="addressbook.isRemote">
|
<li data-ng-show="!addressbook.isRemote">
|
||||||
<span class="button"><i class="icon-pencil" data-ng-click="edit()"><!-- rename --></i></span>
|
<span class="button"><i class="icon-pencil" data-ng-click="edit()"><!-- rename --></i></span>
|
||||||
</li>
|
</li>
|
||||||
<li data-ng-hide="addressbook.isRemote">
|
<li data-ng-show="!addressbook.isRemote">
|
||||||
<span class="button" data-ng-click="share()"><i class="icon-share"><!-- share --></i></span>
|
<span class="button" data-ng-click="share()"><i class="icon-earth"><!-- share --></i></span>
|
||||||
</li>
|
</li>
|
||||||
<li data-ng-hide="addressbook.isRemote">
|
<li data-ng-show="!addressbook.isRemote">
|
||||||
<span class="button" data-ng-click="importCards()"><i class="icon-file"><!-- import --></i></span>
|
<span class="button" data-ng-click="importCards()"><i class="icon-file"><!-- import --></i></span>
|
||||||
</li>
|
</li>
|
||||||
<li data-ng-hide="addressbook.isRemote">
|
<li data-ng-show="!addressbook.isRemote">
|
||||||
<span class="button" data-ng-click="confirmDelete(addressbook)"><i class="icon-trash"><!-- delete --></i></span>
|
<span class="button" data-ng-click="confirmDelete(addressbook)"><i class="icon-trash"><!-- delete --></i></span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -1,54 +0,0 @@
|
||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
function AclUsers(addressbook) {
|
|
||||||
this.addressbook_id = addressbook.id;
|
|
||||||
this.addressbook_name = addressbook.name;
|
|
||||||
this.addressbook_owner = addressbook.owner;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The factory we'll use to register with Angular */
|
|
||||||
AclUsers.factory = ['$q', '$timeout', 'sgSettings', 'sgResource', function($q, $timeout, Settings, Resource) {
|
|
||||||
angular.extend(AclUsers, {
|
|
||||||
$q: $q,
|
|
||||||
$timeout: $timeout,
|
|
||||||
$$resource: new Resource(Settings.baseURL)
|
|
||||||
});
|
|
||||||
|
|
||||||
return AclUsers; // return constructor
|
|
||||||
}];
|
|
||||||
|
|
||||||
/* Factory registration in Angular module */
|
|
||||||
angular.module('SOGo.Common').factory('sgAclUsers', AclUsers.factory);
|
|
||||||
|
|
||||||
/* Instance methods
|
|
||||||
* Public method, assigned to prototype
|
|
||||||
*/
|
|
||||||
AclUsers.prototype.getUsers = function() {
|
|
||||||
return AclUsers.$$resource.fetch(this.addressbook_id, "getUsersForObject");
|
|
||||||
};
|
|
||||||
|
|
||||||
AclUsers.prototype.searchUsers = function(inputText) {
|
|
||||||
var param = "search=" + inputText;
|
|
||||||
return AclUsers.$$resource.fetch(null, "usersSearch", param);
|
|
||||||
};
|
|
||||||
|
|
||||||
AclUsers.prototype.openRightsForUserId = function(user) {
|
|
||||||
var param = "uid=" + user;
|
|
||||||
return AclUsers.$$resource.fetch(this.addressbook_id, "userRights", param);
|
|
||||||
};
|
|
||||||
|
|
||||||
AclUsers.prototype.addUser = function(user) {
|
|
||||||
var param = "uid=" + user;
|
|
||||||
AclUsers.$$resource.fetch(this.addressbook_id, "addUserInAcls", param);
|
|
||||||
};
|
|
||||||
|
|
||||||
AclUsers.prototype.removeUser = function(user) {
|
|
||||||
var userId = "uid=" + user.UID;
|
|
||||||
AclUsers.$$resource.fetch(this.addressbook_id, "removeUserFromAcls", userId);
|
|
||||||
};
|
|
||||||
|
|
||||||
AclUsers.prototype.saveUsersRights = function(dirtyObjects) {
|
|
||||||
AclUsers.$$resource.saveAclUsers(this.addressbook_id, "saveUserRights", dirtyObjects);
|
|
||||||
};
|
|
||||||
})();
|
|
|
@ -178,19 +178,7 @@
|
||||||
$scope.share = function() {
|
$scope.share = function() {
|
||||||
var modal = $modal.open({
|
var modal = $modal.open({
|
||||||
templateUrl: 'addressbookSharing.html',
|
templateUrl: 'addressbookSharing.html',
|
||||||
controller: function($scope, $http, $modalInstance, sgAclUsers) {
|
controller: function($scope, $modalInstance) {
|
||||||
/* Variables for the scope */
|
|
||||||
$scope.AclUsers = new sgAclUsers($rootScope.addressbook);
|
|
||||||
$scope.userObjects = {};
|
|
||||||
$scope.AclUsers.getUsers().then(function(data) {
|
|
||||||
$scope.users = data;
|
|
||||||
});
|
|
||||||
var dirtyObjects = {};
|
|
||||||
|
|
||||||
/* Functions */
|
|
||||||
$scope.removeButton = function() {
|
|
||||||
return ($scope.userSelected && $scope.userSelected.userClass != "public-user") ? false : true;
|
|
||||||
};
|
|
||||||
$scope.closeModal = function() {
|
$scope.closeModal = function() {
|
||||||
$modalInstance.close();
|
$modalInstance.close();
|
||||||
};
|
};
|
||||||
|
|
|
@ -353,123 +353,6 @@ $column-gutter: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#modalACL {
|
|
||||||
@include grid-row();
|
|
||||||
#usersList {
|
|
||||||
background-color: $f-dropdown-list-hover-bg;
|
|
||||||
border: solid black 1px;
|
|
||||||
box-shadow: 5px 5px 2px #888888;
|
|
||||||
@include grid-column($columns:7);
|
|
||||||
@media #{$medium-up} {
|
|
||||||
@include grid-column($columns:7);
|
|
||||||
}
|
|
||||||
.subscriptionArea {
|
|
||||||
float:right;
|
|
||||||
input, span {
|
|
||||||
vertical-align: -webkit-baseline-middle;
|
|
||||||
margin: 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ul {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
li {
|
|
||||||
list-style-type: none;
|
|
||||||
width: 100%;
|
|
||||||
float: left;
|
|
||||||
clear: left;
|
|
||||||
background-color: $f-dropdown-list-hover-bg;
|
|
||||||
transition: background 300ms ease;
|
|
||||||
display: block;
|
|
||||||
color: #666;
|
|
||||||
line-height: rem-calc(24);
|
|
||||||
padding: $table-head-padding;
|
|
||||||
span {
|
|
||||||
vertical-align: -webkit-baseline-middle;
|
|
||||||
}
|
|
||||||
&:hover, &:active {
|
|
||||||
background-color: $f-dropdown-list-hover-bg;
|
|
||||||
background-color: #fff;
|
|
||||||
}
|
|
||||||
&._selected, &._selected span {
|
|
||||||
background-color: $module-color;
|
|
||||||
background-color: #fff;
|
|
||||||
}
|
|
||||||
.removeAclUser:hover {
|
|
||||||
&:focus, &:hover {
|
|
||||||
color: $primary-color;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.addContactsToolbar {
|
|
||||||
width:99%;
|
|
||||||
padding-left: 5px;
|
|
||||||
display:inline-block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#AccessRightList {
|
|
||||||
overflow: auto;
|
|
||||||
overflow-x: hidden;
|
|
||||||
border-left: solid black;
|
|
||||||
border-top:solid black 1px;
|
|
||||||
border-right:solid black 1px;
|
|
||||||
border-bottom: solid black 1px;
|
|
||||||
min-height: 272px;
|
|
||||||
@include grid-column($columns:6);
|
|
||||||
@media #{$medium-up} {
|
|
||||||
@include grid-column($columns:6);
|
|
||||||
}
|
|
||||||
box-shadow: 5px 5px 2px #888888;
|
|
||||||
background-color: $f-dropdown-list-hover-bg;
|
|
||||||
transition: background 300ms ease;
|
|
||||||
DIV.title
|
|
||||||
{ border-bottom: solid black;
|
|
||||||
background-color:white;
|
|
||||||
}
|
|
||||||
DIV.title SPAN
|
|
||||||
{ float: left;
|
|
||||||
line-height: 14px;
|
|
||||||
text-align: right;
|
|
||||||
width: 120px;
|
|
||||||
}
|
|
||||||
DIV.title SPAN.value
|
|
||||||
{ float: none;
|
|
||||||
margin-left: 2em;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
DIV.title label
|
|
||||||
{ margin-left: 1em;
|
|
||||||
}
|
|
||||||
ul {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
li {
|
|
||||||
list-style-type: none;
|
|
||||||
width: 100%;
|
|
||||||
float: left;
|
|
||||||
clear: left;
|
|
||||||
display: block;
|
|
||||||
color: #666;
|
|
||||||
line-height: rem-calc(24);
|
|
||||||
padding: $table-head-padding;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#aclButtons {
|
|
||||||
clear:both;
|
|
||||||
text-align: right;
|
|
||||||
padding-top:1em;
|
|
||||||
button{
|
|
||||||
margin:0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.buttonsToolbar {
|
.buttonsToolbar {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
|
Loading…
Reference in a new issue