users->find_all(); } /** * Specify our rules here so that we have access to the instance of this model. */ public function validate($array=null) { // validate() is recursive, only modify the rules on the outermost call. if (!$array) { $this->rules = array( "name" => array("rules" => array("required", "length[4,255]"), "callbacks" => array(array($this, "valid_name")))); } parent::validate($array); } public function save() { if (!$this->loaded()) { // New group parent::save(); module::event("group_created", $this); } else { // Updated group $original = clone $this->original(); parent::save(); module::event("group_updated", $original, $this); } return $this; } /** * Validate the user name. Make sure there are no conflicts. */ public function valid_name(Validation $v, $field) { if (db::build()->from("groups") ->where("name", "=", $this->name) ->where("id", "<>", $this->id) ->count_records() == 1) { $v->add_error("name", "conflict"); } } }