groovity.portal.admin.groups.grvt Maven / Gradle / Ivy
/*******************************************************************************
* © 2018 Disney | ABC Television Group
*
* Licensed under the Apache License, Version 2.0 (the "Apache License")
* with the following modification; you may not use this file except in
* compliance with the Apache License and the following modification to it:
* Section 6. Trademarks. is deleted and replaced with:
*
* 6. Trademarks. This License does not grant permission to use the trade
* names, trademarks, service marks, or product names of the Licensor
* and its affiliates, except as required to comply with Section 4(c) of
* the License and to reproduce the content of the NOTICE file.
*
* You may obtain a copy of the Apache License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Apache License with the above modification is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the Apache License for the specific
* language governing permissions and limitations under the Apache License.
*******************************************************************************/
@Field static portal = [
path:'/admin/groups',
title:"Groups",
roles:['auth','admin'],
order:3
];
@Field static args = [
group_id : 0l,
addMember : 0,
addLeader : 0,
deleteGroup : false,
name:null
];
@Field sql = load('/groovity/sql').sql('portalDB')
load '/data/factory'
selectedGroup = null;
selectedMember = null;
selectedLeader = null;
formError = null
formMessage = null;
closeMemberLink = null;
hasAdminRole = roles.contains('admin');
if(!hasAdminRole && group_id){
//check if user is a group leader
hasAdminRole = request.userPrincipal.getLeadership(group_id);
}
if(roles.contains('admin') && deleteGroup && group_id){
factory('group',"${group_id}")?.delete()
response.sendRedirect('/admin/groups');
return;
}
if(request.method=='POST' && hasAdminRole){
if(addMember){
try{
factory('person',"${addMember}")?.addMembership(group_id)
}
catch(Exception e){
formError = e;
log(error:"Error adding member",thrown:e);
}
}
else if(addLeader){
try{
factory('person',"${addLeader}")?.addLeadership(group_id)
}
catch(Exception e){
formError = e;
log(error:"Error adding leader",thrown:e);
}
}
else if(name){
try{
def newGroup = factory('group').putAll([id:group_id,name:name]);
newGroup.store()
formMessage = "Group updated"
}
catch(Exception e){
formError = e;
log(error:"Error updating group",thrown:e);
}
}
}
if(group_id){
selectedGroup = factory('group',"${group_id}");
}
addMemberFormat = { row, col ->
stream <~ ${row[col]} ~>
};
addLeaderFormat = { row, col ->
stream <~ ${row[col]} ~>
};
<~
~>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy