diff options
author | Michael Tänzer <neo@nhng.de> | 2011-06-30 21:48:35 +0200 |
---|---|---|
committer | Michael Tänzer <neo@nhng.de> | 2011-06-30 21:48:35 +0200 |
commit | 5f8e018db52a1489d67f35a4806c78b6cb131abe (patch) | |
tree | 305c05d9593444ecb6ad768815e5ee99a607a25d /manager/application/models | |
parent | 2ed178bdc3ff9e415634be8793c194d35fa66c70 (diff) | |
download | cacert-mgr-5f8e018db52a1489d67f35a4806c78b6cb131abe.tar.gz cacert-mgr-5f8e018db52a1489d67f35a4806c78b6cb131abe.tar.xz cacert-mgr-5f8e018db52a1489d67f35a4806c78b6cb131abe.zip |
Move flagsAction() functionality into the user model
Signed-off-by: Michael Tänzer <neo@nhng.de>
Diffstat (limited to 'manager/application/models')
-rw-r--r-- | manager/application/models/User.php | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/manager/application/models/User.php b/manager/application/models/User.php index 27f8a44..b8285a4 100644 --- a/manager/application/models/User.php +++ b/manager/application/models/User.php @@ -406,4 +406,70 @@ class Default_Model_User { $this->fixAssurerFlag(); } + + /** + * Get the flags that are set + * + * @return array (string => boolean) + */ + public function getFlags() { + $flags = $this->db->select()->from('users', self::flags()) + ->where('`id` = ?', $this->id)->query()->fetch(); + + foreach ($flags as $key => $value) { + if ($value === '0') { + $flags[$key] = false; + } else { + $flags[$key] = true; + } + } + + return $flags; + } + + /** + * Set the flags - to know which flags exist you might want to call + * getFlags() first + * + * @param $flags array (string => boolean) + * Currently unknown flags are silently ignored + */ + public function setFlags(array $flags) { + $newflags = array(); + + // filter values + foreach (self::flags() as $flag) { + if (isset($flags[$flag])) { + if ($flags[$flag]) { + $newflags[$flag] = 1; + } else { + $newflags[$flag] = 0; + } + } + } + + $where = $this->db->quoteInto('`id` = ?', $this->id, Zend_Db::INT_TYPE); + $this->db->update('users', $newflags, $where); + } + + /** + * The flags from the `users` table that might be set + */ + private static function flags() { + return array( + 'verified', + 'listme', + 'codesign', + '1024bit', + 'admin', + 'orgadmin', + 'ttpadmin', + 'adadmin', + 'board', + 'tverify', + 'locadmin', + 'locked', + 'assurer', + 'assurer_blocked'); + } }
\ No newline at end of file |