blob: ece67e3ced3643a11680308ac1d96dca486af016 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
define(function(require){
'use strict';
var XABaseModel = require('models/XABaseModel');
var XAGlobals = require('utils/XAGlobals');
var VXPortalUserBase = XABaseModel.extend(
/** @lends VXPortalUserBase.prototype */
{
urlRoot: XAGlobals.baseURL + 'users',
defaults: {},
serverSchema : {
"id" : {
"dataType" : "Long"
},
"version" : {
"dataType" : "int"
},
"createDate" : {
"dataType" : "Date"
},
"updateDate" : {
"dataType" : "Date"
},
"permList" : {
"dataType" : "list",
"listType" : "VNameValue"
},
"forUserId" : {
"dataType" : "Long"
},
"loginId" : {
"dataType" : "String"
},
"password" : {
"dataType" : "String"
},
"profileImageGId" : {
"dataType" : "Long"
},
"status" : {
"dataType" : "int"
},
"emailAddress" : {
"dataType" : "String"
},
"isTestUser" : {
"dataType" : "boolean"
},
"isRegistered" : {
"dataType" : "boolean"
},
"isInternal" : {
"dataType" : "boolean"
},
"gender" : {
"dataType" : "int"
},
"firstName" : {
"dataType" : "String"
},
"lastName" : {
"dataType" : "String"
},
"publicScreenName" : {
"dataType" : "String"
},
"userSource" : {
"dataType" : "int"
},
"timeZone" : {
"dataType" : "String"
},
"userRoleList" : {
"dataType" : "list",
"listType" : "String"
}
},
idAttribute: 'id',
/**
* VXPortalUserBase initialize method
* @augments XABaseModel
* @constructs
*/
initialize: function() {
this.modelName = 'VXPortalUserBase';
this.bindErrorEvents();
},
/*************************
* Non - CRUD operations
*************************/
getUserProfile: function(options) {
return this.constructor.nonCrudOperation.call(this, this.urlRoot + '/profile', 'GET', options);
},
setUserRoles : function(userId, postData , options){
var url = this.urlRoot + '/' + userId + '/roles';
options = _.extend({
data : JSON.stringify(postData),
contentType : 'application/json',
dataType : 'json'
}, options);
return this.constructor.nonCrudOperation.call(this, url, 'PUT', options);
},
changePassword : function(userId, postData , options){
var url = this.urlRoot + '/' + userId + '/passwordchange';
options = _.extend({
data : JSON.stringify(postData),
contentType : 'application/json',
dataType : 'json'
}, options);
return this.constructor.nonCrudOperation.call(this, url, 'POST', options);
},
saveUserProfile : function(vXPortalUser, options){
var url = this.urlRoot ;
options = _.extend({
data : JSON.stringify(vXPortalUser),
contentType : 'application/json',
dataType : 'json'
}, options);
return this.constructor.nonCrudOperation.call(this, url, 'PUT', options);
}
}, {
// static class members
});
return VXPortalUserBase;
});