本文整理汇总了PHP中is_admin_for_module函数的典型用法代码示例。如果您正苦于以下问题:PHP is_admin_for_module函数的具体用法?PHP is_admin_for_module怎么用?PHP is_admin_for_module使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了is_admin_for_module函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: preDisplay
/**
* @see SugarView::preDisplay()
*/
public function preDisplay()
{
global $current_user, $mod_strings;
if (!is_admin($current_user) && !is_admin_for_module($GLOBALS['current_user'], 'Campaigns')) {
sugar_die($mod_strings['LBL_UNAUTH_ACCESS']);
}
}
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:10,代码来源:view.campaignconfig.php
示例2: display
function display()
{
global $current_user, $app_strings, $mod_strings;
$admin = is_admin($current_user) || is_admin_for_module($current_user, 'Reports');
foreach ($this->data['data'] as $i => $rowData) {
if (isset($this->data['data'][$i]['IS_PUBLISHED'])) {
$this->data['data'][$i]['IS_PUBLISHED'] = "<input type='checkbox' ";
if ($rowData['IS_PUBLISHED'] == 'yes') {
$this->data['data'][$i]['IS_PUBLISHED'] .= ' checked ';
}
if ($admin) {
$this->data['data'][$i]['IS_PUBLISHED'] .= " onclick='location.href=\"index.php?module=Reports&action=index&publish=no&publish_report_id={$rowData['ID']}\";'>";
} else {
$this->data['data'][$i]['IS_PUBLISHED'] .= ' disabled=true>';
}
}
if (isset($this->data['data'][$i]['IS_SCHEDULED'])) {
$this->data['data'][$i]['IS_SCHEDULED'] = "<a href='#' onclick=\"schedulePOPUP('{$rowData['ID']}'); return false\" class='listViewTdToolsS1'>{$rowData['IS_SCHEDULED_IMG']} {$rowData['IS_SCHEDULED']}</a>";
}
if (!isset($this->data['data'][$i]['IS_EDIT'])) {
if ($this->data['data'][$i]['ASSIGNED_USER_ID'] != $current_user->id || !ACLController::checkAccess('Reports', 'edit', $this->data['data'][$i]['ASSIGNED_USER_ID'])) {
$this->data['data'][$i]['IS_EDIT'] = " ";
} else {
$this->data['data'][$i]['IS_EDIT'] = "<a title=\"{$app_strings['LBL_EDIT_BUTTON']}\" href=\"index.php?action=ReportsWizard&module=Reports&page=report&record={$rowData['ID']}\">" . SugarThemeRegistry::current()->getImage("edit_inline", '', null, null, ".gif", $mod_strings['LBL_EDIT']) . "</a>";
}
}
}
$this->ss->assign('act', 'ReportsWizard');
return parent::display();
}
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:30,代码来源:ListViewReports.php
示例3: process
public function process()
{
if (!is_admin($GLOBALS['current_user']) && !is_admin_for_module($GLOBALS['current_user'], 'Contracts')) {
$this->hasAccess = false;
}
parent::process();
}
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:7,代码来源:controller.php
示例4: preDisplay
/**
* @see SugarView::preDisplay()
*/
public function preDisplay()
{
global $current_user;
if (!is_admin($current_user) && !is_admin_for_module($GLOBALS['current_user'], 'Emails') && !is_admin_for_module($GLOBALS['current_user'], 'Campaigns')) {
sugar_die("Unauthorized access to administration.");
}
}
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:10,代码来源:view.config.php
示例5: preDisplay
public function preDisplay()
{
if (!is_admin($GLOBALS['current_user']) && !is_admin_for_module($GLOBALS['current_user'], 'Users')) {
sugar_die("Unauthorized access to administration.");
}
$this->lv = new ListViewSmarty();
$this->lv->delete = false;
}
开发者ID:aldridged,项目名称:gtg-sugar,代码行数:8,代码来源:view.list.php
示例6: preDisplay
public function preDisplay()
{
global $current_user;
if (!is_admin($current_user) && !is_admin_for_module($current_user, 'Forecasts')) {
sugar_die("Unauthorized access to administration.");
}
$this->lv = new ListViewSmarty();
$this->lv->showMassupdateFields = false;
}
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:9,代码来源:view.list.php
示例7: preDisplay
public function preDisplay()
{
if (!is_admin($GLOBALS['current_user']) && !is_admin_for_module($GLOBALS['current_user'], 'Users')) {
sugar_die('No Access');
}
$this->lv = new ListViewSmarty();
$this->lv->export = false;
$this->lv->showMassupdateFields = false;
}
开发者ID:sysraj86,项目名称:carnivalcrm,代码行数:9,代码来源:view.list.php
示例8: preDisplay
/**
* @see SugarView::preDisplay()
*/
public function preDisplay()
{
global $current_user;
if (!is_admin($current_user) && !is_admin_for_module($current_user, 'Campaigns')) {
sugar_die($GLOBALS['app_strings']['ERR_NOT_ADMIN']);
}
$this->lv = new ListViewSmarty();
$this->lv->export = false;
$this->lv->quickViewLinks = false;
}
开发者ID:aldridged,项目名称:gtg-sugar,代码行数:13,代码来源:view.list.php
示例9: preDisplay
public function preDisplay()
{
if (!is_admin($GLOBALS['current_user']) && !is_admin_for_module($GLOBALS['current_user'], 'Users')) {
//instead of just dying here with unauthorized access will send the user back to his/her settings
SugarApplication::redirect('index.php?module=Users&action=DetailView&record=' . $GLOBALS['current_user']->id);
}
$this->lv = new ListViewSmarty();
$this->lv->delete = false;
$this->lv->email = false;
}
开发者ID:sysraj86,项目名称:carnivalcrm,代码行数:10,代码来源:view.list.php
示例10: action_delete
protected function action_delete()
{
if ($_REQUEST['record'] != $GLOBALS['current_user']->id && (is_admin($GLOBALS['current_user']) || is_admin_for_module($GLOBALS['current_user'], 'Users'))) {
$u = new User();
$u->retrieve($_REQUEST['record']);
$u->deleted = 1;
$u->status = 'Inactive';
$u->employee_status = 'Terminated';
$u->save();
$GLOBALS['log']->info("User id: {$GLOBALS['current_user']->id} deleted user record: {$_REQUEST['record']}");
SugarApplication::redirect("index.php?module=Employees&action=index");
} else {
sugar_die("Unauthorized access to administration.");
}
}
开发者ID:aldridged,项目名称:gtg-sugar,代码行数:15,代码来源:controller.php
示例11: listViewProcess
function listViewProcess()
{
$this->processSearchForm();
$this->lv->searchColumns = $this->searchForm->searchColumns;
if (!$this->headers) {
return;
}
if (empty($_REQUEST['search_form_only']) || $_REQUEST['search_form_only'] == false) {
$this->lv->ss->assign("SEARCH", true);
$tplFile = 'include/ListView/ListViewGeneric.tpl';
if (!is_admin($GLOBALS['current_user']) && !is_admin_for_module($GLOBALS['current_user'], 'Users')) {
$tplFile = 'include/ListView/ListViewNoMassUpdate.tpl';
}
$this->lv->setup($this->seed, $tplFile, $this->where, $this->params);
$savedSearchName = empty($_REQUEST['saved_search_select_name']) ? '' : ' - ' . $_REQUEST['saved_search_select_name'];
echo $this->lv->display();
}
}
开发者ID:aldridged,项目名称:gtg-sugar,代码行数:18,代码来源:view.list.php
示例12: loadImportBean
/**
* Returns the bean object of the given module
*
* @param string $module
* @return object
*/
function loadImportBean($module)
{
$focus = loadBean($module);
if ($focus) {
if (!$focus->importable) {
return false;
}
if ($module == 'Users' && !is_admin($GLOBALS['current_user']) && !is_admin_for_module($GLOBALS['current_user'], 'Users')) {
return false;
}
if ($focus->bean_implements('ACL')) {
if (!ACLController::checkAccess($focus->module_dir, 'import', true)) {
ACLController::displayNoAccess();
sugar_die('');
}
}
} else {
return false;
}
return $focus;
}
开发者ID:nerdystudmuffin,项目名称:dashlet-subpanels,代码行数:27,代码来源:Forms.php
示例13: display
function display()
{
if (is_admin($GLOBALS['current_user']) || $_REQUEST['record'] == $GLOBALS['current_user']->id) {
$this->ss->assign('DISPLAY_EDIT', true);
}
if (is_admin($GLOBALS['current_user'])) {
$this->ss->assign('DISPLAY_DUPLICATE', true);
}
$showDeleteButton = FALSE;
if ($_REQUEST['record'] != $GLOBALS['current_user']->id && (is_admin($GLOBALS['current_user']) || is_admin_for_module($GLOBALS['current_user'], 'Users'))) {
$showDeleteButton = TRUE;
if (empty($this->bean->user_name)) {
//Indicates just employee
$deleteWarning = $GLOBALS['mod_strings']['LBL_DELETE_EMPLOYEE_CONFIRM'];
} else {
$deleteWarning = $GLOBALS['mod_strings']['LBL_DELETE_USER_CONFIRM'];
}
$this->ss->assign('DELETE_WARNING', $deleteWarning);
}
$this->ss->assign('DISPLAY_DELETE', $showDeleteButton);
parent::display();
}
开发者ID:sysraj86,项目名称:carnivalcrm,代码行数:22,代码来源:view.detail.php
示例14: getModuleTitle
/**
* Return the "breadcrumbs" to display at the top of the page
*
* @param bool $show_help optional, true if we show the help links
* @return HTML string containing breadcrumb title
*/
public function getModuleTitle($show_help = true)
{
global $sugar_version, $sugar_flavor, $server_unique_key, $current_language, $action, $current_user;
$theTitle = "<div class='moduleTitle'>\n";
$module = preg_replace("/ /", "", $this->module);
$params = $this->_getModuleTitleParams();
$count = count($params);
$index = 0;
if (SugarThemeRegistry::current()->directionality == "rtl") {
$params = array_reverse($params);
}
$paramString = '';
foreach ($params as $parm) {
$index++;
$paramString .= $parm;
if ($index < $count) {
$paramString .= $this->getBreadCrumbSymbol();
}
}
if (!empty($paramString)) {
$theTitle .= "<h2> {$paramString} </h2>\n";
}
if ($show_help) {
$theTitle .= "<span class='utils'>";
if (is_admin($current_user) || is_admin_for_module($current_user, $this->module)) {
$createImageURL = SugarThemeRegistry::current()->getImageURL('create-record.gif');
$theTitle .= <<<EOHTML
<a href="index.php?module={$module}&action=EditView&return_module={$module}&return_action=DetailView" class="utilsLink">
<img src='{$createImageURL}' alt='{$GLOBALS['app_strings']['LNK_CREATE']}'></a>
<a href="index.php?module={$module}&action=EditView&return_module={$module}&return_action=DetailView" class="utilsLink">
{$GLOBALS['app_strings']['LNK_CREATE']}
</a>
EOHTML;
}
}
$theTitle .= "</span></div>\n";
return $theTitle;
}
开发者ID:delkyd,项目名称:sugarcrm_dev,代码行数:45,代码来源:view.detail.php
示例15: sugar_die
sugar_die("Unauthorized access to user administration.");
}
$focus = new User();
$focus->retrieve($_POST['record']);
// Flag to determine whether to save a new password or not.
if (empty($focus->id)) {
$newUser = true;
} else {
$newUser = false;
}
if (!$current_user->is_admin && !is_admin_for_module($GLOBALS['current_user'], 'Users') && $current_user->id != $focus->id) {
$GLOBALS['log']->fatal("SECURITY:Non-Admin " . $current_user->id . " attempted to change settings for user:" . $focus->id);
header("Location: index.php?module=Users&action=Logout");
exit;
}
if (!$current_user->is_admin && !is_admin_for_module($GLOBALS['current_user'], 'Users') && !empty($_POST['is_admin'])) {
$GLOBALS['log']->fatal("SECURITY:Non-Admin " . $current_user->id . " attempted to change is_admin settings for user:" . $focus->id);
header("Location: index.php?module=Users&action=Logout");
exit;
}
$portal = array("sugar_user_name", "last_name", "status", "portal_only");
$group = array("sugar_user_name", "last_name", "status", "is_group");
if (isset($_POST['portal_only']) && ($_POST['portal_only'] == '1' || $focus->portal_only)) {
foreach ($portal as $field) {
if (isset($_POST[$field])) {
$value = $_POST[$field];
$focus->{$field} = $value;
}
}
}
if (isset($_POST['is_group']) && ($_POST['is_group'] == '1' || $focus->is_group)) {
开发者ID:nitouser,项目名称:yaai,代码行数:31,代码来源:Save.php
示例16: change_password
/**
* Verify that the current password is correct and write the new password to the DB.
*
* @param string $user name - Must be non null and at least 1 character.
* @param string $user_password - Must be non null and at least 1 character.
* @param string $new_password - Must be non null and at least 1 character.
* @return boolean - If passwords pass verification and query succeeds, return true, else return false.
*/
function change_password($user_password, $new_password, $system_generated = '0')
{
global $mod_strings;
global $current_user;
$GLOBALS['log']->debug("Starting password change for {$this->user_name}");
if (!isset($new_password) || $new_password == "") {
$this->error_string = $mod_strings['ERR_PASSWORD_CHANGE_FAILED_1'] . $current_user['user_name'] . $mod_strings['ERR_PASSWORD_CHANGE_FAILED_2'];
return false;
}
$old_user_hash = strtolower(md5($user_password));
if (!is_admin($current_user) && !is_admin_for_module($current_user, 'Users')) {
//check old password first
$query = "SELECT user_name FROM {$this->table_name} WHERE user_hash='{$old_user_hash}' AND id='{$this->id}'";
$result = $this->db->query($query, true);
$row = $this->db->fetchByAssoc($result);
$GLOBALS['log']->debug("select old password query: {$query}");
$GLOBALS['log']->debug("return result of {$row}");
if ($row == null) {
$GLOBALS['log']->warn("Incorrect old password for " . $this->user_name . "");
$this->error_string = $mod_strings['ERR_PASSWORD_INCORRECT_OLD_1'] . $this->user_name . $mod_strings['ERR_PASSWORD_INCORRECT_OLD_2'];
return false;
}
}
$user_hash = strtolower(md5($new_password));
$this->setPreference('loginexpiration', '0');
//set new password
$now = date("Y-m-d H:i:s");
$query = "UPDATE {$this->table_name} SET user_hash='{$user_hash}', system_generated_password='{$system_generated}', pwd_last_changed='{$now}' where id='{$this->id}'";
$this->db->query($query, true, "Error setting new password for {$this->user_name}: ");
$_SESSION['hasExpiredPassword'] = '0';
return true;
}
开发者ID:aldridged,项目名称:gtg-sugar,代码行数:40,代码来源:User.php
示例17: userHasAccess
/**
* static function userHasAccess($user_id, $category, $action, $is_owner = false)
*
* @param GUID $user_id the user id who you want to check access for
* @param STRING $category the category you would like to check access for
* @param STRING $action the action of that category you would like to check access for
* @param BOOLEAN OPTIONAL $is_owner if the object is owned by the user you are checking access for
*/
function userHasAccess($user_id, $category, $action, $type = 'module', $is_owner = false)
{
global $current_user;
if (is_admin_for_module($current_user, $category) && !isset($_SESSION['ACL'][$user_id][$category][$type][$action]['aclaccess'])) {
return true;
}
//check if we don't have it set in the cache if not lets reload the cache
if (ACLAction::getUserAccessLevel($user_id, $category, 'access', $type) < ACL_ALLOW_ENABLED) {
return false;
}
if (empty($_SESSION['ACL'][$user_id][$category][$type][$action])) {
ACLAction::getUserActions($user_id, false);
}
if (!empty($_SESSION['ACL'][$user_id][$category][$type][$action])) {
return ACLAction::hasAccess($is_owner, $_SESSION['ACL'][$user_id][$category][$type][$action]['aclaccess']);
}
return false;
}
开发者ID:klr2003,项目名称:sourceread,代码行数:26,代码来源:ACLAction.php
示例18: array
* All Rights Reserved.
* Contributor(s): ______________________________________..
********************************************************************************/
global $mod_strings, $app_strings;
if (ACLController::checkAccess('Campaigns', 'edit', true)) {
$module_menu[] = array("index.php?module=Campaigns&action=WizardHome&return_module=Campaigns&return_action=index", $mod_strings['LNL_NEW_CAMPAIGN_WIZARD'], "CampaignsWizard");
}
if (ACLController::checkAccess('Campaigns', 'edit', true)) {
$module_menu[] = array("index.php?module=Campaigns&action=EditView&return_module=Campaigns&return_action=index", $mod_strings['LNK_NEW_CAMPAIGN'], "CreateCampaigns");
}
if (ACLController::checkAccess('Campaigns', 'list', true)) {
$module_menu[] = array("index.php?module=Campaigns&action=index&return_module=Campaigns&return_action=index", $mod_strings['LNK_CAMPAIGN_LIST'], "Campaigns");
}
if (ACLController::checkAccess('Campaigns', 'list', true)) {
$module_menu[] = array("index.php?module=Campaigns&action=newsletterlist&return_module=Campaigns&return_action=index", $mod_strings['LBL_NEWSLETTERS'], "Newsletters");
}
if (ACLController::checkAccess('EmailTemplates', 'edit', true)) {
$module_menu[] = array("index.php?module=EmailTemplates&action=EditView&return_module=EmailTemplates&return_action=DetailView", $mod_strings['LNK_NEW_EMAIL_TEMPLATE'], "CreateEmails", "Emails");
}
if (ACLController::checkAccess('EmailTemplates', 'list', true)) {
$module_menu[] = array("index.php?module=EmailTemplates&action=index", $mod_strings['LNK_EMAIL_TEMPLATE_LIST'], "EmailFolder", 'Emails');
}
if (is_admin($GLOBALS['current_user']) || is_admin_for_module($GLOBALS['current_user'], 'Campaigns')) {
$module_menu[] = array("index.php?module=Campaigns&action=WizardEmailSetup&return_module=Campaigns&return_action=index", $mod_strings['LBL_EMAIL_SETUP_WIZARD'], "EmailSetupWizard");
}
if (ACLController::checkAccess('Campaigns', 'edit', true)) {
$module_menu[] = array("index.php?module=Campaigns&action=CampaignDiagnostic&return_module=Campaigns&return_action=index", $mod_strings['LBL_DIAGNOSTIC_WIZARD'], "EmailDiagnostic");
}
if (ACLController::checkAccess('Campaigns', 'edit', true)) {
$module_menu[] = array("index.php?module=Campaigns&action=WebToLeadCreation&return_module=Campaigns&return_action=index", $mod_strings['LBL_WEB_TO_LEAD'], "CreateWebToLeadForm");
}
开发者ID:MexinaD,项目名称:SuiteCRM,代码行数:31,代码来源:Menu.php
示例19: action_Save
function action_Save()
{
require_once 'include/OutboundEmail/OutboundEmail.php';
require_once 'modules/Configurator/Configurator.php';
$configurator = new Configurator();
global $sugar_config;
global $current_user;
if (!is_admin($current_user) && !is_admin_for_module($GLOBALS['current_user'], 'Emails') && !is_admin_for_module($GLOBALS['current_user'], 'Campaigns')) {
sugar_die("Unauthorized access to administration.");
}
//Do not allow users to spoof for sendmail if the config flag is not set.
if (!isset($sugar_config['allow_sendmail_outbound']) || !$sugar_config['allow_sendmail_outbound']) {
$_REQUEST['mail_sendtype'] = "SMTP";
}
// save Outbound settings #Bug 20033 Ensure data for Outbound email exists before trying to update the system mailer.
if (isset($_REQUEST['mail_sendtype']) && empty($_REQUEST['campaignConfig'])) {
$oe = new OutboundEmail();
$oe->populateFromPost();
$oe->saveSystem();
}
$focus = new Administration();
if (isset($_POST['tracking_entities_location_type'])) {
if ($_POST['tracking_entities_location_type'] != '2') {
unset($_POST['tracking_entities_location']);
unset($_POST['tracking_entities_location_type']);
}
}
// cn: handle mail_smtpauth_req checkbox on/off (removing double reference in the form itself
if (!isset($_POST['mail_smtpauth_req'])) {
$_POST['mail_smtpauth_req'] = 0;
if (empty($_POST['campaignConfig'])) {
$_POST['notify_allow_default_outbound'] = 0;
// If smtp auth is disabled ensure outbound is disabled.
}
}
if (!empty($_POST['notify_allow_default_outbound'])) {
$oe = new OutboundEmail();
if (!$oe->isAllowUserAccessToSystemDefaultOutbound()) {
$oe->removeUserOverrideAccounts();
}
}
$focus->saveConfig();
// save User defaults for emails
$configurator->config['email_default_delete_attachments'] = isset($_REQUEST['email_default_delete_attachments']) ? true : false;
///////////////////////////////////////////////////////////////////////////////
//// SECURITY
$security = array();
if (isset($_REQUEST['applet'])) {
$security['applet'] = 'applet';
}
if (isset($_REQUEST['base'])) {
$security['base'] = 'base';
}
if (isset($_REQUEST['embed'])) {
$security['embed'] = 'embed';
}
if (isset($_REQUEST['form'])) {
$security['form'] = 'form';
}
if (isset($_REQUEST['frame'])) {
$security['frame'] = 'frame';
}
if (isset($_REQUEST['frameset'])) {
$security['frameset'] = 'frameset';
}
if (isset($_REQUEST['iframe'])) {
$security['iframe'] = 'iframe';
}
if (isset($_REQUEST['import'])) {
$security['import'] = '\\?import';
}
if (isset($_REQUEST['layer'])) {
$security['layer'] = 'layer';
}
if (isset($_REQUEST['link'])) {
$security['link'] = 'link';
}
if (isset($_REQUEST['object'])) {
$security['object'] = 'object';
}
if (isset($_REQUEST['style'])) {
$security['style'] = 'style';
}
if (isset($_REQUEST['xmp'])) {
$security['xmp'] = 'xmp';
}
$security['script'] = 'script';
$configurator->config['email_xss'] = base64_encode(serialize($security));
//// SECURITY
///////////////////////////////////////////////////////////////////////////////
ksort($sugar_config);
$configurator->handleOverride();
}
开发者ID:rgauss,项目名称:sugarcrm_dev,代码行数:93,代码来源:controller.php
示例20: loadBean
$meetingBean = loadBean('Meetings');
$meetingBean->retrieve($_REQUEST['meeting_id']);
if ($_REQUEST['host_meeting'] == '1') {
if ($meetingBean->assigned_user_id == $GLOBALS['current_user']->id || is_admin($GLOBALS['current_user']) || is_admin_for_module($GLOBALS['current_user'], 'Meetings')) {
SugarApplication::redirect($meetingBean->host_url);
} else {
//since they are now the owner of the meeting nor an Admin they cannot start the meeting.
$tplFile = 'modules/Meetings/tpls/extMeetingNoStart.tpl';
if (file_exists('custom/' . $tplFile)) {
$tplFile = 'custom/' . $tplFile;
}
$ss = new Sugar_Smarty();
$ss->assign('current_user', $current_user);
$ss->assign('bean', $meetingBean->toArray());
$ss->display($tplFile);
}
} else {
if (isset($row['id']) || $meetingBean->assigned_user_id == $GLOBALS['current_user']->id || is_admin($GLOBALS['current_user']) || is_admin_for_module($GLOBALS['current_user'], 'Meetings')) {
SugarApplication::redirect($meetingBean->join_url);
} else {
//if the user is not invited or the owner of the meeting or an admin then they cannot join the meeting.
$tplFile = 'modules/Meetings/tpls/extMeetingNotInvited.tpl';
if (file_exists('custom/' . $tplFile)) {
$tplFile = 'custom/' . $tplFile;
}
$ss = new Sugar_Smarty();
$ss->assign('current_user', $current_user);
$ss->assign('bean', $meetingBean->toArray());
$ss->display($tplFile);
}
}
开发者ID:omusico,项目名称:sugar_work,代码行数:31,代码来源:JoinExternalMeeting.php
注:本文中的is_admin_for_module函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论