DEBUG=1
# Print all debug lines if DEBUG = 1
sub print_debug()
{
if test "$DEBUG" -eq 1
then
echo $@
fi
}
sub print_usage()
{
echo "$PROGRAM <user_list> <role_list>\n"
echo " user_list - Colon-delimited list of users to add"
echo " role_list - Colon-delimited list of roles to add\n"
exit 1
}
sub get_workspace_IDs()
{
CUR_ROLE=$1
if test -z "$CUR_ROLE"
then
echo "Error: No role passed to $0."
exit 1
fi
# Template group
print_debug "Getting Workspace IDs for $role."
SERVER_WS_ID=`blcli -i ~/.bladelogic/.user/user_info_$CUR_ROLE.dat ServerGroup groupNameToId "/Workspace"`
COMPONENT_WS_ID=`blcli -i ~/.bladelogic/.user/user_info_$CUR_ROLE.dat TemplateGroup groupNameToId "/Workspace"`
DEPOT_WS_ID=`blcli -i ~/.bladelogic/.user/user_info_$CUR_ROLE.dat DepotGroup groupNameToId "/Workspace"`
JOB_WS_ID=`blcli -i ~/.bladelogic/.user/user_info_$CUR_ROLE.dat JobGroup groupNameToId "/Workspace"`
print_debug "Server Workspace Group ID is $SERVER_WS_ID."
print_debug "Component Workspace Group ID is $COMPONENT_WS_ID."
print_debug "Depot Workspace Group ID is $DEPOT_WS_ID."
print_debug "Job Workspace Group ID is $JOB_WS_ID."
}
sub create_user_workspaces()
{
CUR_ROLE=$1
CUR_USER=$2
# Create workspace depot, component, and job groups for each
# role to which the user belongs
print_debug "Creating Workspace groups for $CUR_USER..."
# Server group
RESULT=`blcli -i ~/.bladelogic/.user/user_info_$CUR_ROLE.dat StaticServerGroup createServerGroup "$CUR_USER" "$SERVER_WS_ID"`
print_debug "Server group creation: $RESULT."
# Component group
RESULT=`blcli -i ~/.bladelogic/.user/user_info_$CUR_ROLE.dat TemplateGroup createTemplateGroup "$CUR_USER" "$COMPONENT_WS_ID"`
print_debug "Component group creation: $RESULT."
# Depot group
RESULT=`blcli -i ~/.bladelogic/.user/user_info_$CUR_ROLE.dat DepotGroup createDepotGroup "$CUR_USER" "$DEPOT_WS_ID"`
print_debug "Depot group creation: $RESULT."
# Job group
RESULT=`blcli -i ~/.bladelogic/.user/user_info_$CUR_ROLE.dat JobGroup createJobGroup "$CUR_USER" "$JOB_WS_ID"`
print_debug "Job group creation: $RESULT."
}
# Parse out users list (assume colon-delimited format)
PROGRAM=$0
USER_LIST=$1
ROLE_LIST=$2
PUSH_ACLS=$3
print_debug "ACL Push: $PUSH_ACLS"
# Create a file for listing ACL hosts
SERVER_LIST="/usr/nsh/tmp/server_list$$"
rm -f $SERVER_LIST
touch $SERVER_LIST
if test -z $USER_LIST
then
echo "Error: No users defined."
print_usage
fi
if test -z $ROLE_LIST
then
echo "Error: No roles defined."
print_usage
fi
USER_LIST=`echo $USER_LIST | sed -e s/\:/\ /g`
print_debug "User list is $USER_LIST"
ROLE_LIST=`echo $ROLE_LIST | sed -e s/\:/\ /g`
print_debug "Role list is $ROLE_LIST"
# First add the users to RBAC
foreach user in $USER_LIST
do
USER_EXISTS=`blcli RBACUser isUserExists $user`
if test "$USER_EXISTS" = "true"
then
echo "Warning: user $user already exists. Skipping to next user (if applicable)."
else
desc="$user"
password="${user}_123"
print_debug "Adding user: $desc"
print_debug "Password: $password"
RESULT=`blcli RBACUser createUser $user $password $desc`
print_debug "Result of creating $user: $RESULT."
fi
done
foreach role in $ROLE_LIST
do
# Assumes that "Workspace" groups exist on all tabs (except Servers)
print_debug "Getting root Workspace groups for $role."
get_workspace_IDs $role
foreach user in $USER_LIST
do
if test "$USER_EXISTS" = "true"
then
echo "Warning: user $user already exists. Skipping to next user (if applicable)."
else
# Add user to the appropriate roles
echo "Adding $user to $role."
RESULT=`blcli RBACUser addRole "$user" "$role"`
print_debug "Result of adding $user to $role: $RESULT."
# Create user workspaces
print_debug "Adding $user workspace to $role."
create_user_workspaces $role $user
fi
done
if test "$PUSH_ACLS" = "true" || test "$PUSH_ACLS" = "TRUE"
then
# List servers in role and add to master server list (for ACL pushing)
SERVERS=`blcli -i ~/.bladelogic/.user/user_info_$role.dat Server listAllServers`
foreach server in $SERVERS
do
# If the server's not already on the list, then add it
if test "`cat $SERVER_LIST | grep -q $server`" -ne 0
then
cat $server >> $SERVER_LIST
fi
done
fi
done
# Push ACLs to necessary servers (if requested)
if test "$PUSH_ACLS" = "true" || test "$PUSH_ACLS" = "TRUE"
then
foreach server in `cat $SERVER_LIST`
do
echo "Push ACLs to $server."
SERVER_ID=`blcli Server getServerIdByName $server`
print_debug "ID for $server: $SERVER_ID"
RESULT=`blcli Resource requestAgentPushAcl $SERVER_ID`
print_debug "Result of ACL push to $server: $RESULT."
done
fi
rm -r $SERVER_LIST
分享到:
相关推荐
提供的配置对象使您可以定义“虚拟”组,从而创建直接引用组中所有用户的RoleBindings和ClusterRoleBindings。 可以直接在配置对象中声明组成员身份,也可以从“上游”中提取组成员身份。 当前,唯一受支持的上游...
5.RBAC-完成添加角色和权限的功能-1 5.RBAC-完成添加角色和权限的功能-2 6.选择权限时JS的智能选择 7.角色完成 第四天 1.管理员管理 2.RBAC-权限的验证-完成 3.商品模块需求分析 4.商品模块表结构设计 5.类型管理 第...
系统设计-后台 1.引入mybatis-plus使用说明 ...根据提示在控制台输入要生成的表名 ...RBAC控制权限模式,即用户-角色-权限 控制到按钮级别,即在接口上面添加@RequiresPermissions(value="user:list") 而不是@Require
密操作,在整个使用过程中,对用户而言,整个加 解密过程不会被察觉。文件在硬盘上是以密文的形 式进行存储,即使别人拷贝出来,由于应用程序无 法得到自动解密服务而无法打开文件,从而达到保 护文件内容的目的。
交流平台是基于maven3.5.4 + myeclipse13 + mysql5.5 + ssm + RBAC(权限控制)+百度图片识别(用户写文章时添加敏感图片自动过滤掉)+ layui的简洁交流平台,本项目特别适合新学习ssm的新手,也算为代码界所做的...
- **自动申请友情链接**:在线申请友情链接,无需站长手动配置,只需申请方添加完站长的连接后自行申请即可 - **百度推送**:支持百度推送功能,加速百度搜索引擎收录博文 - **评论系统**:自研的评论系统,支持显示...
轻便、简易、通俗、易懂、免费、轻松的PHP框架,只需要鼠标点点就可完成数据的增、删、改、减,内置的用户组管理、权限管理实现简单实用的RBAC。 无须模板减少学习成本、提高运行效率、方便调试,不用另建模板...
轻便、简易、通俗、易懂、免费、轻松的PHP框架,只需要鼠标点点就可完成数据的增、删、改、减,内置的用户组管理、权限管理实现简单实用的RBAC。 无须模板减少学习成本、提高运行效率、方便调试,不用另建模板文件...
1. 竞赛信息管理功能,具有相应权限的用户可以向系统中添加竞赛信息; 2. 成绩录入功能,具有相应权限的用户可以查看或修改参赛记录信息,可修改录入系统中的成绩信息。 3. 用户管理功能:主要包括对学生和教师信息...
AnyphpMvc是轻便、简易、通俗、易懂、免费、轻松的PHP框架,只需要鼠标点点就可完成数据的增、删、改、减,内置的用户组管理、权限管理实现简单实用的RBAC。 无须模板减少学习成本、提高运行效率、方便调试,不用另...
4. **权限控制:** 系统提供了基于角色的访问控制(RBAC)功能,可以灵活地为不同角色的用户分配权限。同时,系统还支持数据权限控制,确保用户只能访问其权限范围内的数据。 5. **数据统计:** 系统提供了借阅统计...
1 实现权限节点的自动添加 2 实现控制器的代码生成 2010-10-03 新增代码高亮插件。 1 修复权限控制,判断登录的几个BUG 2 强化开发助手,可以自动生成控制器,自动智能生成权限节点。 2010-10-05 增强开发助手,...
MissionKontrol是一个管理面板,允许用户对一个或多个数据库中的数据进行CRUD。 该应用程序具有自己的数据库,用于存储配置和注释。 您连接到的数据库将直接更新。 单独的改善了写入/更新/删除验证。 我们正在考虑...
4. 权限管理:采用角色访问控制(RBAC)机制,实现对用户权限的细粒度管理,确保数据安全性。 5. 数据备份与恢复:定期自动备份数据库,确保数据安全;在必要时能够迅速恢复数据,减少损失。 本系统具有良好的可...
Laravel5-Bootstrap3-Starter-Site ... 可扩展(通过新模块添加到核心) 易于编码(没有多余的bs,没有难以使用的javascript或Dependecys) 安装 叉 克隆 作曲家更新 PHP的工匠供应商:发布 作曲家转储-自动加载 ...
角色的功能权限控制方式为基于RBAC规范的Shiro,角色数据范围控制是根据用户的所属机构、数据的创建者(用户ID)实现。项目支持前端菜单动态路由。前后端交互使用JWT验证权限,使用Redis调用lua脚本CAS的方式,并且在...
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...
- 支持动态权限修改,采用RBAC模型,前端菜单和后台权限实时更新。 - 后台管理支持修改背景图片,博客配置等信息,操作简单,支持上传相册。 - 代码支持多种搜索模式(Elasticsearch或MYSQL),支持多种上传模式...
轻便、简易、通俗、易懂、免费、轻松的PHP框架,只需要鼠标点点就可完成数据的增、删、改、减,内置的用户组管理、权限管理实现简单实用的RBAC。 无须模板减少学习成本、提高运行效率、方便调试,不用另建模板文件...
5. 系统权限管理:系统采用角色访问控制(RBAC)模式,支持多种用户角色,如管理员、教师、学生等。不同角色具有不同的权限和功能,确保数据安全和隐私保护。 6. 数据备份与恢复:系统提供了数据备份和恢复功能,...