Help"; //$desc .= $this->isReadyLabel(array('YPTWallet')); return $desc.$help; } public function getName() { return "Permissions"; } public function getUUID() { return "Permissions-5ee8405eaaa16"; } public function getPluginVersion() { return "1.0"; } public function updateScript() { global $global; /* if (AVideoPlugin::compareVersion($this->getName(), "2.0") < 0) { sqlDal::executeFile($global['systemRootPath'] . 'plugin/PayPerView/install/updateV2.0.sql'); } * */ return true; } public function getEmptyDataObject() { $obj = new stdClass(); /* $obj->textSample = "text"; $obj->checkboxSample = true; $obj->numberSample = 5; $o = new stdClass(); $o->type = array(0=>__("Default"))+array(1,2,3); $o->value = 0; $obj->selectBoxSample = $o; $o = new stdClass(); $o->type = "textarea"; $o->value = ""; $obj->textareaSample = $o; */ return $obj; } public function getPluginMenu() { global $global; return ''; } static function getForm() { global $global; $disabled = ""; if (!Users_groups_permissions::isTableInstalled()) { $disabled = " disabled='disabled' "; echo "
" . " " . __("The Permissions Plugin is not installed. Please install it if you want to customize the permissions.") . "
"; } $plugins = Plugin::getAllEnabled(); foreach ($plugins as $value) { $row = Plugin::getPluginByName($value['dirName']); $p = AVideoPlugin::loadPlugin($value['dirName']); if (is_object($p) && method_exists($p, 'getPermissionsOptions')) { $array = $p->getPermissionsOptions(); foreach ($array as $value) { if (!is_object($value)) { continue; } echo "
" . "" . " " . "
"; } } } return false; } static function hasPermission($type, $pluginName, $users_id = 0) { global $hasPermission; if (empty($hasPermission)) { $hasPermission = []; } if (empty($hasPermission[$pluginName])) { $hasPermission[$pluginName] = []; } if(empty($users_id)){ if (!User::isLogged()) { return false; } if (User::isAdmin()) { return true; } if (isset($hasPermission[$pluginName][$type])) { return $hasPermission[$pluginName][$type]; } $users_id = User::getId(); } $hasPermission[$pluginName][$type] = false; $groups = UserGroups::getUserGroups($users_id); foreach ($groups as $value) { $permissions = Users_groups_permissions::getAllFromUserGorup($value['id']); if (!empty($permissions[$pluginName]) && in_array($type, $permissions[$pluginName])) { $hasPermission[$pluginName][$type] = true; return $hasPermission[$pluginName][$type]; } } return $hasPermission[$pluginName][$type]; } static function canAdminComment() { return self::hasPermission(Permissions::PERMISSION_COMMENTS, 'Permissions'); } static function canAdminVideos() { return self::hasPermission(Permissions::PERMISSION_FULLACCESSVIDEOS, 'Permissions'); } public function userCanUpload($users_id) { if(empty($users_id)){ return -1; } if(self::hasPermission(Permissions::PERMISSION_CAN_UPLOAD_VIDEOS, 'Permissions', $users_id)){ return 1;// Yes } return 0;// I dont know } public function userCanLivestream($users_id) { if(empty($users_id)){ return -1; // NO HE CANT } if(self::hasPermission(Permissions::PERMISSION_CAN_LIVESTREAM, 'Permissions', $users_id)){ return 1;// Yes } return 0;// I dont know } static function canModerateVideos() { return self::hasPermission(Permissions::PERMISSION_INACTIVATEVIDEOS, 'Permissions') || self::canAdminVideos(); } static function canAdminUsers() { return self::hasPermission(Permissions::PERMISSION_USERS, 'Permissions'); } static function canAdminUserGroups() { return self::hasPermission(Permissions::PERMISSION_USERGROUPS, 'Permissions'); } static function canClearCache() { return self::hasPermission(Permissions::PERMISSION_CACHE, 'Permissions'); } static function canGenerateSiteMap() { return self::hasPermission(Permissions::PERMISSION_SITEMAP, 'Permissions'); } static function canSeeLogs() { return self::hasPermission(Permissions::PERMISSION_LOG, 'Permissions'); } /** const COMMENTS = 1; const FULLACCESSVIDEOS = 10; const INACTIVATEVIDEOS = 11; const USERS = 20; const USERGROUPS = 30; const CACHE = 40; const SITEMAP = 50; const LOG = 60; */ function getPermissionsOptions() { $permissions = []; // Video permissions $permissions[] = new PluginPermissionOption(Permissions::PERMISSION_FULLACCESSVIDEOS, __('Videos Admin'), __('Just like admin, this user will have permission to edit and delete videos from any user, including videos from admin'), 'Permissions'); $permissions[] = new PluginPermissionOption(Permissions::PERMISSION_INACTIVATEVIDEOS, __('Videos Moderator'), __('This is a level below the (Videos Admin), this type of user can change the video publicity (Active, Inactive, Unlisted)'), 'Permissions'); $permissions[] = new PluginPermissionOption(Permissions::PERMISSION_CAN_UPLOAD_VIDEOS, __('Upload Videos'), __('Users with this option will be able to upload videos'), 'Permissions'); // Comments permissions $permissions[] = new PluginPermissionOption(Permissions::PERMISSION_COMMENTS, __('Comments Admin'), __('Users with this option will be able to edit and delete comments in any video'), 'Permissions'); // User and User Group permissions $permissions[] = new PluginPermissionOption(Permissions::PERMISSION_USERS, __('Users Admin'), __('This type of user can edit users, can add or remove users into user groups, but cannot make them admins'), 'Permissions'); $permissions[] = new PluginPermissionOption(Permissions::PERMISSION_USERGROUPS, __('Users Groups Admin'), __('Can edit and delete user groups'), 'Permissions'); // Livestream permission $permissions[] = new PluginPermissionOption(Permissions::PERMISSION_CAN_LIVESTREAM, __('Live Stream'), __('Users with this option will be able to live stream'), 'Permissions'); // Cache, Log, and Sitemap permissions $permissions[] = new PluginPermissionOption(Permissions::PERMISSION_CACHE, __('Cache Manager'), __('This will give the option to clear cache (Site and first page)'), 'Permissions'); $permissions[] = new PluginPermissionOption(Permissions::PERMISSION_SITEMAP, __('Sitemap'), __('This will give the option to generate a SiteMap'), 'Permissions'); $permissions[] = new PluginPermissionOption(Permissions::PERMISSION_LOG, __('Log'), __('This will give the option to see the log file menu'), 'Permissions'); return $permissions; } static function getPluginPermissions($plugins_id) { global $getPluginPermissions; if(empty($getPluginPermissions)){ $getPluginPermissions = []; } if(isset($getPluginPermissions[$plugins_id])){ return $getPluginPermissions[$plugins_id]; } $plugin = new Plugin($plugins_id); if(empty($plugin)){ $getPluginPermissions[$plugins_id] = []; return $getPluginPermissions[$plugins_id]; } $p = AVideoPlugin::loadPlugin($plugin->getName()); if(empty($p)){ $getPluginPermissions[$plugins_id] = []; return $getPluginPermissions[$plugins_id]; } $options = $p->getPermissionsOptions(); if(empty($options)){ $getPluginPermissions[$plugins_id] = []; return $getPluginPermissions[$plugins_id]; } $permissions = []; foreach ($options as $key => $value) { $obj = new stdClass(); $obj->name = $options[$key]->getName(); $obj->type = $options[$key]->getType(); $obj->description = $options[$key]->getDescription(); $obj->className = $options[$key]->getClassName(); $obj->groups = Users_groups_permissions::getAllFromPluginAndType($plugins_id, $value->getType()); $permissions[] = $obj; } $getPluginPermissions[$plugins_id] = $permissions; return $getPluginPermissions[$plugins_id]; } static function getPluginPermissionsFromName($pluginName) { $row = Plugin::getPluginByName($pluginName); if(empty($row['id'])){ return array(); } $plugins_id = $row['id']; return self::getPluginPermissions($plugins_id); } static function setPermission($users_groups_id, $plugins_id, $type, $isEnabled) { //var_dump($users_groups_id, $plugins_id, $type, $isEnabled, $_POST); $row = Users_groups_permissions::getFromUserGroupAndPluginAndType($users_groups_id, $plugins_id, $type, false); //var_dump($users_groups_id, $plugins_id, $type, $isEnabled, $row); if(!empty($row['id'])){ $ugp = new Users_groups_permissions($row['id']); }else{ $ugp = new Users_groups_permissions(); $ugp->setusers_groups_id($users_groups_id); $ugp->setPlugins_id($plugins_id); $ugp->setType($type); } $ugp->setStatus($isEnabled?'a':'i'); return $ugp->save(); } }