package com.atlassian.labs.speakeasy.model;
import com.cenqua.fisheye.config1.Admins;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import javax.xml.bind.annotation.*;
import java.util.Arrays;
import java.util.Set;
import static com.google.common.collect.Iterables.concat;
import static com.google.common.collect.Sets.newHashSet;
/**
*
*/
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Settings
{
public static final ImmutableSet<String> ALL_USER_GROUPS = ImmutableSet.of("confluence-users", "jira-users", "users",
"bamboo-users", "system_administrators", "adminstrators");
private Set<String> authorGroups = newHashSet();
private Set<String> accessGroups = newHashSet();
private Set<Permission> permissions;
public Settings()
{
if (Boolean.getBoolean("atlassian.dev.mode"))
{
permissions = Permission.ALL;
authorGroups = ALL_USER_GROUPS;
accessGroups = ALL_USER_GROUPS;
}
else
{
permissions = newHashSet();
}
}
public Set<String> getAuthorGroups()
{
return authorGroups;
}
public void setAuthorGroups(Set<String> authorGroups)
{
this.authorGroups = authorGroups;
}
public Set<String> getAccessGroups()
{
return accessGroups;
}
public void setAccessGroups(Set<String> accessGroups)
{
this.accessGroups = accessGroups;
}
public boolean isRestrictAccessToGroups()
{
return true;
}
public void setRestrictAccessToGroups(boolean restrictAccessToGroups)
{
}
public boolean isRestrictAuthorsToGroups()
{
return true;
}
public void setRestrictAuthorsToGroups(boolean restrictAuthorsToGroups)
{
}
public Set<Permission> getPermissions()
{
return permissions;
}
public void setPermissions(Set<Permission> permissions)
{
this.permissions = permissions;
}
// These next two properties are here for backwards compatibility with 1.0
public boolean isAllowAdmins()
{
return false;
}
public void setAllowAdmins(boolean allowAdmins)
{
// deprecated
}
public boolean isNoAdmins()
{
return false;
}
public void setNoAdmins(boolean val)
{
// deprecated
}
public boolean allowsPermission(String perm)
{
Permission p = Permission.valueOf(perm);
return p != null && permissions.contains(p);
}
}