Example #1
0
        /// <summary>
        /// This instance is allowed to call only from test bed - todo security
        /// </summary>
        /// <param name="userName">The logged in user name</param>
        /// <param name="rbacName">The overridden rbac name, empty will use user's default</param>
        /// <param name="roleName">The overriden role name, empty will use user's default</param>
        public Rbac(string userName, string rbacName, string roleName)
        {
            //no cache will be implemented

            DataManager.Manager manager = new DataManager.Manager(false);
            RbacUser            user    = new RbacUser(userName);

            if (!string.IsNullOrEmpty(roleName))
            {
                user.Role = new RbacRole(roleName);  //override role
            }
            if (user.Role == null)
            {
                RbacException.Raise(string.Format("The role '{0}' is not found!", roleName), RbacExceptionCategories.Repository);
            }

            Rbac dbRbac = null;

            if (!string.IsNullOrEmpty(rbacName))
            {
                dbRbac = manager.GetRbac(rbacName);     //override rbac
            }
            else
            {
                dbRbac = manager.GetRbac(user.Role.RbacId);
            }

            if (dbRbac == null)
            {
                RbacException.Raise(string.Format("The rbac '{0}' was not defined yet!", rbacName), RbacExceptionCategories.Repository);
            }

            dbRbac.User = user;
            Assign(dbRbac);
        }
Example #2
0
        public Rbac CreateNew(string rbacName, string description, string connectionString, string metaDataEntitlement)
        {
            DataManager.Manager manager = new DataManager.Manager(false);
            if (manager.GetRbac(rbacName) != null)
            {
                RbacException.Raise(string.Format("'{0}' already exists! Please provide a different name.", rbacName), RbacExceptionCategories.Repository);
            }

            Rbac newRbac = new Rbac();

            newRbac.Name             = rbacName;
            newRbac.Description      = description;
            newRbac.ConnectionString = connectionString;
            N("Generating meta data...");
            newRbac.MetaDataRbac = RbacMetaData.Generate(newRbac.ConnectionString);
            N("Done!", LogMessageTypes.Success);
            N("Saving your rbac instance...");
            Rbac rbac = manager.AddOrUpdate(newRbac);

            N("Done!", LogMessageTypes.Success);
            return(rbac);
        }