/* * (non-Javadoc) * * @see cc.kune.core.server.manager.GroupManager#update(java.lang.Long, * cc.kune.core.shared.dto.GroupDTO) */ @Override public Group update(final Long groupId, final GroupDTO groupDTO) { final Group group = find(groupId); final String shortName = groupDTO.getShortName(); final String longName = groupDTO.getLongName(); if (!longName.equals(group.getLongName())) { checkIfLongNameAreInUse(longName); group.setLongName(longName); } if (!shortName.equals(group.getShortName())) { checkIfShortNameAreInUse(shortName); final String oldDir = kuneProperties.get(KuneProperties.UPLOAD_LOCATION) + FileUtils.groupToDir(group.getShortName()); final String newDir = kuneProperties.get(KuneProperties.UPLOAD_LOCATION) + FileUtils.groupToDir(shortName); if (fileManager.exists(oldDir)) { if (fileManager.exists(newDir)) { throw new DefaultException("Destination group directory exists"); } fileManager.mv(oldDir, newDir); } group.setShortName(shortName); } group.setGroupType(groupDTO.getGroupType()); setAdmissionType(group); final boolean isClosed = group.getGroupType().equals(GroupType.CLOSED); setSocialNetwork(group, getDefGroupMode(isClosed), getDefSNVisibility(isClosed)); persist(group); snCache.expire(group); return group; }
/** * Instantiates a new notification sender default. * * @param mailService the mail service * @param waveService the wave service * @param xmppManager the xmpp manager * @param i18n the i18n * @param usersOnline the users online * @param kuneProperties the kune properties * @throws IOException Signals that an I/O exception has occurred. */ @Inject public NotificationSenderDefault( final MailService mailService, final KuneWaveService waveService, final XmppManager xmppManager, final I18nTranslationServiceMultiLang i18n, final UsersOnline usersOnline, final KuneProperties kuneProperties) throws IOException { this.mailService = mailService; this.waveService = waveService; this.xmppManager = xmppManager; this.i18n = i18n; this.usersOnline = usersOnline; emailTemplate = FileUtils.readFileToString( new File(kuneProperties.get(KuneProperties.SITE_EMAIL_TEMPLATE))); Preconditions.checkNotNull(emailTemplate); Preconditions.checkArgument(TextUtils.notEmpty(emailTemplate)); siteName = kuneProperties.get(KuneProperties.SITE_NAME); }
/* * (non-Javadoc) * * @see * cc.kune.core.server.manager.GroupManager#createUserGroup(cc.kune.domain * .User, boolean) */ @Override public Group createUserGroup(final User user, final boolean wantPersonalHomepage) throws GroupShortNameInUseException, EmailAddressInUseException { final String defaultSiteWorkspaceTheme = kuneProperties.get(KuneProperties.WS_THEMES_DEF); final License licenseDef = licenseManager.getDefLicense(); final Group userGroup = new Group(user.getShortName(), user.getName(), licenseDef, GroupType.PERSONAL); User userSameEmail = null; try { userSameEmail = userFinder.findByEmail(user.getEmail()); } catch (final NoResultException e) { // Ok, no more with this email } if (userSameEmail != null) { throw new EmailAddressInUseException(); } userGroup.setAdmissionType(AdmissionType.Closed); userGroup.setWorkspaceTheme(defaultSiteWorkspaceTheme); userGroup.setDefaultContent(null); user.setUserGroup(userGroup); initSocialNetwork(userGroup, userGroup, GroupListMode.EVERYONE, SocialNetworkVisibility.anyone); final String title = i18n.t("[%s] Bio", user.getName()); final String body = i18n.t("This is [%s]'s bio, currently empty", user.getName()); try { initGroup( user, userGroup, wantPersonalHomepage ? serverToolRegistry.getToolsRegisEnabledForUsers() : ServerToolRegistry.emptyToolList, title, body); super.persist(user, User.class); } catch (final PersistenceException e) { if (e.getCause() instanceof ConstraintViolationException) { throw new GroupShortNameInUseException(); } throw e; } return userGroup; }
/* * (non-Javadoc) * * @see * cc.kune.core.server.manager.GroupManager#createGroup(cc.kune.domain.Group, * cc.kune.domain.User, java.lang.String) */ @Override public Group createGroup(final Group group, final User user, final String publicDescrip) throws GroupShortNameInUseException, GroupLongNameInUseException, UserMustBeLoggedException { checkIfShortNameAreInUse(group.getShortName()); checkIfLongNameAreInUse(group.getLongName()); final String defaultSiteWorkspaceTheme = kuneProperties.get(KuneProperties.WS_THEMES_DEF); if (User.isKnownUser(user)) { setAdmissionType(group); final String licName = group.getDefaultLicense().getShortName(); final License license = licenseFinder.findByShortName(licName); group.setDefaultLicense(license); group.setWorkspaceTheme(defaultSiteWorkspaceTheme); final boolean isClosed = group.getGroupType().equals(GroupType.CLOSED); initSocialNetwork( group, user.getUserGroup(), getDefGroupMode(isClosed), getDefSNVisibility(isClosed)); final String title = i18n.t("About [%s]", group.getLongName()); initGroup( user, group, serverToolRegistry.getToolsRegisEnabledForGroups(), title, publicDescrip); snCache.expire(user.getUserGroup()); return group; } else { throw new UserMustBeLoggedException(); } }