Example #1
0
 private User updateAdmin(User user, String password, Integer groupId, Boolean allChannels) {
   // Updater<User> updater = new Updater<User>(user);
   // updater.include("email");
   // user = (User) getDao().updateByUpdater(updater);
   user.setGroup(groupSvc.findById(groupId));
   updateDefault(user);
   userExtSvc.update(user.getExt(), user);
   // 更新角色
   Integer[] roleIds = user.getRoleIds();
   user.getRoles().clear();
   if (roleIds != null) {
     for (Integer rid : roleIds) {
       user.addToRoles(roleSvc.findById(rid));
     }
   }
   // 更新栏目权限
   Integer[] channelIds = user.getChannelIds();
   Set<Channel> channels = user.getChannels();
   // 清除
   if (channels != null) {
     for (Channel channel : channels) {
       channel = channelSvc.findById(channel.getId());
       channel.getUsers().remove(user);
     }
     user.getChannels().clear();
   }
   // 添加
   if (!allChannels && channelIds != null) {
     Channel channel;
     for (Integer cid : channelIds) {
       channel = channelSvc.findById(cid);
       channel.addToUsers(user);
     }
   }
   unifiedUserSvc.update(user.getId(), password, user.getEmail());
   return user;
 }