• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java AccessPermission类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.alfresco.service.cmr.security.AccessPermission的典型用法代码示例。如果您正苦于以下问题:Java AccessPermission类的具体用法?Java AccessPermission怎么用?Java AccessPermission使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



AccessPermission类属于org.alfresco.service.cmr.security包,在下文中一共展示了AccessPermission类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: getAllPermissionsImpl

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
protected Set<AccessPermission> getAllPermissionsImpl(NodeRef nodeRef, boolean includeTrue, boolean includeFalse)
{
    String userName = AuthenticationUtil.getRunAsUser();
    HashSet<AccessPermission> accessPermissions = new HashSet<AccessPermission>();
    for (PermissionReference pr : getSettablePermissionReferences(nodeRef))
    {
        if (hasPermission(nodeRef, pr) == AccessStatus.ALLOWED)
        {
            accessPermissions.add(new AccessPermissionImpl(getPermission(pr), AccessStatus.ALLOWED, userName, -1));
        }
        else
        {
            if (includeFalse)
            {
                accessPermissions.add(new AccessPermissionImpl(getPermission(pr), AccessStatus.DENIED, userName, -1));
            }
        }
    }
    return accessPermissions;
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:21,代码来源:PermissionServiceImpl.java


示例2: getPermissions

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
@Override
public Set<AccessPermission> getPermissions(NodeRef nodeRef)
{
    PermissionServiceTrait theTrait = getTrait();
    Reference reference = Reference.fromNodeRef(nodeRef);
    if (reference == null)
    {
        return theTrait.getPermissions(nodeRef);
    }
    else
    {
        Set<AccessPermission> virtualSetPermissions = smartStore.getAllSetPermissions(reference);
        NodeRef nodeToAdhereTo = establishPermisisonAdherence(reference);
        Set<AccessPermission> mergedEntries = new HashSet<>(virtualSetPermissions);
        if (nodeToAdhereTo != null)
        {
            Set<AccessPermission> actualSetPermissions = theTrait.getPermissions(nodeToAdhereTo);
            mergedEntries.addAll(actualSetPermissions);
        }
        return mergedEntries;
    }
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:23,代码来源:VirtualPermissionServiceExtension.java


示例3: execute

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
@Override
public Set<AccessPermission> execute(VirtualProtocol virtualProtocol, Reference reference)
            throws ProtocolMethodException
{
    Set<String> toAllow = userPermissions.getAllowSmartNodes();
    Set<String> toDeny = userPermissions.getDenySmartNodes();

    VirtualFolderDefinition definition = resolver.resolveVirtualFolderDefinition(reference);
    FilingRule filingRule = definition.getFilingRule();
    boolean readonly = filingRule.isNullFilingRule()
                || filingRule.filingNodeRefFor(new FilingParameters(reference)) == null;
    if (readonly)
    {
        Set<String> deniedPermissions = userPermissions.getDenyReadonlySmartNodes();
        toDeny = new HashSet<>(toDeny);
        toDeny.addAll(deniedPermissions);
        toAllow.add(PermissionService.READ);
    }
    

    return execute(reference,
                   toAllow,
                   toDeny);
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:25,代码来源:GetAllSetPermissionsMethod.java


示例4: getSortedACLs

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
/**
 * @return Sorted list of <code>AccessPermission</code> based on <code>CMISConnector.AccessPermissionComparator</code>
 *         and <code>AccessStatus</code> of the permission for an authority.
 */
public static List<AccessPermission> getSortedACLs(Set<AccessPermission> acls)
{
    ArrayList<AccessPermission> ordered = new ArrayList<AccessPermission>(acls);
    Map<String, AccessPermission> deDuplicatedPermissions = new HashMap<String, AccessPermission>(acls.size());
    Collections.sort(ordered, new CMISConnector.AccessPermissionComparator());
    for (AccessPermission current : ordered)
    {
        String composedKey = current.getAuthority() + current.getPermission();
        if (current.getAccessStatus() == AccessStatus.ALLOWED)
        {
            deDuplicatedPermissions.put(composedKey, current);
        }
        else if (current.getAccessStatus() == AccessStatus.DENIED)
        {
            deDuplicatedPermissions.remove(composedKey);
        }
    }

    return new ArrayList<AccessPermission>(deDuplicatedPermissions.values());
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:25,代码来源:ScriptNode.java


示例5: retrieveAllSetPermissions

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
/**
 * Helper to construct the response object for the various getPermissions() calls.
 * 
 * @param direct    True to only retrieve direct permissions, false to get inherited also
 * @param full      True to retrieve full data string with [INHERITED|DIRECT] element
 *                  This exists to maintain backward compatibility with existing permission APIs.
 * 
 * @return Object[] of packed permission strings.
 */
protected Object[] retrieveAllSetPermissions(boolean direct, boolean full)
{
    Set<AccessPermission> acls = this.services.getPermissionService().getAllSetPermissions(getNodeRef());
    List<Object> permissions = new ArrayList<Object>(acls.size());
    List<AccessPermission> ordered = getSortedACLs(acls);
    for (AccessPermission permission : ordered)
    {
        if (!direct || permission.isSetDirectly())
        {
            StringBuilder buf = new StringBuilder(64);
            buf.append(permission.getAccessStatus())
                .append(';')
                .append(permission.getAuthority())
                .append(';')
                .append(permission.getPermission());
            if (full)
            {
                buf.append(';').append(permission.isSetDirectly() ? "DIRECT" : "INHERITED");
            }
            permissions.add(buf.toString());
        }
    }
    return (Object[])permissions.toArray(new Object[permissions.size()]);
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:34,代码来源:ScriptNode.java


示例6: allSetPermissionsToJSON

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
/**
 * Handles the work of converting all set permissions to JSON.
 * 
 * @param nodeRef NodeRef
 * @return JSONArray
 */
@SuppressWarnings("unchecked")
protected JSONArray allSetPermissionsToJSON(NodeRef nodeRef)
{
    Set<AccessPermission> acls = permissionService.getAllSetPermissions(nodeRef);
    JSONArray permissions = new JSONArray();

    List<AccessPermission> ordered = ScriptNode.getSortedACLs(acls);

    for (AccessPermission permission : ordered)
    {
        StringBuilder buf = new StringBuilder(64);
        buf.append(permission.getAccessStatus())
            .append(';')
            .append(permission.getAuthority())
            .append(';')
            .append(permission.getPermission())
            .append(';').append(permission.isSetDirectly() ? "DIRECT" : "INHERITED");                
        permissions.add(buf.toString());
    }
    return permissions;
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:28,代码来源:JSONConversionComponent.java


示例7: getAllowedPermissionsMap

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
/**
 * Gets the authorities and their allowed permissions for a node
 */
private Map<String, Set<String>> getAllowedPermissionsMap(NodeRef nodeRef)
{
   Map<String,Set<String>> perms = new HashMap<String, Set<String>>();
   for (AccessPermission ap : permissionService.getAllSetPermissions(nodeRef))
   {
      if (ap.getAccessStatus() == AccessStatus.ALLOWED)
      {
         Set<String> permsValue = perms.get(ap.getAuthority());
         if (permsValue == null)
         {
            permsValue  = new HashSet<String>();
         }
         permsValue.add(ap.getPermission());
         perms.put(ap.getAuthority(), permsValue);
      }
   }
   return perms;
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:22,代码来源:SiteServiceImplTest.java


示例8: mapAccessPermissionsByName

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
private Map<String, List<AccessPermission>> mapAccessPermissionsByName(Set<AccessPermission> accessPermissions)
{
    Map<String, List<AccessPermission>> nameMap = new HashMap<>();
    for (AccessPermission accessPermission : accessPermissions)
    {
        String name = accessPermission.getPermission();
        List<AccessPermission> permissions = (List<AccessPermission>) nameMap.get(name);
        if (permissions == null)
        {
            permissions = new ArrayList<>();
            nameMap.put(name,
                        permissions);
        }
        permissions.add(accessPermission);
    }

    return nameMap;
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:19,代码来源:VirtualPermissionServiceExtensionTest.java


示例9: assertUniqueAccessPermission

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
/**
 * Asserts that the permission with the given name uniquely found in the
 * given permission entries list has the given access status for the given
 * authority.
 * 
 * @param permissionName
 * @param accessStatus
 * @param authority
 * @param permissionEntries
 */
protected void assertUniqueAccessPermission(String permissionName, AccessStatus accessStatus, String authority,
            Set<AccessPermission> accessPermissions)
{
    Map<String, List<AccessPermission>> apByName = mapAccessPermissionsByName(accessPermissions);
    assertNotNull("Not null permission " + permissionName + " expected.",
                  apByName.get(permissionName));
    List<AccessPermission> oneAccessPermission = apByName.get(permissionName);
    assertEquals("Expected single AccessPermission but found " + oneAccessPermission,
                 1,
                 oneAccessPermission.size());

    AccessPermission permission = apByName.get(permissionName).get(0);
    assertEquals(accessStatus,
                 permission.getAccessStatus());
    assertEquals(authority,
                 permission.getAuthority());
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:28,代码来源:VirtualPermissionServiceExtensionTest.java


示例10: getPermissions

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
/**
 * Gets the current node permissions
 * 
 * @return the permissions
 */
public List<Permission> getPermissions(NodeRef nodeRef)
{
    List<Permission> permissions = null;
    AccessStatus readPermissions = this.getPermissionService().hasPermission(nodeRef, PermissionService.READ_PERMISSIONS);
    if (readPermissions.equals(AccessStatus.ALLOWED))
    {
        List<Permission> nodePermissions = new ArrayList<Permission>();
        for (Iterator<AccessPermission> iterator = getPermissionService().getAllSetPermissions(nodeRef).iterator(); iterator
                .hasNext();)
        {
            AccessPermission ap = iterator.next();
            nodePermissions.add(new Permission(ap.getPermission(), ap.getAuthority(), ap.getAccessStatus().toString()));
        }
        permissions = nodePermissions;
    }
    else
    {
        List<Permission> noReadPermissions = new ArrayList<Permission>(1);
        noReadPermissions.add(new NoReadPermissionGranted());
        permissions = noReadPermissions;
    }
    return permissions;
}
 
开发者ID:Alfresco,项目名称:alfresco-remote-api,代码行数:29,代码来源:NodeBrowserPost.java


示例11: checkPermissions

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
private void checkPermissions(NodeRef nodeRef, String necessatyAuth, String expectedPermission, String actionInfo)
{
    Set<AccessPermission> allSetPermissions = permissionService.getAllSetPermissions(nodeRef);
    for (AccessPermission perm : allSetPermissions)
    {
        String authority = perm.getAuthority();
        if (necessatyAuth.equals(authority))
        {
            if (expectedPermission.equals(perm.getPermission()))
            {
                return;
            }
            fail("Expected permissions for authority \"" + necessatyAuth + "\" are incorrect. Expected: " + expectedPermission + ", but actual permission: "
                    + perm.getPermission() + ". Check position: " + actionInfo);
        }
    }
    fail("Expected authority \"" + necessatyAuth + "\" wasn't found. Check position: " + actionInfo);
}
 
开发者ID:Alfresco,项目名称:alfresco-remote-api,代码行数:19,代码来源:SiteServiceTest.java


示例12: getPermissions

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
@Override
public Set<AccessPermission> getPermissions(NodeRef nodeRef)
{
    PermissionServiceTrait theTrait = getTrait();
    if (!Reference.isReference(nodeRef))
    {
        return theTrait.getPermissions(nodeRef);
    }
    else
    {
        Reference reference = Reference.fromNodeRef(nodeRef);
        Set<AccessPermission> virtualSetPermissions = smartStore.getAllSetPermissions(reference);
        NodeRef nodeToAdhereTo = establishPermisisonAdherence(reference);
        Set<AccessPermission> mergedEntries = new HashSet<>(virtualSetPermissions);
        if (nodeToAdhereTo != null)
        {
            Set<AccessPermission> actualSetPermissions = theTrait.getPermissions(nodeToAdhereTo);
            mergedEntries.addAll(actualSetPermissions);
        }
        return mergedEntries;
    }
}
 
开发者ID:Alfresco,项目名称:community-edition-old,代码行数:23,代码来源:VirtualPermissionServiceExtension.java


示例13: getCapabilitiesImpl

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
/**
 *
 * @param rmRootNode
 * @param roleAuthority
 * @return
 */
private Set<Capability> getCapabilitiesImpl(NodeRef rmRootNode, String roleAuthority)
{
    Set<AccessPermission> permissions = permissionService.getAllSetPermissions(rmRootNode);
    Set<Capability> capabilities = new HashSet<Capability>(52);
    for (AccessPermission permission : permissions)
    {
        if (permission.getAuthority().equals(roleAuthority))
        {
            String capabilityName = permission.getPermission();
            Capability capability = capabilityService.getCapability(capabilityName);
            if (capability != null && !capability.isPrivate())
            {
                capabilities.add(capability);
            }
        }
    }

    return capabilities;
}
 
开发者ID:Alfresco,项目名称:records-management-old,代码行数:26,代码来源:FilePlanRoleServiceImpl.java


示例14: assertExistenceOfSpecialRolesAndPermissions

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
private void assertExistenceOfSpecialRolesAndPermissions(NodeRef node)
{
    Map<String, String> accessPermissions = new HashMap<String, String>();
    Set<AccessPermission> permissions = permissionService.getAllSetPermissions(node);
    // FIXME!!!
    //assertEquals(3, permissions.size());

    for (AccessPermission permission : permissions)
    {
        accessPermissions.put(permission.getAuthority(),  permission.getPermission());
    }

    assertTrue(accessPermissions.containsKey(ExtendedReaderDynamicAuthority.EXTENDED_READER));
    assertEquals(RMPermissionModel.READ_RECORDS, accessPermissions.get(ExtendedReaderDynamicAuthority.EXTENDED_READER));
    assertTrue(accessPermissions.containsKey(ExtendedWriterDynamicAuthority.EXTENDED_WRITER));
    assertEquals(RMPermissionModel.FILING, accessPermissions.get(ExtendedWriterDynamicAuthority.EXTENDED_WRITER));
    String adminRole = authorityService.getName(AuthorityType.GROUP, FilePlanRoleService.ROLE_ADMIN + filePlan.getId());
    assertTrue(accessPermissions.containsKey(adminRole));
    assertEquals(RMPermissionModel.FILING, accessPermissions.get(adminRole));
}
 
开发者ID:Alfresco,项目名称:records-management-old,代码行数:21,代码来源:FilePlanPermissionServiceImplTest.java


示例15: getAllSetPermissions

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
@Override
@Extend(traitAPI = PermissionServiceTrait.class, extensionAPI = PermissionServiceExtension.class)
public Set<AccessPermission> getAllSetPermissions(NodeRef nodeRef)
{
    HashSet<AccessPermission> accessPermissions = new HashSet<AccessPermission>();
    NodePermissionEntry nodePremissionEntry = getSetPermissions(nodeRef);
    for (PermissionEntry pe : nodePremissionEntry.getPermissionEntries())
    {
        accessPermissions.add(new AccessPermissionImpl(getPermission(pe.getPermissionReference()), pe.getAccessStatus(), pe.getAuthority(), pe.getPosition()));
    }
    return accessPermissions;
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:13,代码来源:PermissionServiceImpl.java


示例16: getSiteVisibility

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
/**
 * Helper method to get the visibility of the site.  If no value is present in the repository then it is calculated from the 
 * set permissions.  This will maintain backwards compatibility with earlier versions of the service implementation.
 * 
 * @param siteNodeRef       site node reference
 * @return SiteVisibility   site visibility
 */
private SiteVisibility getSiteVisibility(NodeRef siteNodeRef)
{
    SiteVisibility visibility = SiteVisibility.PRIVATE;
    
    // Get the visibility value stored in the repo
    String visibilityValue = (String)this.directNodeService.getProperty(siteNodeRef, SiteModel.PROP_SITE_VISIBILITY);
    
    // To maintain backwards compatibility calculate the visibility from the permissions
    // if there is no value specified on the site node
    if (visibilityValue == null)
    {
        // Examine each permission to see if this is a public site or not
        Set<AccessPermission> permissions;
        try {
             permissions = this.permissionService.getAllSetPermissions(siteNodeRef);
        } catch (AccessDeniedException ae){
            // We might not have permission to examine the permissions
            return visibility;
        }
        for (AccessPermission permission : permissions)
        {
            if (permission.getAuthority().equals(PermissionService.ALL_AUTHORITIES) == true && 
                permission.getPermission().equals(SITE_CONSUMER) == true)
            {
                visibility = SiteVisibility.PUBLIC;
                break;
            }
        }            
    }
    else
    {
        // Create the enum value from the string
        visibility = SiteVisibility.valueOf(visibilityValue);
    }
    
    return visibility;
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:45,代码来源:SiteServiceImpl.java


示例17: getAllSetPermissions

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
@Override
public Set<AccessPermission> getAllSetPermissions(Reference reference)
{
    return reference.execute(new GetAllSetPermissionsMethod(this,
                                                            userPermissions,
                                                            PermissionService.ALL_AUTHORITIES));
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:8,代码来源:VirtualStoreImpl.java


示例18: retrieveAllSetPermissions

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
/**
 * Helper to construct the response object for the various getPermissions() calls.
 * 
 * @param direct    True to only retrieve direct permissions, false to get inherited also
 * @param full      True to retrieve full data string with [INHERITED|DIRECT] element
 *                  This exists to maintain backward compatibility with existing permission APIs.
 * 
 * @return List<String> of permissions.
 */
private List<String> retrieveAllSetPermissions(boolean direct, boolean full)
{
    String userName = this.services.getAuthenticationService().getCurrentUserName();
    List<String> permissions = new ArrayList<String>(4);
    if (hasPermission(PermissionService.READ_PERMISSIONS))
    {
        Set<AccessPermission> acls = this.services.getPermissionService().getAllSetPermissions(getNodeRef());
        for (AccessPermission permission : acls)
        {
            if (!direct || permission.isSetDirectly())
            {
                StringBuilder buf = new StringBuilder(64);
                buf.append(permission.getAccessStatus())
                    .append(';')
                    .append(permission.getAuthority())
                    .append(';')
                    .append(permission.getPermission());
                if (full)
                {
                    buf.append(';').append(permission.isSetDirectly() ? "DIRECT" : "INHERITED");
                }
                permissions.add(buf.toString());
            }
        }
    }
    return permissions;
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:37,代码来源:BasePermissionsNode.java


示例19: copyPermissions

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
/**
 * Copies the permissions of the source node reference onto the destination node reference
 * 
 * @param sourceNodeRef            the source node reference
 * @param destinationNodeRef    the destination node reference
 */
private void copyPermissions(final NodeRef sourceNodeRef, final NodeRef destinationNodeRef) 
{
    if((publicServiceAccessService.hasAccess("PermissionService", "getAllSetPermissions", sourceNodeRef) ==  AccessStatus.ALLOWED) &&
            (publicServiceAccessService.hasAccess("PermissionService", "getInheritParentPermissions", sourceNodeRef) ==  AccessStatus.ALLOWED))
    {
        // Get the permission details of the source node reference
        Set<AccessPermission> permissions = permissionService.getAllSetPermissions(sourceNodeRef);
        boolean includeInherited = permissionService.getInheritParentPermissions(sourceNodeRef);

        if((publicServiceAccessService.hasAccess("PermissionService", "setPermission", destinationNodeRef, "dummyAuth", "dummyPermission", true) == AccessStatus.ALLOWED) &&
                (publicServiceAccessService.hasAccess("PermissionService", "setInheritParentPermissions", destinationNodeRef, includeInherited) == AccessStatus.ALLOWED))
        {
            // Set the permission values on the destination node        
            for (AccessPermission permission : permissions) 
            {
                if(permission.isSetDirectly())
                {
                    permissionService.setPermission(
                            destinationNodeRef, 
                            permission.getAuthority(), 
                            permission.getPermission(), 
                            permission.getAccessStatus().equals(AccessStatus.ALLOWED));
                }
            }
            permissionService.setInheritParentPermissions(destinationNodeRef, includeInherited);
        }
    }
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:35,代码来源:CopyServiceImpl.java


示例20: bindPermissions

import org.alfresco.service.cmr.security.AccessPermission; //导入依赖的package包/类
/**
 * Bind permissions - binds authorities
 * 
 * @param permissions List<AccessPermission>
 * @return List<AccessPermission>
 */
private List<AccessPermission> bindPermissions(List<AccessPermission> permissions)
{
    List<AccessPermission> boundPermissions = new ArrayList<AccessPermission>(permissions.size());
    
    for (AccessPermission permission : permissions)
    {
        AccessPermission ace = new NodeContext.ACE(permission.getAccessStatus(),
                                                   bindPlaceHolder(permission.getAuthority(), binding),
                                                   permission.getPermission());
        boundPermissions.add(ace);
    }
    
    return boundPermissions;
}
 
开发者ID:Alfresco,项目名称:alfresco-repository,代码行数:21,代码来源:ImporterComponent.java



注:本文中的org.alfresco.service.cmr.security.AccessPermission类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java DefaultScheduleModel类代码示例发布时间:2022-05-22
下一篇:
Java DynamicLMClassifier类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap