summaryrefslogtreecommitdiff
path: root/indra/newview/llagentaccess.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llagentaccess.h')
-rw-r--r--indra/newview/llagentaccess.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/indra/newview/llagentaccess.h b/indra/newview/llagentaccess.h
new file mode 100644
index 0000000000..dec0d76cc9
--- /dev/null
+++ b/indra/newview/llagentaccess.h
@@ -0,0 +1,69 @@
+/**
+ * @file llagentaccess.h
+ * @brief LLAgentAccess class implementation - manages maturity and godmode info
+ *
+ * $LicenseInfo:firstyear=2001&license=viewergpl$
+ * Copyright (c) 2001-2009, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLAGENTACCESS_H
+#define LL_LLAGENTACCESS_H
+
+#include "stdtypes.h"
+
+// forward declaration so that we don't have to include the whole class
+class LLControlGroupReader;
+
+class LLAgentAccess
+{
+public:
+ LLAgentAccess(LLControlGroupReader& savedSettings);
+
+ bool getAdminOverride() const;
+ void setAdminOverride(bool b);
+
+ void setGodLevel(U8 god_level);
+ bool isGodlike() const;
+ U8 getGodLevel() const;
+
+
+ // rather than just expose the preference setting, we're going to actually
+ // expose what the client code cares about -- what the user should see
+ // based on a combination of the is* and prefers* flags, combined with God bit.
+ bool wantsPGOnly() const;
+ bool canAccessMature() const;
+ bool canAccessAdult() const;
+ bool prefersPG() const;
+ bool prefersMature() const;
+ bool prefersAdult() const;
+ bool isTeen() const;
+ bool isMature() const;
+ bool isAdult() const;
+
+ void setTeen(bool teen);
+ void setMaturity(char text);
+
+ static int convertTextToMaturity(char text);
+
+ void setTransition(); // sets the transition bit, which defaults to false
+ bool isInTransition() const;
+
+private:
+ U8 mAccess; // SIM_ACCESS_MATURE etc
+ U8 mGodLevel;
+ bool mAdminOverride;
+
+ // this should be deleted after the 60-day AO transition.
+ // It should be safe to remove it in Viewer 2009
+ // It's set by a special short-term flag in login.cgi
+ // called ao_transition. When that's gone, this can go, along with
+ // all of the code that depends on it.
+ bool mAOTransition;
+
+ // we want this to be const but the getters for it aren't, so we're
+ // overriding it for now
+ /* const */ LLControlGroupReader& mSavedSettings;
+};
+
+#endif // LL_LLAGENTACCESS_H