public static function updatePassword($password, $_model = null)
 {
     $modeler = static::$modeler;
     $_model == null ? forward_static_call_array(array($modeler, 'model'), array()) : forward_static_call_array(array($modeler, 'model'), array($_model));
     $modeler::model()->updateField(Hashes::generateHash($password), 'password');
     return $modeler::model();
 }
 public static function end()
 {
     $modeler = static::$modeler;
     $store = static::$store;
     $modeler::model()->updateField(Hashes::uniqueHash(), 'session_id');
     /*$modeler::model()->updateField(time() - 86400,'session_start');*/
     $store::clear();
     $modeler::model(null);
 }
 public static function newPackage($owner = 0)
 {
     $modeler = static::$modeler;
     $modeler::model()->create();
     $modeler::exists($modeler::model()->id, 'id');
     $modeler::model()->updateField(substr(Hashes::uniqueHash('package', 'SQDEPAC'), 0, 15), 'name');
     $modeler::model()->updateField($owner, 'owner_id');
     return $modeler::model();
 }
 public static function newGuest()
 {
     $modeler = static::$modeler;
     $modeler::model()->create(substr(Hashes::uniqueHash(), 0, 15), Hashes::uniqueHash(), substr(Hashes::uniqueHash(), 0, 15));
     $modeler::exists($modeler::model()->id, 'id');
     $modeler::model()->updateField('[]', 'sequode_favorites');
     $modeler::model()->updateField('101', 'role_id');
     $modeler::model()->updateField('5', 'allowed_sequode_count');
     $modeler::model()->updateField('1', 'active');
     return $modeler::model();
 }
 public static function signup($email, $password)
 {
     $modeler = static::$modeler;
     $modeler::model()->create(Hashes::generateHash($email), Hashes::generateHash($password), $email);
     $modeler::model()->updateField('1', 'active');
     $modeler::model()->updateField('1', 'verified');
     $modeler::model()->updateField('[]', 'sequode_favorites');
     $modeler::model()->updateField('100', 'role_id');
     $modeler::model()->updateField('33', 'allowed_sequode_count');
     $modeler::exists($modeler::model()->id, 'id');
     return $modeler::model();
 }
 public static function create($ip_address = null)
 {
     $modeler = static::$modeler;
     $ip_address = $ip_address == null ? explode(',', !empty($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"])[0] : $ip_address;
     $modeler::model()->create();
     $modeler::model()->exists($modeler::model()->id, 'id');
     $modeler::model()->updateField(Hashes::uniqueHash(), 'session_id');
     $modeler::model()->updateField(serialize(array()), 'session_data');
     $modeler::model()->updateField(time(), 'session_start');
     $modeler::model()->updateField($ip_address, 'ip_address');
     $modeler::model()->updateField('anon', 'name');
     return $modeler::model();
 }
 public static function newSequence($owner_id = 0)
 {
     $modeler = static::$modeler;
     $kit = static::$kit;
     $modeler::model()->create(substr(Hashes::uniqueHash(), 0, 15), '', 1, 1);
     $modeler::exists($modeler::model()->id, 'id');
     $modeler::model()->updateField(substr(Hashes::uniqueHash($modeler::model()->id . $modeler::model()->name), 0, 15), 'name');
     $modeler::model()->updateField(1, 'sequence_type');
     $modeler::model()->updateField('[]', 'sequence');
     $modeler::model()->updateField('[]', 'grid_areas');
     $modeler::model()->updateField(json_encode($kit::makeDefaultProcessObject('input')), 'input_object');
     $modeler::model()->updateField(json_encode($kit::makeDefaultSequenceObjectMap('input', $modeler::model())), 'input_object_map');
     $modeler::model()->updateField(json_encode($kit::makeDefaultProcessInstanceObject($modeler::model())), 'process_instance_object');
     $modeler::model()->updateField('{}', 'input_form_object');
     $modeler::model()->updateField(json_encode($kit::makeDefaultProcessObject('output')), 'output_object');
     $modeler::model()->updateField(json_encode($kit::makeDefaultSequenceObjectMap('output', $modeler::model())), 'output_object_map');
     $property_object_detail = (object) null;
     $member = 'Run_Process';
     $property_object_detail->{$member} = $kit::makeDefaultProcessObjectDetailMember($member);
     $modeler::model()->updateField(json_encode($property_object_detail), 'property_object_detail');
     $modeler::model()->updateField(json_encode($kit::makeDefaultProcessObject('property')), 'property_object');
     $modeler::model()->updateField(json_encode($kit::makeDefaultSequenceObjectMap('property', $modeler::model())), 'property_object_map');
     $modeler::model()->updateField('{}', 'property_form_object');
     $modeler::model()->updateField('{}', 'input_object_detail');
     /*
     $output_object_detail = (object) null;
     $member = 'Success';
     $output_object_detail->$member = $kit::makeDefaultProcessObjectDetailMember($member);
     $modeler::model()->updateField(json_encode($output_object_detail),'output_object_detail');
     */
     $modeler::model()->updateField('{}', 'output_object_detail');
     $modeler::model()->updateField($owner_id, 'owner_id');
     $modeler::model()->updateField(0, 'safe');
     $modeler::model()->updateField(0, 'level');
     $modeler::model()->updateField('{"display_name":"' . $modeler::model()->name . '"}', 'detail');
     self::maintenance();
     return $modeler::model();
 }
 public static function updateEmail($json = null)
 {
     $module = static::$module;
     $dialogs = $module::model()->components->dialogs;
     $dialog = forward_static_call_array(array($dialogs, __FUNCTION__), array());
     if (!SessionStore::is($dialog->session_store_key)) {
         return;
     }
     $xhr_cards = $module::model()->xhr->cards;
     $operations = $module::model()->operations;
     $modeler = $module::model()->modeler;
     if ($json != null) {
         $input = json_decode(rawurldecode($json));
         if (isset($input->reset)) {
             SessionStore::set($dialog->session_store_key, $dialog->session_store_setup);
             return forward_static_call_array(array($xhr_cards, __FUNCTION__), array());
         }
     }
     $dialog_store = SessionStore::get($dialog->session_store_key);
     $dialog_step = $dialog->steps[$dialog_store->step];
     if (isset($dialog_step->prep) && $dialog_step->prep == true) {
         if (isset($dialog_step->required_members)) {
             foreach ($dialog_step->required_members as $m) {
                 if (!isset($input->{$m})) {
                     return;
                 }
             }
         }
         switch ($dialog_store->step) {
             case 0:
                 if (!$modeler::exists(rawurldecode($input->email), 'email') && \Sequode\Application\Modules\Account\Authority::isAnEmailAddress(rawurldecode($input->email))) {
                     $dialog_store->prep->new_email = rawurldecode($input->email);
                     $dialog_store->prep->token = Hashes::generateHash();
                     SessionStore::set($dialog->session_store_key, $dialog_store);
                     $hooks = array("searchStrs" => array('#TOKEN#'), "subjectStrs" => array($dialog_store->prep->token));
                     Email::systemSend($dialog_store->prep->new_email, 'Verify your email address with sequode.com', EmailContent::render('activation.txt', $hooks));
                 } else {
                     $error = true;
                 }
                 break;
             case 1:
                 if ($dialog_store->prep->token == rawurldecode($input->token)) {
                     $_a = array($dialog_store->prep->new_email);
                 } else {
                     $error = true;
                 }
                 break;
         }
     }
     if (isset($dialog_step->operation) && is_array($_a)) {
         if (!forward_static_call_array(array($operations, $dialog_step->operation), $_a)) {
             $error = true;
         }
     }
     if (!isset($error)) {
         $dialog_store->step++;
         SessionStore::set($dialog->session_store_key, $dialog_store);
         return forward_static_call_array(array($xhr_cards, __FUNCTION__), array());
     }
 }
 public static function isPassword($password, $_model = null)
 {
     $modeler = static::$modeler;
     if ($_model == null) {
         $_model = $modeler::model();
     }
     return Hashes::generateHash($password, $_model->password) == $_model->password ? true : false;
 }