Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zimbra-admin-api-js
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Public
zimbra-admin-api-js
Commits
35fe2033
Commit
35fe2033
authored
Apr 25, 2016
by
Patricio Bruna
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Accounts Aliases
parent
ffcc8d7b
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
155 additions
and
17 deletions
+155
-17
README.md
README.md
+12
-1
TODOS.md
TODOS.md
+8
-4
zimbra-admin-api.js
lib/zimbra-admin-api.js
+50
-5
zimbra-admin-api.js.map
lib/zimbra-admin-api.js.map
+1
-1
index.js
src/index.js
+31
-3
account.js
src/zimbra/account.js
+9
-1
test.js
test/js/spec/test.js
+44
-2
No files found.
README.md
View file @
35fe2033
...
...
@@ -280,10 +280,21 @@ account.getMailbox(callback);
### Get Mailbox Size
```
javascript
account
.
getMailboxSize
(
callback
);
// Returns a Integer represeting Bytes
// Returns a Integer represeting Bytes
//
```
### Account Alias
The
`alias`
**must**
be an email with
`Domain`
in Zimbra.
```
javascript
account
.
addAccountAlias
(
alias
,
callback
);
// Empty {} if everything goes Ok
account
.
removeAccountAlias
(
alias
,
callback
);
// Empty {} if everything goes Ok
```
### Cos Name
The account only has the Id of the Cos,
`zimbraCOSId`
, but not the name. To get the name you call
`zimbraCosName`
on the Account:
...
...
TODOS.md
View file @
35fe2033
...
...
@@ -5,20 +5,24 @@
## Accounts
*
[
X
]
Add y remove Alias
*
[
]
Que Dominios administra una cuenta
*
[
]
Espacio usado
*
[
X
]
Espacio usado
## DistributionList
*
[
]
Listas privadas
*
[
]
Toda su gestion
## Domains
*
[
X
]
Devolver casillas segun el tipo de plan, cantidad asignadas y cantidad utilizadas para un dominio
*
[
X
]
Limite de casillas
*
[
]
Add y remove Admins
*
[
]
Devolver Tipo de renovación
*
[
]
Devolver Fecha de la proxima renovación
*
[
]
Devolver Empresa (esto entiendo necesitamos otro API)
*
[
X
]
Devolver casillas segun el tipo de plan, cantidad asignadas y cantidad utilizadas para un dominio
*
[
X
]
Limite de casillas
*
[
X
]
Devolver Fecha de la proxima renovación
*
[
X
]
Devolver Admins del dominio
*
[
X
]
Devolver Listas de distribución del dominio
...
...
lib/zimbra-admin-api.js
View file @
35fe2033
...
...
@@ -128,7 +128,7 @@ return /******/ (function(modules) { // webpackBootstrap
this._client = new jszimbra.Communication({ url: auth_object.url });
this.parseAllResponse = this.parseAllResponse.bind(this);
this.parseResponse = this.parseResponse.bind(this);
this.parse
RemoveResponse = this.parseRemove
Response.bind(this);
this.parse
EmptyResponse = this.parseEmpty
Response.bind(this);
this.parseCountAccountResponse = this.parseCountAccountResponse.bind(this);
this.parseSearchResponse = this.parseSearchResponse.bind(this);
this.parseGrantsResponse = this.parseGrantsResponse.bind(this);
...
...
@@ -243,9 +243,12 @@ return /******/ (function(modules) { // webpackBootstrap
var result = that.dictionary.classFactory(resource, response_object, that);
return callback(null, result);
}
// For requests that returns empty Object when Success
}, {
key: 'parse
Remove
Response',
value: function parse
Remove
Response(data, request_data, callback) {
key: 'parse
Empty
Response',
value: function parse
Empty
Response(data, request_data, callback) {
var response_object = data.get()[request_data.response_name];
return callback(null, response_object);
}
...
...
@@ -306,7 +309,7 @@ return /******/ (function(modules) { // webpackBootstrap
request_data.params.name = request_data.request_name + 'Request';
request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parse
Remove
Response;
request_data.parse_response = this.parse
Empty
Response;
request_data.params.params = resource_data;
this.performRequest(request_data);
}
...
...
@@ -355,6 +358,22 @@ return /******/ (function(modules) { // webpackBootstrap
request_data.parse_response = this.parseAllResponse;
this.performRequest(request_data);
}
// Specific functions
}, {
key: 'addAccountAlias',
value: function addAccountAlias(account_id, alias, callback) {
var request_data = {};
request_data.params = this.requestParams();
request_data.request_name = 'AddAccountAlias';
request_data.params.name = request_data.request_name + 'Request';
request_data.response_name = request_data.request_name + 'Response';
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = { 'id': account_id, 'alias': alias };
this.performRequest(request_data);
}
}, {
key: 'getAccount',
value: function getAccount(identifier, callback) {
...
...
@@ -552,6 +571,22 @@ return /******/ (function(modules) { // webpackBootstrap
this.remove('Account', resource_data, callback);
}
// Remove Account Alias
}, {
key: 'removeAccountAlias',
value: function removeAccountAlias(account_id, alias, callback) {
var request_data = {};
request_data.params = this.requestParams();
request_data.request_name = 'RemoveAccountAlias';
request_data.params.name = request_data.request_name + 'Request';
request_data.response_name = request_data.request_name + 'Response';
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = { 'id': account_id, 'alias': alias };
this.performRequest(request_data);
}
// Remove Account
}, {
...
...
@@ -13561,10 +13596,15 @@ return /******/ (function(modules) { // webpackBootstrap
}
(0, _createClass3.default)(Account, [{
key: 'addAccountAlias',
value: function addAccountAlias(alias, callback) {
this.api.addAccountAlias(this.id, alias, callback);
}
}, {
key: 'cosName',
value: function cosName(callback) {
if (this.attrs.zimbraCOSId) {
api.getCos(this.attrs.zimbraCOSId, function (e, d) {
this.
api.getCos(this.attrs.zimbraCOSId, function (e, d) {
if (e) return callback(e);
return callback(null, d.name);
});
...
...
@@ -13590,6 +13630,11 @@ return /******/ (function(modules) { // webpackBootstrap
return callback(null, d.size);
});
}
}, {
key: 'removeAccountAlias',
value: function removeAccountAlias(alias, callback) {
this.api.removeAccountAlias(this.id, alias, callback);
}
}]);
return Account;
}(_zimbra2.default); // Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
lib/zimbra-admin-api.js.map
View file @
35fe2033
This diff is collapsed.
Click to expand it.
src/index.js
View file @
35fe2033
...
...
@@ -34,7 +34,7 @@ export default class ZimbraAdminApi {
this
.
_client
=
new
jszimbra
.
Communication
({
url
:
auth_object
.
url
});
this
.
parseAllResponse
=
this
.
parseAllResponse
.
bind
(
this
);
this
.
parseResponse
=
this
.
parseResponse
.
bind
(
this
);
this
.
parse
RemoveResponse
=
this
.
parseRemove
Response
.
bind
(
this
);
this
.
parse
EmptyResponse
=
this
.
parseEmpty
Response
.
bind
(
this
);
this
.
parseCountAccountResponse
=
this
.
parseCountAccountResponse
.
bind
(
this
);
this
.
parseSearchResponse
=
this
.
parseSearchResponse
.
bind
(
this
);
this
.
parseGrantsResponse
=
this
.
parseGrantsResponse
.
bind
(
this
);
...
...
@@ -148,7 +148,8 @@ export default class ZimbraAdminApi {
return
callback
(
null
,
result
);
}
parseRemoveResponse
(
data
,
request_data
,
callback
){
// For requests that returns empty Object when Success
parseEmptyResponse
(
data
,
request_data
,
callback
){
const
response_object
=
data
.
get
()[
request_data
.
response_name
];
return
callback
(
null
,
response_object
);
}
...
...
@@ -205,7 +206,7 @@ export default class ZimbraAdminApi {
request_data
.
params
.
name
=
`
${
request_data
.
request_name
}
Request`
;
request_data
.
resource
=
resource
;
request_data
.
callback
=
callback
;
request_data
.
parse_response
=
this
.
parse
Remove
Response
;
request_data
.
parse_response
=
this
.
parse
Empty
Response
;
request_data
.
params
.
params
=
resource_data
;
this
.
performRequest
(
request_data
);
}
...
...
@@ -253,6 +254,20 @@ export default class ZimbraAdminApi {
this
.
performRequest
(
request_data
);
}
// Specific functions
addAccountAlias
(
account_id
,
alias
,
callback
)
{
const
request_data
=
{
};
request_data
.
params
=
this
.
requestParams
();
request_data
.
request_name
=
'AddAccountAlias'
;
request_data
.
params
.
name
=
`
${
request_data
.
request_name
}
Request`
;
request_data
.
response_name
=
`
${
request_data
.
request_name
}
Response`
;
request_data
.
callback
=
callback
;
request_data
.
parse_response
=
this
.
parseEmptyResponse
;
request_data
.
params
.
params
=
{
'id'
:
account_id
,
'alias'
:
alias
};
this
.
performRequest
(
request_data
);
}
getAccount
(
identifier
,
callback
)
{
this
.
get
(
'Account'
,
identifier
,
callback
);
}
...
...
@@ -411,6 +426,19 @@ export default class ZimbraAdminApi {
this
.
remove
(
'Account'
,
resource_data
,
callback
);
}
// Remove Account Alias
removeAccountAlias
(
account_id
,
alias
,
callback
)
{
const
request_data
=
{
};
request_data
.
params
=
this
.
requestParams
();
request_data
.
request_name
=
'RemoveAccountAlias'
;
request_data
.
params
.
name
=
`
${
request_data
.
request_name
}
Request`
;
request_data
.
response_name
=
`
${
request_data
.
request_name
}
Response`
;
request_data
.
callback
=
callback
;
request_data
.
parse_response
=
this
.
parseEmptyResponse
;
request_data
.
params
.
params
=
{
'id'
:
account_id
,
'alias'
:
alias
};
this
.
performRequest
(
request_data
);
}
// Remove Account
removeDomain
(
zimbra_id
,
callback
)
{
let
resource_data
=
{
id
:
zimbra_id
};
...
...
src/zimbra/account.js
View file @
35fe2033
...
...
@@ -8,9 +8,13 @@ export default class Account extends Zimbra {
super
(
account_obj
,
zimbra_api_client
);
}
addAccountAlias
(
alias
,
callback
)
{
this
.
api
.
addAccountAlias
(
this
.
id
,
alias
,
callback
);
}
cosName
(
callback
)
{
if
(
this
.
attrs
.
zimbraCOSId
)
{
api
.
getCos
(
this
.
attrs
.
zimbraCOSId
,
function
(
e
,
d
){
this
.
api
.
getCos
(
this
.
attrs
.
zimbraCOSId
,
function
(
e
,
d
){
if
(
e
)
return
callback
(
e
);
return
callback
(
null
,
d
.
name
);
});
...
...
@@ -34,4 +38,8 @@ export default class Account extends Zimbra {
});
}
removeAccountAlias
(
alias
,
callback
)
{
this
.
api
.
removeAccountAlias
(
this
.
id
,
alias
,
callback
);
}
}
test/js/spec/test.js
View file @
35fe2033
...
...
@@ -283,6 +283,48 @@
});
});
it
(
'Should return error for bad AddAccountAlias'
,
function
(
done
){
let
api
=
new
ZimbraAdminApi
(
auth_data
);
let
alias
=
'pbruna@gmail.com'
;
api
.
getAccount
(
'pbruna@itlinux.cl'
,
function
(
err
,
data
){
let
account
=
data
;
account
.
addAccountAlias
(
alias
,
function
(
err
,
data
){
expect
(
err
.
extra
.
code
).
to
.
be
.
equal
(
"account.NO_SUCH_DOMAIN"
);
done
();
});
});
});
it
(
'AddAccountAlias should add the alias'
,
function
(
done
){
let
api
=
new
ZimbraAdminApi
(
auth_data
);
let
alias
=
Date
.
now
()
+
'@itlinux.cl'
;
api
.
getAccount
(
'pbruna@itlinux.cl'
,
function
(
err
,
data
){
let
account
=
data
;
account
.
addAccountAlias
(
alias
,
function
(
err
,
data
){
if
(
err
)
return
console
.
error
(
err
);
expect
(
err
).
to
.
be
.
null
;
done
();
});
});
});
it
(
'RemoveAccountAlias should remove the alias'
,
function
(
done
){
let
api
=
new
ZimbraAdminApi
(
auth_data
);
let
alias
=
Date
.
now
()
+
'@itlinux.cl'
;
api
.
getAccount
(
'pbruna@itlinux.cl'
,
function
(
err
,
data
){
let
account
=
data
;
account
.
addAccountAlias
(
alias
,
function
(
err
,
data
){
if
(
err
)
return
console
.
error
(
err
);
account
.
removeAccountAlias
(
alias
,
function
(
err
,
data
){
if
(
err
)
return
console
.
error
(
err
);
expect
(
err
).
to
.
be
.
null
;
done
();
});
});
});
});
});
...
...
@@ -356,7 +398,7 @@
it
(
'should counts of account for the Domain'
,
function
(
done
){
let
api
=
new
ZimbraAdminApi
(
auth_data
);
api
.
countAccounts
(
'
zboxapp
.dev'
,
function
(
err
,
data
){
api
.
countAccounts
(
'
customer
.dev'
,
function
(
err
,
data
){
if
(
err
)
console
.
error
(
err
);
expect
(
data
.
default
.
used
).
to
.
be
.
above
(
1
);
done
();
...
...
@@ -366,7 +408,7 @@
it
(
'domain.countAccounts() should return the counts'
,
function
(
done
){
let
api
=
new
ZimbraAdminApi
(
auth_data
);
api
.
getDomain
(
'
zboxapp
.dev'
,
function
(
err
,
data
){
api
.
getDomain
(
'
customer
.dev'
,
function
(
err
,
data
){
if
(
err
)
console
.
error
(
err
);
let
domain
=
data
;
domain
.
countAccounts
(
function
(
e
,
d
){
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment