예제 #1
0
 public function login()
 {
     if (\Ip\Internal\Admin\Backend::userId()) {
         //user has already been logged in
         \Ip\Internal\Content\Service::setManagementMode(1);
         return new \Ip\Response\Redirect(ipHomeUrl());
     }
     // If none of the administrator exist, we create default one and log in user
     $administrators = \Ip\Internal\Administrators\Model::getAll();
     if (empty($administrators)) {
         $adminUsername = '******';
         $adminEmail = ipGetOptionLang('Config.websiteEmail');
         $adminPassword = Model::randString(8);
         $adminId = \Ip\Internal\Administrators\Service::add($adminUsername, $adminEmail, $adminPassword);
         \Ip\Internal\AdminPermissionsModel::addPermission('Super admin', $adminId);
         // Set variable to know that user is autogenerated
         ipStorage()->set('Ip', 'adminIsAutogenerated', $adminPassword);
         // Logging in new admin
         $model = Model::instance();
         if ($model->login($adminUsername, $adminPassword)) {
             \Ip\Internal\System\Model::sendUsageStatistics(array('action' => 'Install.adminIsAutogenerated'));
             $redirectUrl = ipHomeUrl();
             return new \Ip\Response\Redirect($redirectUrl);
         } else {
             \Ip\Internal\System\Model::sendUsageStatistics(array('action' => 'Install.adminIsAutogeneratedFailed'));
             // todo: handle errors
             // $errors = $model->getErrors();
         }
     }
     $content = ipView('view/login.php', array('loginForm' => FormHelper::getLoginForm()));
     ipAddJs('Ip/Internal/Admin/assets/login.js');
     $response = ipResponse();
     $response->setLayout('Ip/Internal/Admin/view/loginLayout.php');
     $response->setLayoutVariable('content', $content);
     ipAddJs('assets/languageSelect.js');
     $response->setLayoutVariable('languageSelectForm', FormHelper::getLanguageSelectForm());
     return $response;
 }
예제 #2
0
 public static function update_3()
 {
     $table = ipTable('permission');
     $sql = "\n            CREATE TABLE IF NOT EXISTS {$table} (\n              `administratorId` int(11) DEFAULT NULL,\n              `permission` varchar(255) NOT NULL DEFAULT '',\n              PRIMARY KEY (`administratorId`, `permission`)\n            ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;\n        ";
     ipDb()->execute($sql);
     $permissions = $permissions = ipDb()->selectColumn('permission', 'permission', array());
     if (empty($permissions)) {
         $administrators = \Ip\Internal\Administrators\Model::getAll();
         foreach ($administrators as $administrator) {
             \Ip\Internal\AdminPermissionsModel::addPermission('Super admin', $administrator['id']);
         }
     }
 }
예제 #3
0
파일: Model.php 프로젝트: Umz/ImpressPages
 public static function insertAdmin($user, $email, $pass)
 {
     $adminId = \Ip\Internal\Administrators\Service::add($user, $email, $pass);
     \Ip\Internal\AdminPermissionsModel::addPermission('Super admin', $adminId);
 }
예제 #4
0
 public function setAdminPermission()
 {
     ipRequest()->mustBePost();
     $post = ipRequest()->getPost();
     if (!isset($post['permission']) || !isset($post['value']) || !isset($post['adminId'])) {
         throw new \Ip\Exception('Missing required parameters');
     }
     $permission = $post['permission'];
     $value = $post['value'];
     $adminId = $post['adminId'];
     if ($value) {
         \Ip\Internal\AdminPermissionsModel::addPermission($permission, $adminId);
     } else {
         \Ip\Internal\AdminPermissionsModel::removePermission($permission, $adminId);
     }
     $data = array('status' => 'ok');
     return new \Ip\Response\Json($data);
 }