Package org.wso2.carbon.registry.profiles.services

Source Code of org.wso2.carbon.registry.profiles.services.ProfilesAdminService

/*
* Copyright (c) 2006, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.wso2.carbon.registry.profiles.services;

import org.wso2.carbon.core.AbstractAdmin;
import org.wso2.carbon.registry.admin.api.profiles.IProfilesAdminService;
import org.wso2.carbon.registry.common.services.RegistryAbstractAdmin;
import org.wso2.carbon.registry.core.utils.RegistryUtils;
import org.wso2.carbon.registry.profiles.beans.ProfilesBean;
import org.wso2.carbon.registry.profiles.utils.CommonUtil;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import org.wso2.carbon.registry.core.*;
import org.wso2.carbon.registry.core.session.UserRegistry;
import org.wso2.carbon.user.core.*;
import org.wso2.carbon.user.core.claim.Claim;


public class ProfilesAdminService extends RegistryAbstractAdmin implements
        IProfilesAdminService<ProfilesBean> {

    /* public void addProfiles(String path, Map<String,String> properties,String username,String profilename) throws RegistryException,UserStoreException{
        DefaultUserStoreAdmin userstoreadmin = CommonUtil.getUserStoreAdmin();
        userstoreadmin.setUserProperties(username,properties,profilename);
    }
     public void setProfileProperty(String path,String attributeid,String attributevalue,String username,String profilename) throws RegistryException,UserStoreException{
        DefaultUserStoreAdmin userstoreadmin = CommonUtil.getUserStoreAdmin();
        userstoreadmin.setUserProperty(username,attributeid,attributevalue,profilename);
    }
    public void deleteUserProperty(String path,String property,String username,String profilename) throws RegistryException,UserStoreException{
        DefaultUserStoreAdmin userstoreadmin = CommonUtil.getUserStoreAdmin();
        userstoreadmin.deleteUserProperty(username,property,profilename);
    }
    public void deleteUserProperties(String path,String[] property,String username,String profilename) throws RegistryException,UserStoreException{
        DefaultUserStoreAdmin userstoreadmin = CommonUtil.getUserStoreAdmin();
        userstoreadmin.deleteUserProperties(username,property,profilename);
    }
     public void setUserBinaryContent(String path,String attributeid,String attributevalue,String username,String profilename) throws RegistryException,UserStoreException{
        DefaultUserStoreAdmin userstoreadmin = CommonUtil.getUserStoreAdmin();
        userstoreadmin.setUserProperty(username,attributeid,attributevalue,profilename);
    }*/
    public boolean putUserProfile(String path)throws RegistryException,UserStoreException{
        Registry registry = getConfigSystemRegistry();
        if (RegistryUtils.isRegistryReadOnly(registry.getRegistryContext())) {
            return false;
        }
        String [] allpath = path.split("/");
        String username = allpath[allpath.length - 2];
        UserRegistry userRegistry = (UserRegistry)getRootRegistry();
      UserRealm realm = userRegistry.getUserRealm();
        boolean isAdmin = false;

        String[] userRoles = realm.getUserStoreManager().getRoleListOfUser(userRegistry.getUserName());

        for (String userRole: userRoles) {
            if (userRole.equals(realm.getRealmConfiguration().getAdminRoleName())) {
                isAdmin = true;
                break;
            }
        }

        if (username == null || (!username.equals(userRegistry.getUserName()) && !isAdmin)) {
            return false;
        }
        UserStoreManager userprofile = realm.getUserStoreManager();
        int total = 0;
        int empty = 0;
        if (!userprofile.isExistingUser(username)) {
            return false;
        }
        String [] profilenames = userprofile.getProfileNames(username);
        /*boolean isProfileAdmin = false;
        String[] adminUsers = realm.getUserStoreManager().getUserListOfRole(
                realm.getRealmConfiguration().getAdminRoleName());
        for (String admin: adminUsers) {
            if (username.equals(admin)) {
                isProfileAdmin = true;
                break;
            }
        }*/
        //find whether user is giving a profile name that profile is not filled. //
        for(String temp:profilenames){

                Claim[] claimobjs = userprofile.getUserClaimValues(username,temp);
                for(Claim tmpclaims:claimobjs){
                    total++;
                    if(tmpclaims.getValue() == null){
                        empty++;
                    }
                }
            }
        if(empty == total){
            return false;
        }
        Resource resource = null;
        if(registry.resourceExists(path)){
            return false;
        }
        resource = registry.newResource();
        resource.setMediaType(RegistryConstants.PROFILES_MEDIA_TYPE);
        registry.put(path,resource);
        /*if (!isProfileAdmin) {
            return true;
        }*/

        String everyoneRole = realm.getRealmConfiguration().getEveryOneRoleName();
        try {
            realm.getAuthorizationManager().denyRole(everyoneRole,
                    RegistryConstants.CONFIG_REGISTRY_BASE_PATH + path, ActionConstants.GET);
            realm.getAuthorizationManager().authorizeUser(username,
                    RegistryConstants.CONFIG_REGISTRY_BASE_PATH + path, ActionConstants.GET);
        } catch (UserStoreException e) {
            throw e;
        } catch (Exception e) {
            return false;
        }
        return true;
    }
    public ProfilesBean getUserProfile(String path) throws RegistryException,UserStoreException{
        Registry registry = getConfigSystemRegistry();
        Resource resource = registry.get(path);
        String contentString = (String)resource.getContent();

        ProfilesBean profbean = new ProfilesBean();
        profbean.setMainDataString(contentString);
//        profilebean.calculatevalues();
        return profbean;
    }
}
TOP

Related Classes of org.wso2.carbon.registry.profiles.services.ProfilesAdminService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.